Request for reviews (S): 7081842: assert(Compile::current()->unique() < (uint)MaxNodeLimit) failed: Node limit exceeded

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Sep 16 12:42:48 PDT 2011


http://cr.openjdk.java.net/~kvn/7081842/webrev

7081842: assert(Compile::current()->unique() < (uint)MaxNodeLimit) failed: Node 
limit exceeded

URLHammerThread::run (2785 bytes) method's code looks like spaghetti. It has 
loops, recursive and deep inplining. I see in LogCompilation that up to 70K 
ideal nodes are created during compilation. And the test passed with 
-XX:MaxNodeLimit=100000. So we simply missing node limit check in IGVN optimizer 
which is added.

I also did some changes to LogCompilation parser which helped me:
- added time stamp and nodes count (from parse_done event) to inlining output:
   @ 147 java.util.ArrayList::get (11 bytes) (end time: 7.1010 nodes: 1127)

- stat output for phases prints starting and added nodes counts:
         optimizer 0.0030 545 497
	matcher 0.0000 1042 -335
	regalloc 0.0060 965 225

- ignore jvms for eliminate_allocation and eliminate_lock events instead of 
printing error.

And I fixed linux/build.sh (which only I use, it seems) to build on x64 linux 
machines.

Thanks,
Vladimir


More information about the hotspot-compiler-dev mailing list