RFR(XS) 8011415: CTW on Sparc: assert(lrg.lo_degree()) failed:
Christian Thalinger
christian.thalinger at oracle.com
Thu Oct 10 15:03:07 PDT 2013
+ 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