# HG changeset patch # User Josef Eisl # Date 1447345445 -3600 # Node ID 9ef376e2e6b6c4aa878431e0267eb38c66eb2724 # Parent 64eb72b6165db21926f4d7f22e58dbd8deb8f354 TraceRA: fix failing TraceGlobalMoveResolutionMappingTest cases and ignore currently unsupported optimization. diff -r 64eb72b6165d -r 9ef376e2e6b6 graal/com.oracle.graal.lir.test/src/com/oracle/graal/lir/test/alloc/trace/TraceGlobalMoveResolutionMappingTest.java --- a/graal/com.oracle.graal.lir.test/src/com/oracle/graal/lir/test/alloc/trace/TraceGlobalMoveResolutionMappingTest.java Thu Nov 12 18:04:38 2015 +0100 +++ b/graal/com.oracle.graal.lir.test/src/com/oracle/graal/lir/test/alloc/trace/TraceGlobalMoveResolutionMappingTest.java Thu Nov 12 17:24:05 2015 +0100 @@ -37,6 +37,7 @@ import jdk.vm.ci.meta.Value; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import com.oracle.graal.lir.alloc.trace.ShadowedRegisterValue; @@ -248,6 +249,7 @@ } @Test + @Ignore("Cannot express mapping dependencies (yet)") public void testStack2Shadowed0() { addMapping(s(2), sd(r1, 1)); assertSize(2); @@ -256,6 +258,14 @@ } @Test + public void testStack2Shadowed0WorkArount() { + addMapping(s(2), sd(r1, 1)); + assertSize(2); + assertContains(s(2), v(r1)); + assertContains(s(2), s(1)); + } + + @Test public void testStack2Shadowed1() { addMapping(s(1), sd(r1, 1)); assertSize(1); diff -r 64eb72b6165d -r 9ef376e2e6b6 graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceGlobalMoveResolutionPhase.java --- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceGlobalMoveResolutionPhase.java Thu Nov 12 18:04:38 2015 +0100 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/trace/TraceGlobalMoveResolutionPhase.java Thu Nov 12 17:24:05 2015 +0100 @@ -143,7 +143,7 @@ moveResolver.addMapping(src, (AllocatableValue) dst); } // set dst_shadow - if (dstShadow != null && !dstShadow.equals(src)) { + if (dstShadow != null && !dstShadow.equals(src) && !dstShadow.equals(srcShadow)) { moveResolver.addMapping(src, (AllocatableValue) dstShadow); } }