# HG changeset patch # User Thomas Wuerthinger # Date 1308774405 -7200 # Node ID dc0065f8d9a576f885f995b266b2b280b06cb900 # Parent fef84503ab7d71ad04c8ca86f16c548bd9fefe07 Now successfully lowering field stores. diff -r fef84503ab7d -r dc0065f8d9a5 graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/graph/BlockMap.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/graph/BlockMap.java Wed Jun 22 21:51:57 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/graph/BlockMap.java Wed Jun 22 22:26:45 2011 +0200 @@ -123,7 +123,7 @@ public Instruction firstInstruction; - final HashSet successors = new HashSet(); + final HashSet successors = new LinkedHashSet(); private boolean visited; private boolean active; private int loops; diff -r fef84503ab7d -r dc0065f8d9a5 graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/MemoryAccess.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/MemoryAccess.java Wed Jun 22 21:51:57 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/ir/MemoryAccess.java Wed Jun 22 22:26:45 2011 +0200 @@ -27,7 +27,7 @@ import com.sun.cri.ci.*; -public abstract class MemoryAccess extends Instruction { +public abstract class MemoryAccess extends StateSplit { private static final int INPUT_COUNT = 2; private static final int INPUT_NODE = 0; private static final int INPUT_GUARD = 1; diff -r fef84503ab7d -r dc0065f8d9a5 graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/HotSpotRuntime.java --- a/graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/HotSpotRuntime.java Wed Jun 22 21:51:57 2011 +0200 +++ b/graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/HotSpotRuntime.java Wed Jun 22 22:26:45 2011 +0200 @@ -26,6 +26,7 @@ import java.lang.reflect.*; import java.util.*; +import com.oracle.max.graal.compiler.debug.*; import com.oracle.max.graal.compiler.ir.*; import com.oracle.max.graal.graph.*; import com.oracle.max.graal.runtime.nodes.*; @@ -263,8 +264,9 @@ Graph graph = field.graph(); int displacement = ((HotSpotField) field.field()).offset(); MemoryWrite memoryWrite = new MemoryWrite(field.field().kind(), field.object(), field.value(), displacement, graph); + memoryWrite.setStateAfter(field.stateAfter()); memoryWrite.setGuard((GuardNode) tool.createGuard(new IsNonNull(field.object(), graph))); - if (field.field().kind() == CiKind.Object) { + if (field.field().kind() == CiKind.Object && !field.value().isNullConstant()) { FieldWriteBarrier writeBarrier = new FieldWriteBarrier(field.object(), graph); memoryWrite.setNext(writeBarrier); writeBarrier.setNext(field.next()); diff -r fef84503ab7d -r dc0065f8d9a5 graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/VMExitsNative.java --- a/graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/VMExitsNative.java Wed Jun 22 21:51:57 2011 +0200 +++ b/graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/VMExitsNative.java Wed Jun 22 22:26:45 2011 +0200 @@ -75,7 +75,6 @@ public void startCompiler() { // Make sure TTY is initialized here such that the correct System.out is used for TTY. TTY.isSuppressed(); - TTY.println("test"); } public void shutdownCompiler() throws Throwable { diff -r fef84503ab7d -r dc0065f8d9a5 runavrora.sh --- a/runavrora.sh Wed Jun 22 21:51:57 2011 +0200 +++ b/runavrora.sh Wed Jun 22 22:26:45 2011 +0200 @@ -15,7 +15,6 @@ echo "DACAPO is not defined. It must point to a Dacapo benchmark directory." exit 1; fi -COMMAND="${JDK7G}/bin/java -client -d64 -graal -Xms1g -Xmx2g -esa -classpath ${DACAPO}/dacapo-9.12-bach.jar -XX:-GraalBailoutIsFatal -G:-QuietBailout $* Harness --preserve -n 5 avrora" +COMMAND="${JDK7}/bin/java -client -d64 -graal -Xms1g -Xmx2g -esa -classpath ${DACAPO}/dacapo-9.12-bach.jar -XX:-GraalBailoutIsFatal -G:-QuietBailout $* Harness --preserve -n 5 avrora" echo $COMMAND $COMMAND -echo $COMMAND