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 15:27:08 PDT 2011


Thank you, Tom

Vladimir

Tom Rodriguez wrote:
> On Sep 16, 2011, at 12:42 PM, Vladimir Kozlov wrote:
> 
>> 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.
> 
> That looks ok to me.  We may want to reconsider some of these C->unique bailouts since they don't address the number of nodes that are actually live which is the problematic number.  Some things we do generate a lot of garbage nodes that don't contribute to the final code size.  This is good for now though.
> 
> tom
> 
>> 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