diff options
author | never <none@none> | 2008-08-18 23:17:51 -0700 |
---|---|---|
committer | never <none@none> | 2008-08-18 23:17:51 -0700 |
commit | 00685162833278853c0889caa0053b9ecec75d3a (patch) | |
tree | ea3fb6ed12db8d63329e0c3d9093b38318492635 /src/share/vm/opto/coalesce.cpp | |
parent | 3b05932b538e0c70919905f1dc2efc039acfce38 (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.cpp | 4 |
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 |