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

src/share/vm/ci/ciTypeFlow.cpp

Print this page

        

*** 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 **** if (!blk->is_visited()) { // forward arc in graph assert (!blk->has_pre_order(), ""); blk->set_next_pre_order(); ! if (_next_pre_order >= MaxNodeLimit / 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. --- 2645,2655 ---- if (!blk->is_visited()) { // forward arc in graph assert (!blk->has_pre_order(), ""); blk->set_next_pre_order(); ! 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 Wdiffs Patch New Old Previous File Next File