aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/opto/connode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/vm/opto/connode.cpp')
-rw-r--r--src/share/vm/opto/connode.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/share/vm/opto/connode.cpp b/src/share/vm/opto/connode.cpp
index 8b441c994..ceebd76a6 100644
--- a/src/share/vm/opto/connode.cpp
+++ b/src/share/vm/opto/connode.cpp
@@ -101,6 +101,8 @@ matter ever).
// Move constants to the right.
Node *CMoveNode::Ideal(PhaseGVN *phase, bool can_reshape) {
if( in(0) && remove_dead_region(phase, can_reshape) ) return this;
+ // Don't bother trying to transform a dead node
+ if( in(0) && in(0)->is_top() ) return NULL;
assert( !phase->eqv(in(Condition), this) &&
!phase->eqv(in(IfFalse), this) &&
!phase->eqv(in(IfTrue), this), "dead loop in CMoveNode::Ideal" );