src/share/vm/opto/phaseX.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/phaseX.cpp	Fri Sep 16 12:22:58 2011
--- new/src/share/vm/opto/phaseX.cpp	Fri Sep 16 12:22:57 2011

*** 862,871 **** --- 862,875 ---- uint loop_count = 0; // Pull from worklist; transform node; // If node has changed: update edge info and put uses on worklist. while( _worklist.size() ) { + if (C->check_node_count(NodeLimitFudgeFactor * 2, + "out of nodes optimizing method")) { + return; + } Node *n = _worklist.pop(); if (++loop_count >= K * C->unique()) { debug_only(n->dump(4);) assert(false, "infinite loop in PhaseIterGVN::optimize"); C->record_method_not_compilable("infinite loop in PhaseIterGVN::optimize");

src/share/vm/opto/phaseX.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File