C2 can reach ideal nodes limit during IGVN optimization with Escape Analysis since new nodes are added in LoadNode::Ideal() and PhiNode::Ideal() methods without removing old nodes. # # An unexpected error has been detected by Java Runtime Environment: # # Internal Error (/net/jaberwocky/export/home2/work/6259129/src/share/vm/opto/node.cpp:60), pid=25960, tid=23 # Error: assert(Compile::current()->unique() < (uint)MaxNodeLimit,"Node limit exceeded") # # Java VM: Java HotSpot(TM) Server VM (12.0-b01-internal-jvmg compiled mode solaris-x86) # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # --------------- T H R E A D --------------- Current thread (0x0827d800): JavaThread "CompilerThread1" daemon [_thread_in_native, id=23, stack(0xb5a65000,0xb5aa5000)] Stack: [0xb5a65000,0xb5aa5000], sp=0xb5aa2130, free space=244k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0x9bb124] void VMError::report(outputStream*) + 0xa64 V [libjvm.so+0x9bc16b] void VMError::report_and_die() + 0x62b V [libjvm.so+0x4c5899] void report_assertion_failure(const char*,int,const char*) + 0x79 V [libjvm.so+0x7ec28c] void Node::verify_construction() + 0xfc V [libjvm.so+0x7ee36a] Node*Node::clone()const + 0x16a V [libjvm.so+0x7aa8dd] Node*LoadNode::Ideal(PhaseGVN*,bool) + 0x56d V [libjvm.so+0x8606a9] Node*PhaseIterGVN::transform_old(Node*) + 0x299 V [libjvm.so+0x85fea1] void PhaseIterGVN::optimize() + 0x171 V [libjvm.so+0x473d11] void Compile::Optimize() + 0x101 V [libjvm.so+0x4703da] Compile::Compile(ciEnv*,C2Compiler*,ciMethod*,int,bool,bool) + 0xd6a V [libjvm.so+0x3ac1bf] void C2Compiler::compile_method(ciEnv*,ciMethod*,int) + 0xaf
|