Request for reviews (S): 6860599: Relax nodes limit check for Output phase

Tom Rodriguez Thomas.Rodriguez at Sun.COM
Mon Jul 20 10:52:13 PDT 2009


If the intent is just to suppress the assert after a certain point in  
code generation, why don't you just add a flag in the Compile for  
that?  Adding _node_limit and just doubling it seems arbitrary and  
doesn't really capture intent.

tom

On Jul 20, 2009, at 9:32 AM, Vladimir Kozlov wrote:

> Christian,
>
> The only nodes limit check done in Output is in
> Node::verify_construction() and it is assert()
> which only works in debug mode.
> Did I understand your question correctly?
>
> Thanks,
> Vladimir
>
>
> Christian Thalinger wrote:
>> Vladimir Kozlov wrote:
>>> http://cr.openjdk.java.net/~kvn/6860599/webrev.00
>>>
>>> Fixed 6860599: Relax nodes limit check for Output phase
>>>
>>> Problem:
>>> I got several CTW cases when without EA C2 "gracefully"
>>> bailout compilation when nodes limit check failed during
>>> macro nodes expansion. And with EA it passed macro nodes
>>> expansion but crashed with ASSERT during Output phase.
>>> One byte MachNop nodes are used in debug mode for loops
>>> and calls alignment in Output phase. As result for a big
>>> method the node limit could be reached.
>>>
>>> Solution:
>>> Increase nodes limit (double) for Output phase.
>> What I don't understand with this patch is, it changes the node limit
>> but this is done for every output.  It's not limited to e.g. debug  
>> mode.
>> Is this what you indented?
>> -- Christian




More information about the hotspot-compiler-dev mailing list