RFR(XS) 8011415: CTW on Sparc: assert(lrg.lo_degree()) failed:

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Oct 10 10:06:32 PDT 2013


On 10/10/13 7:07 AM, Niclas Adlertz 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.

To have asserts is fine.

>
>> Also, wouldn't a const int LRG_All_STACK_SIZE be better than a macro?

Downside is you have to add casts as Niclas did.

Vladimir

> 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