RFR(XS) 8011415: CTW on Sparc: assert(lrg.lo_degree()) failed:
Vladimir Kozlov
vladimir.kozlov at oracle.com
Fri Oct 11 08:58:17 PDT 2013
Good.
Thanks,
Vladimir
On 10/11/13 4:21 AM, Niclas Adlertz wrote:
> Good catch :)
> Thanks Christian. I'll push this now.
>
> http://cr.openjdk.java.net/~adlertz/JDK-8011415/webrev03/
>
> Kind Regards,
> Niclas Adlertz
>
> On 2013-10-11 00:03, Christian Thalinger wrote:
>> + static const uint LRG_All_STACK_SIZE = 0xFFFFF; // This mask size is used to tell that the mask of this LRG
>> supports stack positions
>>
>> It looks odd to mix upper and lower case here. You tried to make it look like a macro but you didn't quite make it :-)
>>
>> Suggest since it's not a macro and it's a LRG class member to either use:
>>
>> static const uint AllStack_size = 0xFFFFF;
>>
>> or:
>>
>> static const uint ALL_STACK_SIZE = 0xFFFFF;
>>
>> I'd vote for the former.
>>
>> On Oct 10, 2013, at 7:07 AM, Niclas Adlertz <niclas.adlertz at oracle.com> wrote:
>>
>>> Hi Roland,
>>>
>>>> Shouldn't we assert somewhere than _eff_degree doesn't become any bigger than LRG_All_STACK_SIZE if that's the root
>>>> cause of the problem?
>>> There's nothing wrong about _eff_degree being bigger than LRG_All_STACK_SIZE as long as we don't have a mask
>>> supporting stack locations, but you are right that we could add asserts when setting _eff_degree or adding to
>>> _eff_degree when the mask supports stack positions.
>>>
>>>> Also, wouldn't a const int LRG_All_STACK_SIZE be better than a macro?
>>> That might be a good idea, I just followed the old standard.
>>>
>>> Thanks.
>>>
>>> webrev: http://cr.openjdk.java.net/~adlertz/JDK-8011415/webrev02/
>>>
>>> Kind Regards,
>>> Niclas Adlertz
>>>
>>> On 2013-10-10 14:41, Roland Westrelin wrote:
>>>>> When compiling very big methods, in this particular case a method of 60k+ nodes, a live range 'l' with
>>>>> mask.is_AllStack() == true can still have lo_degree() == false. This because the _mask_size of 'l' can be at most
>>>>> 65535, at the same time 'l' is interfering with so many other live ranges that the value of _eff_degree becomes
>>>>> bigger than 65535.
>>>>
>>>> Shouldn't we assert somewhere than _eff_degree doesn't become any bigger than LRG_All_STACK_SIZE if that's the root
>>>> cause of the problem?
>>>> Also, wouldn't a const int LRG_All_STACK_SIZE be better than a macro?
>>>>
>>>> Roland.
>>>>
>>>
>>
>
More information about the hotspot-compiler-dev
mailing list