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