RFR(XS) 8011415: CTW on Sparc: assert(lrg.lo_degree()) failed:
Niclas Adlertz
niclas.adlertz at oracle.com
Fri Oct 11 04:21:25 PDT 2013
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