< prev index next >
src/share/vm/ci/ciTypeFlow.cpp
Print this page
rev 7614 : [mq]: shark-build-hotspot.patch
@@ -33,12 +33,14 @@
#include "ci/ciTypeFlow.hpp"
#include "compiler/compileLog.hpp"
#include "interpreter/bytecode.hpp"
#include "interpreter/bytecodes.hpp"
#include "memory/allocation.inline.hpp"
+#ifdef COMPILER2
#include "opto/compile.hpp"
#include "opto/node.hpp"
+#endif // COMPILER2
#include "runtime/deoptimization.hpp"
#include "utilities/growableArray.hpp"
// ciTypeFlow::JsrSet
//
@@ -2645,20 +2647,21 @@
Block* blk = stk.top(); // Leave node on stack
if (!blk->is_visited()) {
// forward arc in graph
assert (!blk->has_pre_order(), "");
blk->set_next_pre_order();
-
+#ifdef COMPILER2
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.
record_failure("too many basic blocks");
return;
}
+#endif
if (do_flow) {
flow_block(blk, temp_vector, temp_set);
if (failing()) return; // Watch for bailouts.
}
} else if (!blk->is_post_visited()) {
< prev index next >