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

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Oct 9 18:29:37 PDT 2013


Can you use 0xFFFFF format? It will *8 but it should be fine since we 
need a big number.
I am little worry that it (mask_size()) is used somewhere in a code 
which expects 16bit value only. Could you look?

Note for reviewers:

lo_degree() { return degree() <= degrees_of_freedom(); }
degrees_of_freedom() { return mask_size() - _num_regs; }
degree() { return _eff_degree; }
   uint _eff_degree; // Effective degree: Sum of neighbors _num_regs

Thanks,
Vladimir

On 10/9/13 3:08 PM, Niclas Adlertz wrote:
> Hi all,
>
> 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.
>
> To solve this I've doubled that max value of _mask_size.
> Appreciate feedback on this. Should we increase it by more? Or find
> another solution for this? Or file a future enhancement bug to solve
> this in a cleaner way later on?
>
> (I've ran CTW + JPRT tests)
>
> WEBREV: http://cr.openjdk.java.net/~adlertz/JDK-8011415/webrev00/
> JBS: https://bugs.openjdk.java.net/browse/JDK-8011415
>
> Kind Regards,
> Niclas Adlertz


More information about the hotspot-compiler-dev mailing list