# HG changeset patch # User Thomas Wuerthinger # Date 1367123490 -7200 # Node ID b59b10ddc797ee7ee12cfa3a85000678c80cdab1 # Parent addc2a25d7279fad5f8d208f9a26590fdb9c522d Do not combine merge with succeeding merge if it holds a stateAfter and the succeeding merge does not. diff -r addc2a25d727 -r b59b10ddc797 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Sun Apr 28 06:25:26 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Sun Apr 28 06:31:30 2013 +0200 @@ -154,6 +154,10 @@ if (this.anchored().isNotEmpty()) { return; } + if (merge.stateAfter() == null && this.stateAfter() != null) { + // We hold a state, but the succeeding merge does not => do not combine. + return; + } for (PhiNode phi : phis()) { for (Node usage : phi.usages().filter(isNotA(FrameState.class))) { if (!merge.isPhiAtMerge(usage)) {