RFR(XS) 8011415: CTW on Sparc: assert(lrg.lo_degree()) failed:
Niclas Adlertz
niclas.adlertz at oracle.com
Thu Oct 10 07:07:36 PDT 2013
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