src/share/vm/ci/ciTypeFlow.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/ci/ciTypeFlow.cpp	Wed Nov 19 23:23:47 2014
--- new/src/share/vm/ci/ciTypeFlow.cpp	Wed Nov 19 23:23:47 2014

*** 33,42 **** --- 33,43 ---- #include "ci/ciTypeFlow.hpp" #include "compiler/compileLog.hpp" #include "interpreter/bytecode.hpp" #include "interpreter/bytecodes.hpp" #include "memory/allocation.inline.hpp" + #include "opto/compile.hpp" #include "runtime/deoptimization.hpp" #include "utilities/growableArray.hpp" // ciTypeFlow::JsrSet //
*** 2644,2654 **** --- 2645,2655 ---- if (!blk->is_visited()) { // forward arc in graph assert (!blk->has_pre_order(), ""); blk->set_next_pre_order(); ! if (_next_pre_order >= MaxNodeLimit / 2) { ! if (_next_pre_order >= (int)Compile::current()->max_node_limit() / 2) { // Too many basic blocks. Bail out. // This can happen when try/finally constructs are nested to depth N, // and there is O(2**N) cloning of jsr bodies. See bug 4697245! // "MaxNodeLimit / 2" is used because probably the parser will // generate at least twice that many nodes and bail out.

src/share/vm/ci/ciTypeFlow.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File