[15] RFR(S): 8244724: CTW: C2 compilation fails with "Live Node limit exceeded limit"

Nils Eliasson nils.eliasson at oracle.com
Fri Jun 26 14:53:51 UTC 2020


Hi Christian,

Looks good.

And to answer your question - yes - remove the assert in coalesce.cpp.

Best regards,
Nils Eliasson

On 2020-06-26 16:38, Christian Hagedorn wrote:
> Hi
>
> Please review the following patch:
> https://bugs.openjdk.java.net/browse/JDK-8244724
> http://cr.openjdk.java.net/~chagedorn/8244724/webrev.01/
>
> The testcase contains many string concatinations. These are compiled 
> by javac with -XDstringConcat=inline which creates a lot of 
> StringBuilder objects and calls. As a result, we get a huge graph and 
> eventually hit the live node limit assert during code generation when 
> trying to create new nodes - either during PhaseCFG::build_cfg() or 
> later in PhaseCFG::global_code_motion().
>
> We could try to introduce estimates for them to bailout but that 
> appears to be difficult to get right without being too pessimistic 
> about it. But we need to be in order to avoid hitting the assert again 
> by just modifying the testcase.
>
> Therefore, my suggestion is to completely skip the assert once the 
> optimization phase is finished as we should not strictly care about 
> the node limit anymore at this point in time and it does not really 
> provide much help for finding bugs.
>
> A question remains, though, if we should also get rid of the remaining 
> live node limit bailout checks in Compile::Code_Gen() like [1] as it 
> appears to be a waste to go through all the optimization in the 
> optimization phase to then bailout while generating code based only on 
> the live node limit itself. What do you think about that?
>
> I also updated "<" into "<=" in the live node limit assert because we 
> should be allowed to reach the limit but not go beyond.
>
> Thank you!
>
> Best regards,
> Christian
>
>
> [1] 
> http://hg.openjdk.java.net/jdk/jdk/file/8fd3e34e8379/src/hotspot/share/opto/coalesce.cpp#l236



More information about the hotspot-compiler-dev mailing list