aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/opto/coalesce.cpp
diff options
context:
space:
mode:
authornever <none@none>2008-08-18 23:17:51 -0700
committernever <none@none>2008-08-18 23:17:51 -0700
commit00685162833278853c0889caa0053b9ecec75d3a (patch)
treeea3fb6ed12db8d63329e0c3d9093b38318492635 /src/share/vm/opto/coalesce.cpp
parent3b05932b538e0c70919905f1dc2efc039acfce38 (diff)
6732194: Data corruption dependent on -server/-client/-Xbatch
Summary: rematerializing nodes results in incorrect inputs Reviewed-by: rasbold
Diffstat (limited to 'src/share/vm/opto/coalesce.cpp')
-rw-r--r--src/share/vm/opto/coalesce.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/share/vm/opto/coalesce.cpp b/src/share/vm/opto/coalesce.cpp
index 20e9bd179..b7e8a85dc 100644
--- a/src/share/vm/opto/coalesce.cpp
+++ b/src/share/vm/opto/coalesce.cpp
@@ -604,8 +604,8 @@ void PhaseConservativeCoalesce::union_helper( Node *lr1_node, Node *lr2_node, ui
// If both are single def, then src_def powers one live range
// and def_copy powers the other. After merging, src_def powers
// the combined live range.
- lrgs(lr1)._def = (lrgs(lr1)._def == NodeSentinel ||
- lrgs(lr2)._def == NodeSentinel )
+ lrgs(lr1)._def = (lrgs(lr1).is_multidef() ||
+ lrgs(lr2).is_multidef() )
? NodeSentinel : src_def;
lrgs(lr2)._def = NULL; // No def for lrg 2
lrgs(lr2).Clear(); // Force empty mask for LRG 2