# HG changeset patch # User Christos Kotselidis # Date 1363811964 -3600 # Node ID 86b4965f0c9a738384b222c53f5dbadfb2fe094e # Parent 58385e7565ffecc7bb61709278aff496950865c7 -Cleanup code diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Wed Mar 20 21:39:24 2013 +0100 @@ -57,8 +57,6 @@ */ public final GraalCodeCacheProvider runtime; - public static int counter = 0; - /** * The backend that this compiler has been configured for. */ @@ -76,7 +74,6 @@ return Debug.scope("GraalCompiler", new Object[]{graph, method, this}, new Callable() { public CompilationResult call() { - System.out.println("Start compile of method " + counter); final Assumptions assumptions = new Assumptions(GraalOptions.OptAssumptions); final LIR lir = Debug.scope("FrontEnd", new Callable() { @@ -90,8 +87,6 @@ return emitLIR(lir, graph, method); } }); - System.out.println("Stop compile of method " + counter); - counter++; return Debug.scope("CodeGen", frameMap, new Callable() { public CompilationResult call() { diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java Wed Mar 20 21:39:24 2013 +0100 @@ -22,7 +22,6 @@ */ package com.oracle.graal.hotspot; -import static com.oracle.graal.nodes.StructuredGraph.*; import static com.oracle.graal.phases.common.InliningUtil.*; import java.util.concurrent.*; @@ -31,7 +30,6 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.debug.*; import com.oracle.graal.debug.internal.*; -import com.oracle.graal.graph.*; import com.oracle.graal.hotspot.meta.*; import com.oracle.graal.nodes.*; import com.oracle.graal.phases.*; diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java Wed Mar 20 21:39:24 2013 +0100 @@ -221,7 +221,6 @@ public int g1SATBQueueMarkingOffset; public int g1SATBQueueIndexOffset; public int g1SATBQueueBufferOffset; - public long gcCycleAddress; /** * The offset of the _java_mirror field (of type {@link Class}) in a Klass. @@ -329,8 +328,6 @@ public long monitorExitStub; public long wbPreCallStub; public long wbPostCallStub; - public long verOopStub; - public long printWriteCardStub; public long verifyOopStub; public long vmErrorStub; diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Wed Mar 20 21:39:24 2013 +0100 @@ -58,7 +58,6 @@ import com.oracle.graal.hotspot.nodes.*; import com.oracle.graal.hotspot.phases.*; import com.oracle.graal.hotspot.snippets.*; -import static com.oracle.graal.hotspot.snippets.WriteBarrierSnippets.*; import com.oracle.graal.hotspot.stubs.*; import com.oracle.graal.java.*; import com.oracle.graal.nodes.*; @@ -69,7 +68,6 @@ import com.oracle.graal.nodes.spi.*; import com.oracle.graal.nodes.type.*; import com.oracle.graal.phases.*; -import com.oracle.graal.phases.common.*; import com.oracle.graal.printer.*; import com.oracle.graal.snippets.*; import com.oracle.graal.word.*; @@ -370,7 +368,7 @@ instanceofSnippets = new InstanceOfSnippets.Templates(this, assumptions, graalRuntime.getTarget()); newObjectSnippets = new NewObjectSnippets.Templates(this, assumptions, graalRuntime.getTarget(), config.useTLAB); monitorSnippets = new MonitorSnippets.Templates(this, assumptions, graalRuntime.getTarget(), config.useFastLocking); - writeBarrierSnippets = new WriteBarrierSnippets.Templates(this, assumptions, graalRuntime.getTarget(), config.useG1GC); + writeBarrierSnippets = new WriteBarrierSnippets.Templates(this, assumptions, graalRuntime.getTarget()); newInstanceStub = new NewInstanceStub(this, assumptions, graalRuntime.getTarget()); newArrayStub = new NewArrayStub(this, assumptions, graalRuntime.getTarget()); @@ -590,20 +588,16 @@ LoadFieldNode loadField = (LoadFieldNode) n; HotSpotResolvedJavaField field = (HotSpotResolvedJavaField) loadField.field(); ValueNode object = loadField.isStatic() ? ConstantNode.forObject(field.getDeclaringClass().mirror(), this, graph) : loadField.object(); + LocationNode location = LocationNode.create(field, field.getKind(), field.offset(), graph); assert loadField.kind() != Kind.Illegal; ReadNode memoryRead = graph.add(new ReadNode(object, LocationNode.create(field, field.getKind(), field.offset(), graph), loadField.stamp())); memoryRead.dependencies().add(tool.createNullCheckGuard(object)); graph.replaceFixedWithFixed(loadField, memoryRead); if (HotSpotSnippetUtils.useG1GC() && field.getKind() == Kind.Object && field.getDeclaringClass().getName().toString().equals("Ljava/lang/ref/Reference;") && - field.getName().equals("referent") && IterativeConditionalEliminationPhase.ISON == true) { - WriteBarrierPre writeBarrierPre = graph.add(new WriteBarrierPre(memoryRead.object(), memoryRead, LocationNode.create(field, field.getKind(), field.offset(), graph), field.getName(), - false)); + field.getName().equals("referent")) { + WriteBarrierPre writeBarrierPre = graph.add(new WriteBarrierPre(memoryRead.object(), memoryRead, location, false)); graph.addAfterFixed(memoryRead, writeBarrierPre); - MembarNode membar = new MembarNode(LOAD_STORE); - graph.add(membar); - graph.addAfterFixed(writeBarrierPre, membar); - } if (loadField.isVolatile()) { @@ -616,40 +610,27 @@ StoreFieldNode storeField = (StoreFieldNode) n; HotSpotResolvedJavaField field = (HotSpotResolvedJavaField) storeField.field(); ValueNode object = storeField.isStatic() ? ConstantNode.forObject(field.getDeclaringClass().mirror(), this, graph) : storeField.object(); - WriteNode memoryWrite = graph.add(new WriteNode(object, storeField.value(), LocationNode.create(field, field.getKind(), field.offset(), graph))); + LocationNode location = LocationNode.create(field, field.getKind(), field.offset(), graph); + WriteNode memoryWrite = graph.add(new WriteNode(object, storeField.value(), location)); memoryWrite.dependencies().add(tool.createNullCheckGuard(object)); memoryWrite.setStateAfter(storeField.stateAfter()); graph.replaceFixedWithFixed(storeField, memoryWrite); FixedWithNextNode last = memoryWrite; FixedWithNextNode first = memoryWrite; - FrameState stateAfter = memoryWrite.stateAfter(); if (field.getKind() == Kind.Object && !memoryWrite.value().objectStamp().alwaysNull()) { - - boolean profile = false; - if (HotSpotSnippetUtils.useG1GC() && field.getKind() == Kind.Object && field.getDeclaringClass().getName().toString().equals("Lcom/oracle/graal/phases/graph/PostOrderNodeIterator;") && - field.getName().equals("state")) { - profile = true; - } - if (!HotSpotSnippetUtils.useG1GC()) { FieldWriteBarrier writeBarrier = graph.add(new FieldWriteBarrier(memoryWrite.object())); graph.addAfterFixed(memoryWrite, writeBarrier); last = writeBarrier; } else { - WriteBarrierPre writeBarrierPre = graph.add(new WriteBarrierPre(memoryWrite.object(), null, LocationNode.create(field, field.getKind(), field.offset(), graph), field.getName(), - true, profile)); - WriteBarrierPost writeBarrierPost = graph.add(new WriteBarrierPost(memoryWrite.object(), memoryWrite.value(), memoryWrite.location(), false, writeBarrierPre, profile)); + WriteBarrierPre writeBarrierPre = graph.add(new WriteBarrierPre(memoryWrite.object(), null, memoryWrite.location(), true)); + WriteBarrierPost writeBarrierPost = graph.add(new WriteBarrierPost(memoryWrite.object(), memoryWrite.value(), memoryWrite.location(), false)); graph.addBeforeFixed(memoryWrite, writeBarrierPre); graph.addAfterFixed(memoryWrite, writeBarrierPost); - writeBarrierPre.setStateAfter(stateAfter); - writeBarrierPost.setStateAfter(stateAfter); - first = writeBarrierPre; last = writeBarrierPost; - } - } if (storeField.isVolatile()) { MembarNode preMembar = graph.add(new MembarNode(JMM_PRE_VOLATILE_WRITE)); @@ -661,6 +642,7 @@ // Separate out GC barrier semantics CompareAndSwapNode cas = (CompareAndSwapNode) n; ValueNode expected = cas.expected(); + LocationNode location = IndexedLocationNode.create(LocationNode.ANY_LOCATION, cas.expected().kind(), cas.displacement(), cas.offset(), graph, false); if (expected.kind() == Kind.Object && !cas.newValue().objectStamp().alwaysNull()) { ResolvedJavaType type = cas.object().objectStamp().type(); if (type != null && !type.isArray() && !MetaUtil.isJavaLangObject(type)) { @@ -669,32 +651,22 @@ FieldWriteBarrier writeBarrier = graph.add(new FieldWriteBarrier(cas.object())); graph.addAfterFixed(cas, writeBarrier); } else { - WriteBarrierPre writeBarrierPre = graph.add(new WriteBarrierPre(cas.object(), null, IndexedLocationNode.create(LocationNode.ANY_LOCATION, cas.expected().kind(), - cas.displacement(), cas.offset(), graph, false), "CAS", true)); - WriteBarrierPost writeBarrierPost = graph.add(new WriteBarrierPost(cas.object(), cas.newValue(), IndexedLocationNode.create(LocationNode.ANY_LOCATION, cas.expected().kind(), - cas.displacement(), cas.offset(), graph, false), false, writeBarrierPre)); - MembarNode membar = new MembarNode(LOAD_STORE); - graph.add(membar); - graph.addBeforeFixed(cas, membar); - graph.addBeforeFixed(membar, writeBarrierPre); + WriteBarrierPre writeBarrierPre = graph.add(new WriteBarrierPre(cas.object(), null, location, true)); + WriteBarrierPost writeBarrierPost = graph.add(new WriteBarrierPost(cas.object(), cas.newValue(), location, false)); + graph.addBeforeFixed(cas, writeBarrierPre); graph.addAfterFixed(cas, writeBarrierPost); } } else { - LocationNode location = IndexedLocationNode.create(LocationNode.ANY_LOCATION, cas.expected().kind(), cas.displacement(), cas.offset(), graph, false); // This may be an array store so use an array write barrier if (!HotSpotSnippetUtils.useG1GC()) { graph.addAfterFixed(cas, graph.add(new ArrayWriteBarrier(cas.object(), (IndexedLocationNode) location))); } else { - WriteBarrierPre writeBarrierPre = graph.add(new WriteBarrierPre(cas.object(), null, location, "CAS", true)); - MembarNode membar = new MembarNode(LOAD_STORE); - graph.add(membar); - graph.addBeforeFixed(cas, membar); - graph.addBeforeFixed(membar, writeBarrierPre); - graph.addAfterFixed(cas, graph.add(new WriteBarrierPost(cas.object(), cas.newValue(), location, true, writeBarrierPre))); + WriteBarrierPre writeBarrierPre = graph.add(new WriteBarrierPre(cas.object(), null, location, true)); + graph.addBeforeFixed(cas, writeBarrierPre); + graph.addAfterFixed(cas, graph.add(new WriteBarrierPost(cas.object(), cas.newValue(), location, true))); } } } - } else if (n instanceof LoadIndexedNode) { LoadIndexedNode loadIndexed = (LoadIndexedNode) n; ValueNode boundsCheck = createBoundsCheck(loadIndexed, tool); @@ -734,21 +706,16 @@ WriteNode memoryWrite = graph.add(new WriteNode(array, value, arrayLocation)); memoryWrite.dependencies().add(boundsCheck); memoryWrite.setStateAfter(storeIndexed.stateAfter()); - graph.replaceFixedWithFixed(storeIndexed, memoryWrite); if (elementKind == Kind.Object && !value.objectStamp().alwaysNull()) { if (!HotSpotSnippetUtils.useG1GC()) { graph.addAfterFixed(memoryWrite, graph.add(new ArrayWriteBarrier(array, (IndexedLocationNode) arrayLocation))); } else { - WriteBarrierPre writeBarrierPre = graph.add(new WriteBarrierPre(array, null, arrayLocation, "ARRAY", true)); - writeBarrierPre.dependencies().add(boundsCheck); + WriteBarrierPre writeBarrierPre = graph.add(new WriteBarrierPre(array, null, arrayLocation, true)); graph.addBeforeFixed(memoryWrite, writeBarrierPre); - WriteBarrierPost writeBarrierPost = graph.add(new WriteBarrierPost(array, value, arrayLocation, true, writeBarrierPre)); + WriteBarrierPost writeBarrierPost = graph.add(new WriteBarrierPost(array, value, arrayLocation, true)); graph.addAfterFixed(memoryWrite, writeBarrierPost); - writeBarrierPre.setStateAfter(memoryWrite.stateAfter()); - writeBarrierPost.setStateAfter(memoryWrite.stateAfter()); - } } } else if (n instanceof UnsafeLoadNode) { @@ -776,9 +743,9 @@ FieldWriteBarrier writeBarrier = graph.add(new FieldWriteBarrier(object)); graph.addAfterFixed(write, writeBarrier); } else { - WriteBarrierPre writeBarrierPre = new WriteBarrierPre(object, null, location, "UnsafeStore", true); + WriteBarrierPre writeBarrierPre = new WriteBarrierPre(object, null, location, true); graph.addBeforeFixed(write, graph.add(writeBarrierPre)); - graph.addAfterFixed(write, graph.add(new WriteBarrierPost(object, write.value(), location, false, writeBarrierPre))); + graph.addAfterFixed(write, graph.add(new WriteBarrierPost(object, write.value(), location, false))); } } else { // This may be an array store so use an array write barrier @@ -786,9 +753,9 @@ ArrayWriteBarrier writeBarrier = graph.add(new ArrayWriteBarrier(object, location)); graph.addAfterFixed(write, writeBarrier); } else { - WriteBarrierPre writeBarrierPre = graph.add(new WriteBarrierPre(object, null, location, "UnsafeStoreArray", true)); + WriteBarrierPre writeBarrierPre = graph.add(new WriteBarrierPre(object, null, location, true)); graph.addBeforeFixed(write, writeBarrierPre); - graph.addAfterFixed(write, graph.add(new WriteBarrierPost(object, write.value(), location, true, writeBarrierPre))); + graph.addAfterFixed(write, graph.add(new WriteBarrierPost(object, write.value(), location, true))); } } } diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/InitializeObjectNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/InitializeObjectNode.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/InitializeObjectNode.java Wed Mar 20 21:39:24 2013 +0100 @@ -23,7 +23,6 @@ package com.oracle.graal.hotspot.nodes; import com.oracle.graal.api.meta.*; -import com.oracle.graal.hotspot.*; import com.oracle.graal.hotspot.snippets.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.spi.*; diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPost.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPost.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPost.java Wed Mar 20 21:39:24 2013 +0100 @@ -27,14 +27,12 @@ import com.oracle.graal.nodes.spi.*; import com.oracle.graal.nodes.type.*; -public final class WriteBarrierPost extends AbstractStateSplit implements Lowerable { +public final class WriteBarrierPost extends FixedWithNextNode implements Lowerable { @Input private ValueNode object; @Input private ValueNode value; @Input private LocationNode location; - @Input private ValueNode wbPre; private boolean precise; - private boolean profile; public ValueNode object() { return object; @@ -44,10 +42,6 @@ return value; } - public ValueNode getPreBarrier() { - return wbPre; - } - public LocationNode location() { return location; } @@ -56,28 +50,12 @@ return precise; } - public boolean profile() { - return profile; - } - - public WriteBarrierPost(ValueNode object, ValueNode value, LocationNode location, boolean precise, ValueNode wbPre) { + public WriteBarrierPost(ValueNode object, ValueNode value, LocationNode location, boolean precise) { super(StampFactory.forVoid()); this.object = object; this.value = value; this.location = location; this.precise = precise; - this.wbPre = wbPre; - this.profile = false; - } - - public WriteBarrierPost(ValueNode object, ValueNode value, LocationNode location, boolean precise, ValueNode wbPre, boolean profile) { - super(StampFactory.forVoid()); - this.object = object; - this.value = value; - this.location = location; - this.precise = precise; - this.wbPre = wbPre; - this.profile = profile; } public void lower(LoweringTool generator) { diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPre.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPre.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPre.java Wed Mar 20 21:39:24 2013 +0100 @@ -27,15 +27,12 @@ import com.oracle.graal.nodes.spi.*; import com.oracle.graal.nodes.type.*; -public final class WriteBarrierPre extends AbstractStateSplit implements Lowerable { +public final class WriteBarrierPre extends FixedWithNextNode implements Lowerable { @Input private ValueNode object; @Input private LocationNode location; @Input private ValueNode expectedObject; private boolean doLoad; - private boolean profile; - - private String name; public ValueNode object() { return object; @@ -49,35 +46,16 @@ return doLoad; } - public boolean profile() { - return profile; - } - - public String getName() { - return name; - } - public LocationNode location() { return location; } - public WriteBarrierPre(ValueNode object, ValueNode expectedObject, LocationNode location, String name, boolean doLoad, boolean profile) { + public WriteBarrierPre(ValueNode object, ValueNode expectedObject, LocationNode location, boolean doLoad) { super(StampFactory.forVoid()); this.object = object; this.doLoad = doLoad; this.location = location; this.expectedObject = expectedObject; - this.name = name; - this.profile = profile; - } - - public WriteBarrierPre(ValueNode object, ValueNode expectedObject, LocationNode location, String name, boolean doLoad) { - super(StampFactory.forVoid()); - this.object = object; - this.doLoad = doLoad; - this.location = location; - this.expectedObject = expectedObject; - this.name = name; } public void lower(LoweringTool generator) { diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/HotSpotSnippetUtils.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/HotSpotSnippetUtils.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/HotSpotSnippetUtils.java Wed Mar 20 21:39:24 2013 +0100 @@ -247,11 +247,6 @@ } @Fold - public static long gcCycleAddress() { - return config().gcCycleAddress; - } - - @Fold public static int g1SATBQueueMarkingOffset() { return config().g1SATBQueueMarkingOffset; } diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/NewObjectSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/NewObjectSnippets.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/NewObjectSnippets.java Wed Mar 20 21:39:24 2013 +0100 @@ -59,11 +59,6 @@ // @formatter:off - private static void trace(boolean enabled, String format, WordBase value) { - if (enabled) { - Log.printf(format, value.rawValue()); - } - } @Snippet public static Word allocate(@Parameter("size") int size) { Word thread = thread(); diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/SystemSubstitutions.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/SystemSubstitutions.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/SystemSubstitutions.java Wed Mar 20 21:39:24 2013 +0100 @@ -42,9 +42,8 @@ public static final Descriptor JAVA_TIME_MILLIS = new Descriptor("javaTimeMillis", false, long.class); public static final Descriptor JAVA_TIME_NANOS = new Descriptor("javaTimeNanos", false, long.class); - // @MacroSubstitution(macro = ArrayCopyNode.class) - // public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int -// length); + @MacroSubstitution(macro = ArrayCopyNode.class) + public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); @MethodSubstitution public static long currentTimeMillis() { diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/WriteBarrierSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/WriteBarrierSnippets.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/WriteBarrierSnippets.java Wed Mar 20 21:39:24 2013 +0100 @@ -26,12 +26,8 @@ import static com.oracle.graal.snippets.SnippetTemplate.*; import com.oracle.graal.api.code.*; -import com.oracle.graal.api.code.RuntimeCallTarget.*; import com.oracle.graal.api.meta.*; -import com.oracle.graal.graph.Node.*; import com.oracle.graal.hotspot.nodes.*; -import com.oracle.graal.nodes.*; -import com.oracle.graal.nodes.extended.*; import com.oracle.graal.nodes.spi.*; import com.oracle.graal.snippets.*; import com.oracle.graal.snippets.Snippet.ConstantParameter; @@ -43,159 +39,54 @@ public class WriteBarrierSnippets implements SnippetsInterface { - private static boolean TRACE_COND = false; - @Snippet - public static int g1PreWriteBarrier(@Parameter("object") Object obj, @Parameter("expectedObject") Object expobj, @Parameter("location") Object location, - @ConstantParameter("doLoad") boolean doLoad, @ConstantParameter("name") String name, @ConstantParameter("profile") boolean profile) { - - int gcCycle = Word.unsigned(HotSpotSnippetUtils.gcCycleAddress()).readInt(0); - if (obj == null) { - return gcCycle; - - } - TRACE_COND = profile; - // if (!TRACE_COND) { - // TRACE_COND = Word.unsigned(HotSpotSnippetUtils.gcCycleAddress()).readInt(0) > 650 ? true -// : false; - // } - int cause = 0; + public static void g1PreWriteBarrier(@Parameter("object") Object obj, @Parameter("expectedObject") Object expobj, @Parameter("location") Object location, + @ConstantParameter("doLoad") boolean doLoad) { Word thread = thread(); - Object object = FixedValueAnchorNode.getObject(obj); Object expectedObject = FixedValueAnchorNode.getObject(expobj); - - Pointer oop = Word.fromObject(object); Pointer field = Word.fromArray(object, location); Pointer previousOop = Word.fromObject(expectedObject); - long originalOop = oop.rawValue(); - long prevOop = field.readWord(0).rawValue(); byte markingValue = thread.readByte(HotSpotSnippetUtils.g1SATBQueueMarkingOffset()); - if (doLoad) { // We need to generate the load of the previous value - if (oop.equal(Word.zero())) { - trace(TRACE_COND, "ERROR Null Object 0x%16lx\n", Word.zero()); - } - if (field.equal(Word.zero())) { - trace(TRACE_COND, "ERROR Null Field 0x%16lx\n", Word.zero()); - } - if (previousOop.notEqual(Word.zero())) { - trace(TRACE_COND, "ERROR Field Loaded already 0x%16lx\n", previousOop); - } - } else { - - if (previousOop.equal(Word.zero())) { - trace(TRACE_COND, "ERROR Field is not Loaded already 0x%16lx\n", previousOop); - trace(TRACE_COND, "ERROR Field2 is not Loaded already 0x%16lx\n", oop); - trace(TRACE_COND, name, oop); - trace(TRACE_COND, "\n", oop); - } - - if (previousOop.notEqual(field.readWord(0))) { - trace(TRACE_COND, "ERROR Field is not Loaded already in ref.Reference 0x%16lx\n", previousOop); - } - } - Word bufferAddress = thread.readWord(HotSpotSnippetUtils.g1SATBQueueBufferOffset()); Word indexAddress = thread.add(HotSpotSnippetUtils.g1SATBQueueIndexOffset()); Word indexValue = indexAddress.readWord(0); - trace(TRACE_COND, "TRACE PRE Field oop 0x%16lx prevValue 0x%16lx marking value %d \n", oop, field.readWord(0), Word.unsigned(markingValue)); - trace(TRACE_COND, "TRACE PRE Field oop 0x%16lx field 0x%16lx marking value %d \n", oop, field, Word.unsigned(markingValue)); if (markingValue != (byte) 0) { if (doLoad) { previousOop = field.readWord(0); - prevOop = previousOop.rawValue(); - } if (previousOop.notEqual(Word.zero())) { - if (indexValue.notEqual(Word.zero())) { Word nextIndex = indexValue.subtract(HotSpotSnippetUtils.wordSize()); Word logAddress = bufferAddress.add(nextIndex); logAddress.writeWord(0, previousOop); indexAddress.writeWord(0, nextIndex); - if (field.readWord(0).rawValue() != prevOop) { - trace(TRACE_COND, "ERROR field SATB changed 0x%16lx\n", Word.unsigned(prevOop)); - } - - if (logAddress.readWord(0).rawValue() != prevOop) { - trace(TRACE_COND, "ERROR field SATB changed in buff 0x%16lx\n", Word.unsigned(prevOop)); - } - - if (indexAddress.readWord(0).rawValue() != nextIndex.rawValue()) { - trace(TRACE_COND, "ERROR index SATB changed in buff 0x%16lx\n", Word.unsigned(prevOop)); - } - } else { WriteBarrierPreStubCall.call(previousOop); - Word bufferAddress1 = thread.readWord(HotSpotSnippetUtils.g1SATBQueueBufferOffset()); - Word indexAddress1 = thread.add(HotSpotSnippetUtils.g1SATBQueueIndexOffset()); - Word indexValue1 = indexAddress1.readWord(0); - if (bufferAddress1.add(indexValue1).readWord(0).rawValue() != prevOop) { - trace(TRACE_COND, "ERROR field SATB changed native 0x%16lx\n", Word.unsigned(prevOop)); - } } } } - - if (originalOop != oop.rawValue()) { - trace(TRACE_COND, "ERROR Address changed 0x%16lx\n", Word.unsigned(originalOop)); - trace(TRACE_COND, "ERROR Address changed to 0x%16lx\n", oop); - } - - if (prevOop != 0L && (prevOop != field.readWord(0).rawValue())) { - trace(TRACE_COND, "ERROR previousOop changed 0x%16lx\n", Word.unsigned(prevOop)); - } - - if (gcCycle != Word.unsigned(HotSpotSnippetUtils.gcCycleAddress()).readInt(0)) { - trace(TRACE_COND, "ERROR gcCycle within PRE changed %lu %lu\n", Word.unsigned(gcCycle), Word.unsigned(cause)); - } - - return gcCycle; } @Snippet - public static void g1PostWriteBarrier(@Parameter("object") Object obj, @Parameter("value") Object value, @Parameter("location") Object location, @Parameter("preBarrier") int preBarrier, - @ConstantParameter("usePrecise") boolean usePrecise, @ConstantParameter("profile") boolean profile) { + public static void g1PostWriteBarrier(@Parameter("object") Object obj, @Parameter("value") Object value, @Parameter("location") Object location, @ConstantParameter("usePrecise") boolean usePrecise) { Word thread = thread(); - - TRACE_COND = profile; - int gcCycle = Word.unsigned(HotSpotSnippetUtils.gcCycleAddress()).readInt(0); - if (gcCycle != preBarrier) { - trace(TRACE_COND, "ERROR gcCycle from PRE to POST changed %lu %lu\n", Word.unsigned(gcCycle), Word.unsigned(preBarrier)); - } - Object object = FixedValueAnchorNode.getObject(obj); Object wrObject = FixedValueAnchorNode.getObject(value); - Pointer oop = Word.fromObject(object); - - Pointer field1 = Word.fromArray(object, location); Pointer field; if (usePrecise) { field = Word.fromArray(object, location); } else { field = oop; } - Pointer writtenValue = Word.fromObject(wrObject); - - long originalOop = oop.rawValue(); - long originalWv = writtenValue.rawValue(); - Word bufferAddress = thread.readWord(HotSpotSnippetUtils.g1CardQueueBufferOffset()); Word indexAddress = thread.add(HotSpotSnippetUtils.g1CardQueueIndexOffset()); Word indexValue = thread.readWord(HotSpotSnippetUtils.g1CardQueueIndexOffset()); - - if (oop.equal(Word.zero())) { - trace(TRACE_COND, "ERROR POST Null Object 0x%16lx\n", Word.zero()); - } - if (field.equal(Word.zero())) { - trace(TRACE_COND, "ERROR POST Null Field 0x%16lx\n", Word.zero()); - } - Word xorResult = ((Word) field.xor(writtenValue)).unsignedShiftRight(HotSpotSnippetUtils.logOfHRGrainBytes()); // Card Table @@ -209,15 +100,6 @@ } Word cardAddress = cardBase.add(displacement); - // trace(TRACE_COND, " G1 POST from field 0x%016lx to obj 0x%16lx, marking %d\n", -// field, writtenValue, Word.signed(cardAddress.readByte(0))); - // trace(TRACE_COND, -// " G1 POST from field 0x%016lx to cardAddress 0x%16lx, xorResults %16lx\n", field, -// cardAddress, xorResult); - - trace(TRACE_COND, "TRACE POST Field oop 0x%16lx writtenValue 0x%16lx card value %d\n", oop, writtenValue, Word.signed(cardAddress.readByte(0))); - trace(TRACE_COND, "TRACE POST Field oop 0x%16lx fieldRead 0x%16lx fieldAddress 0x%16lx\n", oop, field1.readWord(0), field1); - if (xorResult.notEqual(Word.zero())) { if (writtenValue.notEqual(Word.zero())) { byte cardByte = cardAddress.readByte(0); @@ -234,41 +116,6 @@ } } } - // } else { Object clone intrinsic(?!) - // } - // trace(WriteBarrierSnippets.TRACE, "---------------G1 POST EXIT: %lu\n", - if (originalOop != oop.rawValue()) { - trace(TRACE_COND, "ERROR Address changed 0x%16lx\n", Word.unsigned(originalOop)); - trace(TRACE_COND, "ERROR Address changed to 0x%16lx\n", oop); - } - - if (originalWv != writtenValue.rawValue()) { - trace(TRACE_COND, "ERROR Written Value changed 0x%16lx\n", Word.unsigned(originalWv)); - trace(TRACE_COND, "ERROR Written Value changed to 0x%16lx\n", writtenValue); - } - - if (gcCycle != Word.unsigned(HotSpotSnippetUtils.gcCycleAddress()).readInt(0)) { - trace(TRACE_COND, "ERROR gcCycle within POST changed %lu\n", Word.unsigned(gcCycle)); - } - - } - - private static void trace(boolean enabled, String format, WordBase value) { - if (enabled) { - Log.printf(format, value.rawValue()); - } - } - - private static void trace(boolean enabled, String format, WordBase value, WordBase value2) { - if (enabled) { - Log.printf(format, value.rawValue(), value2.rawValue()); - } - } - - private static void trace(boolean enabled, String format, WordBase value, WordBase value2, WordBase value3) { - if (enabled) { - Log.printf(format, value.rawValue(), value2.rawValue(), value3.rawValue()); - } } @Snippet @@ -306,13 +153,12 @@ private final ResolvedJavaMethod g1PreWriteBarrier; private final ResolvedJavaMethod g1PostWriteBarrier; - public Templates(CodeCacheProvider runtime, Assumptions assumptions, TargetDescription target, boolean useG1GC) { + public Templates(CodeCacheProvider runtime, Assumptions assumptions, TargetDescription target) { super(runtime, assumptions, target, WriteBarrierSnippets.class); serialFieldWriteBarrier = snippet("serialFieldWriteBarrier", Object.class); serialArrayWriteBarrier = snippet("serialArrayWriteBarrier", Object.class, Object.class); - g1PreWriteBarrier = snippet("g1PreWriteBarrier", Object.class, Object.class, Object.class, boolean.class, String.class, boolean.class); - g1PostWriteBarrier = snippet("g1PostWriteBarrier", Object.class, Object.class, Object.class, int.class, boolean.class, boolean.class); - System.out.println(" useG1GC? " + (useG1GC ? "true" : "false")); + g1PreWriteBarrier = snippet("g1PreWriteBarrier", Object.class, Object.class, Object.class, boolean.class); + g1PostWriteBarrier = snippet("g1PostWriteBarrier", Object.class, Object.class, Object.class, boolean.class); } public void lower(ArrayWriteBarrier arrayWriteBarrier, @SuppressWarnings("unused") LoweringTool tool) { @@ -338,8 +184,6 @@ ResolvedJavaMethod method = g1PreWriteBarrier; Key key = new Key(method); key.add("doLoad", writeBarrierPre.doLoad()); - key.add("name", writeBarrierPre.getName()); - key.add("profile", writeBarrierPre.profile()); Arguments arguments = new Arguments(); arguments.add("object", writeBarrierPre.object()); arguments.add("expectedObject", writeBarrierPre.expectedObject()); @@ -352,12 +196,10 @@ ResolvedJavaMethod method = g1PostWriteBarrier; Key key = new Key(method); key.add("usePrecise", writeBarrierPost.usePrecise()); - key.add("profile", writeBarrierPost.profile()); Arguments arguments = new Arguments(); arguments.add("object", writeBarrierPost.object()); arguments.add("location", writeBarrierPost.location()); arguments.add("value", writeBarrierPost.value()); - arguments.add("preBarrier", writeBarrierPost.getPreBarrier()); SnippetTemplate template = cache.get(key, assumptions); template.instantiate(runtime, writeBarrierPost, DEFAULT_REPLACER, arguments); } diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewInstanceStub.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewInstanceStub.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewInstanceStub.java Wed Mar 20 21:39:24 2013 +0100 @@ -29,7 +29,6 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; -import com.oracle.graal.hotspot.*; import com.oracle.graal.hotspot.meta.*; import com.oracle.graal.hotspot.nodes.*; import com.oracle.graal.hotspot.snippets.*; diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Wed Mar 20 21:39:24 2013 +0100 @@ -642,9 +642,7 @@ private JavaMethod lookupMethod(int cpi, int opcode) { eagerResolvingForSnippets(cpi, opcode); JavaMethod result = constantPool.lookupMethod(cpi, opcode); - // assert !graphBuilderConfig.eagerResolvingForSnippets() || ((result instanceof -// ResolvedJavaMethod) && ((ResolvedJavaMethod) result).getDeclaringClass().isInitialized()) : -// result; + assert !graphBuilderConfig.eagerResolvingForSnippets() || ((result instanceof ResolvedJavaMethod) && ((ResolvedJavaMethod) result).getDeclaringClass().isInitialized()) : result; return result; } diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeLoadNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeLoadNode.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeLoadNode.java Wed Mar 20 21:39:24 2013 +0100 @@ -84,15 +84,6 @@ if (receiverStamp.nonNull()) { ResolvedJavaType receiverType = receiverStamp.type(); ResolvedJavaField field = receiverType.findInstanceFieldWithOffset(displacement()); - // ResolvedJavaField[] instanceFields = -// tool.runtime().lookupJavaType(java.lang.ref.Reference.class).getInstanceFields(false); - // for (ResolvedJavaField field1 : instanceFields) { - // if (field != null && (field1.getName() == field.getName())) { - // System.out.println("Match field name: " + field.getName()); - // } else if (field != null) { - // System.out.println("Non matching field name: " + field.getName()); - // } - // } if (field != null) { return this.graph().add(new LoadFieldNode(object(), field)); } diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/IterativeConditionalEliminationPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/IterativeConditionalEliminationPhase.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/IterativeConditionalEliminationPhase.java Wed Mar 20 21:39:24 2013 +0100 @@ -36,7 +36,6 @@ private final TargetDescription target; private final MetaAccessProvider runtime; private final Assumptions assumptions; - public static boolean ISON = false; public IterativeConditionalEliminationPhase(TargetDescription target, MetaAccessProvider runtime, Assumptions assumptions) { this.target = target; @@ -46,7 +45,6 @@ @Override protected void run(StructuredGraph graph) { - ISON = true; Set canonicalizationRoots = new HashSet<>(); ConditionalEliminationPhase eliminate = new ConditionalEliminationPhase(runtime); Listener listener = new Listener(canonicalizationRoots); @@ -60,7 +58,6 @@ new CanonicalizerPhase(target, runtime, assumptions, canonicalizationRoots, null).apply(graph); canonicalizationRoots.clear(); } - ISON = false; } private static class Listener implements InputChangedListener { diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java --- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java Wed Mar 20 21:39:24 2013 +0100 @@ -115,7 +115,7 @@ public static String PrintFilter = null; // Debug settings: - public static boolean Debug = false; + public static boolean Debug = true; public static boolean DebugSnippets = false; public static boolean PerThreadDebugValues = ____; public static boolean SummarizeDebugValues = ____; @@ -190,7 +190,7 @@ public static boolean OptLivenessAnalysis = true; public static boolean OptLoopTransform = true; public static boolean OptSafepointElimination = true; - public static boolean OptFloatingReads = false; + public static boolean OptFloatingReads = true; public static boolean OptTailDuplication = true; public static boolean OptEliminatePartiallyRedundantGuards = true; public static boolean OptFilterProfiledTypes = true; diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/PostOrderNodeIterator.java --- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/PostOrderNodeIterator.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/PostOrderNodeIterator.java Wed Mar 20 21:39:24 2013 +0100 @@ -24,8 +24,6 @@ import java.util.*; -import sun.misc.*; - import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; @@ -71,7 +69,6 @@ state.loopBegin((LoopBeginNode) current); nodeStates.put(current, state); state = state.clone(); - System.out.println("State: " + state.hashCode()); loopBegin((LoopBeginNode) current); current = ((LoopBeginNode) current).next(); assert current != null; diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/GraalIntrinsics.java --- a/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/GraalIntrinsics.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/GraalIntrinsics.java Wed Mar 20 21:39:24 2013 +0100 @@ -34,7 +34,7 @@ installer.installSubstitutions(MathSubstitutionsX86.class); installer.installSubstitutions(DoubleSubstitutions.class); installer.installSubstitutions(FloatSubstitutions.class); - // installer.installSubstitutions(NodeClassSubstitutions.class); + installer.installSubstitutions(NodeClassSubstitutions.class); installer.installSubstitutions(LongSubstitutions.class); installer.installSubstitutions(IntegerSubstitutions.class); installer.installSubstitutions(UnsignedMathSubstitutions.class); diff -r 58385e7565ff -r 86b4965f0c9a graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java --- a/graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java Wed Mar 20 20:27:30 2013 +0100 +++ b/graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java Wed Mar 20 21:39:24 2013 +0100 @@ -139,26 +139,18 @@ case READ: assert arguments.size() == 2; - // replace(invoke, readOp(graph, arguments.get(0), arguments.get(1), invoke, -// LocationNode.ANY_LOCATION)); Kind readKind = asKind(callTargetNode.returnType()); replace(invoke, readOp(graph, arguments.get(0), arguments.get(1), invoke, readKind, LocationNode.ANY_LOCATION)); - break; case READ_FINAL: assert arguments.size() == 2; - // replace(invoke, readOp(graph, arguments.get(0), arguments.get(1), invoke, -// LocationNode.FINAL_LOCATION)); - Kind readKind1 = asKind(callTargetNode.returnType()); - replace(invoke, readOp(graph, arguments.get(0), arguments.get(1), invoke, readKind1, LocationNode.ANY_LOCATION)); - + Kind readFinalKind = asKind(callTargetNode.returnType()); + replace(invoke, readOp(graph, arguments.get(0), arguments.get(1), invoke, readFinalKind, LocationNode.ANY_LOCATION)); break; case WRITE: assert arguments.size() == 3; - // replace(invoke, writeOp(graph, arguments.get(0), arguments.get(1), -// arguments.get(2), invoke, LocationNode.ANY_LOCATION)); Kind writeKind = asKind(targetMethod.getSignature().getParameterType(1, null)); replace(invoke, writeOp(graph, arguments.get(0), arguments.get(1), arguments.get(2), invoke, writeKind, LocationNode.ANY_LOCATION)); break; @@ -275,15 +267,6 @@ return op; } - // private static ValueNode readOp(StructuredGraph graph, ValueNode base, ValueNode offset, -// Invoke invoke, Object locationIdentity) { - // IndexedLocationNode location = IndexedLocationNode.create(locationIdentity, -// invoke.methodCallTarget().returnKind(), 0, offset, graph, false); - // Kind resultKind = invoke.node().kind() == Kind.Int ? invoke.methodCallTarget().returnKind() : -// invoke.node().kind(); - - // IndexedLocationNode location = IndexedLocationNode.create(locationIdentity, resultKind, 0, -// offset, graph, false); private static ValueNode readOp(StructuredGraph graph, ValueNode base, ValueNode offset, Invoke invoke, Kind readKind, Object locationIdentity) { IndexedLocationNode location = IndexedLocationNode.create(locationIdentity, readKind, 0, offset, graph, false); ReadNode read = graph.add(new ReadNode(base, location, invoke.node().stamp())); @@ -294,10 +277,6 @@ return read; } - // private static ValueNode writeOp(StructuredGraph graph, ValueNode base, ValueNode offset, -// ValueNode value, Invoke invoke, Object locationIdentity) { - // IndexedLocationNode location = IndexedLocationNode.create(locationIdentity, value.kind(), 0, -// offset, graph, false); private static ValueNode writeOp(StructuredGraph graph, ValueNode base, ValueNode offset, ValueNode value, Invoke invoke, Kind writeKind, Object locationIdentity) { IndexedLocationNode location = IndexedLocationNode.create(locationIdentity, writeKind, 0, offset, graph, false); WriteNode write = graph.add(new WriteNode(base, value, location)); diff -r 58385e7565ff -r 86b4965f0c9a src/cpu/x86/vm/c1_Runtime1_x86.cpp --- a/src/cpu/x86/vm/c1_Runtime1_x86.cpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/cpu/x86/vm/c1_Runtime1_x86.cpp Wed Mar 20 21:39:24 2013 +0100 @@ -1745,7 +1745,6 @@ __ leal(card_addr, __ as_Address(ArrayAddress(cardtable, index))); #endif - tty->print_cr("Intepreter WB"); __ cmpb(Address(card_addr, 0), 0); __ jcc(Assembler::equal, done); diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/code/nmethod.cpp --- a/src/share/vm/code/nmethod.cpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/code/nmethod.cpp Wed Mar 20 21:39:24 2013 +0100 @@ -2477,7 +2477,6 @@ } PcDesc* pd = pc_desc_at(ic->end_of_call()); - // if(pd!=NULL) { assert(pd != NULL, "PcDesc must exist"); for (ScopeDesc* sd = new ScopeDesc(this, pd->scope_decode_offset(), pd->obj_decode_offset(), pd->should_reexecute(), pd->rethrow_exception(), @@ -2485,7 +2484,6 @@ !sd->is_top(); sd = sd->sender()) { sd->verify(); } - //} } void nmethod::verify_scopes() { diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/gc_implementation/g1/g1AllocRegion.hpp --- a/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp Wed Mar 20 21:39:24 2013 +0100 @@ -173,15 +173,6 @@ // Should be called when we want to release the active region which // is returned after it's been retired. HeapRegion* release(); -#ifdef GRAAL - HeapWord** top_addr() const { - return _alloc_region->top_addr(); - } - - HeapWord** end_addr() const { - return _alloc_region->end_addr(); - } -#endif #if G1_ALLOC_REGION_TRACING void trace(const char* str, size_t word_size = 0, HeapWord* result = NULL); diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Wed Mar 20 21:39:24 2013 +0100 @@ -854,9 +854,7 @@ assert(!isHumongous(word_size), "we do not allow humongous TLABs"); unsigned int dummy_gc_count_before; - HeapWord* word=attempt_allocation(word_size, &dummy_gc_count_before); - tty->print_cr("Allocate new TLAB at 0x%16lx",(oop) word); - return word; + return attempt_allocation(word_size, &dummy_gc_count_before); } HeapWord* @@ -2400,17 +2398,6 @@ } #endif // !PRODUCT -#ifdef GRAAL - HeapWord** G1CollectedHeap::top_addr() const { - return _mutator_alloc_region.top_addr(); - } - - HeapWord** G1CollectedHeap::end_addr() const { - return _mutator_alloc_region.end_addr(); - } - -#endif - void G1CollectedHeap::increment_old_marking_cycles_started() { assert(_old_marking_cycles_started == _old_marking_cycles_completed || _old_marking_cycles_started == _old_marking_cycles_completed + 1, @@ -6439,7 +6426,6 @@ assert_heap_locked_or_at_safepoint(true /* should_be_vm_thread */); // First, check the explicit lists. - _free_list.verify(); { // Given that a concurrent operation might be adding regions to diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp Wed Mar 20 21:39:24 2013 +0100 @@ -675,15 +675,6 @@ virtual void gc_prologue(bool full); virtual void gc_epilogue(bool full); - -#ifdef GRAAL - HeapWord** top_addr() const; - - HeapWord** end_addr() const; - -#endif - - // We register a region with the fast "in collection set" test. We // simply set to true the array slot corresponding to this region. void register_region_with_in_cset_fast_test(HeapRegion* r) { diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp Wed Mar 20 21:39:24 2013 +0100 @@ -70,7 +70,6 @@ if (result == NULL) { result = attempt_allocation_slow(word_size, gc_count_before_ret); } - assert_heap_not_locked(); if (result != NULL) { dirty_young_block(result, word_size); @@ -90,8 +89,6 @@ result = _survivor_gc_alloc_region.attempt_allocation_locked(word_size, false /* bot_updates */); } - - if (result != NULL) { dirty_young_block(result, word_size); } diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/gc_implementation/g1/heapRegionSet.cpp --- a/src/share/vm/gc_implementation/g1/heapRegionSet.cpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/gc_implementation/g1/heapRegionSet.cpp Wed Mar 20 21:39:24 2013 +0100 @@ -112,10 +112,6 @@ ( regions_humongous() && region_num() >= length()), hrs_ext_msg(this, "invariant")); - printf("region name %s\n", this->name()); - printf("regions empty? %d\n", regions_empty()); - printf("total used bytes %lu\n", total_used_bytes()); - guarantee(!regions_empty() || total_used_bytes() == 0, hrs_ext_msg(this, "invariant")); @@ -130,7 +126,7 @@ hrs_ext_msg(this, "verification should not be in progress")); // Do the basic verification first before we do the checks over the regions. - //HeapRegionSetBase::verify(); + HeapRegionSetBase::verify(); _calc_length = 0; _calc_region_num = 0; @@ -441,12 +437,6 @@ "prev1: "PTR_FORMAT" length: %u", name(), count, curr, prev0, prev1, length())); - //printf("[%s] the calculated length: %u " - // "just print " - // "curr: "PTR_FORMAT" prev0: "PTR_FORMAT" " - // "prev1: "PTR_FORMAT" length: %u used: %lu\n", - // name(), count, (unsigned long)curr, (unsigned long)prev0, (unsigned long)prev1, length(), curr->used()); - curr->print(); prev1 = prev0; prev0 = curr; curr = curr->next(); diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/gc_implementation/g1/heapRegionSet.inline.hpp --- a/src/share/vm/gc_implementation/g1/heapRegionSet.inline.hpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/gc_implementation/g1/heapRegionSet.inline.hpp Wed Mar 20 21:39:24 2013 +0100 @@ -62,12 +62,7 @@ hrs_err_msg("[%s] region's used bytes: "SIZE_FORMAT" " "should be <= used bytes: "SIZE_FORMAT, name(), used_bytes, _total_used_bytes)); - - //printf("[%s] region's used bytes: "SIZE_FORMAT" " - // "should be <= used bytes: "SIZE_FORMAT"\n", - // name(), used_bytes, _total_used_bytes); _total_used_bytes -= used_bytes; - //printf("TOTAL USED BYTES 4 %lu\n", _total_used_bytes); } inline void HeapRegionSetBase::remove_internal(HeapRegion* hr) { diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/gc_interface/collectedHeap.hpp --- a/src/share/vm/gc_interface/collectedHeap.hpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/gc_interface/collectedHeap.hpp Wed Mar 20 21:39:24 2013 +0100 @@ -483,7 +483,6 @@ // Total number of GC collections (started) unsigned int total_collections() const { return _total_collections; } - unsigned int* total_collections_address() { return &_total_collections; } unsigned int total_full_collections() const { return _total_full_collections;} // Increment total number of GC collections (started) diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/graal/graalCompilerToVM.cpp --- a/src/share/vm/graal/graalCompilerToVM.cpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/graal/graalCompilerToVM.cpp Wed Mar 20 21:39:24 2013 +0100 @@ -770,9 +770,6 @@ set_int("g1CardQueueIndexOffset", in_bytes(JavaThread::dirty_card_queue_offset() + PtrQueue::byte_offset_of_index())); set_int("g1CardQueueBufferOffset", in_bytes(JavaThread::dirty_card_queue_offset() + PtrQueue::byte_offset_of_buf())); set_int("logOfHRGrainBytes", HeapRegion::LogOfHRGrainBytes); - - set_long("gcCycleAddress", (jlong)(address) Universe::heap()->total_collections_address()); - set_int("g1SATBQueueMarkingOffset", in_bytes(JavaThread::satb_mark_queue_offset() + PtrQueue::byte_offset_of_active())); set_int("g1SATBQueueIndexOffset", in_bytes(JavaThread::satb_mark_queue_offset() + PtrQueue::byte_offset_of_index())); set_int("g1SATBQueueBufferOffset", in_bytes(JavaThread::satb_mark_queue_offset() + PtrQueue::byte_offset_of_buf())); diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/graal/graalRuntime.cpp --- a/src/share/vm/graal/graalRuntime.cpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/graal/graalRuntime.cpp Wed Mar 20 21:39:24 2013 +0100 @@ -234,14 +234,9 @@ #undef FUNCTION_CASE } -static const bool TRACE=true; - - JRT_ENTRY(void, GraalRuntime::new_instance(JavaThread* thread, Klass* klass)) assert(klass->is_klass(), "not a class"); -if(TRACE) tty->print_cr("PreObject Init tlab start 0x%16lx tlab end 0x%16lx", thread->tlab().start(), thread->tlab().end()); - instanceKlassHandle h(thread, klass); h->check_valid_for_instantiation(true, CHECK); // make sure klass is initialized @@ -249,9 +244,6 @@ // allocate instance and return via TLS oop obj = h->allocate_instance(CHECK); thread->set_vm_result(obj); - if(TRACE) tty->print_cr("Allocate new object at 0x%16lx size %d ", obj, obj->size()); - if(TRACE) obj->klass()->print(); - if(TRACE) tty->print_cr("PostObject Init tlab start 0x%16lx tlab end 0x%16lx", thread->tlab().start(), thread->tlab().end()); JRT_END JRT_ENTRY(void, GraalRuntime::new_array(JavaThread* thread, Klass* array_klass, jint length)) @@ -259,8 +251,6 @@ // anymore after new_objArray() and no GC can happen before. // (This may have to change if this code changes!) assert(array_klass->is_klass(), "not a class"); -if(TRACE) tty->print_cr("PreArray Init tlab start 0x%16lx tlab end 0x%16lx", thread->tlab().start(), thread->tlab().end()); - oop obj; if (array_klass->oop_is_typeArray()) { BasicType elt_type = TypeArrayKlass::cast(array_klass)->element_type(); @@ -270,16 +260,11 @@ obj = oopFactory::new_objArray(elem_klass, length, CHECK); } thread->set_vm_result(obj); - if(TRACE) tty->print_cr("Allocate new array at 0x%16lx size %d", obj, obj->size()); - if(TRACE) obj->klass()->print(); - if(TRACE) tty->print_cr("PostArray Init tlab start 0x%16lx tlab end 0x%16lx", thread->tlab().start(), thread->tlab().end()); - // This is pretty rare but this runtime patch is stressful to deoptimization // if we deoptimize here so force a deopt to stress the path. if (DeoptimizeALot) { deopt_caller(); } - JRT_END @@ -287,14 +272,8 @@ JRT_ENTRY(void, GraalRuntime::new_multi_array(JavaThread* thread, Klass* klass, int rank, jint* dims)) assert(klass->is_klass(), "not a class"); assert(rank >= 1, "rank must be nonzero"); - if(TRACE) tty->print_cr("PreMultiArray Init tlab start 0x%16lx tlab end 0x%16lx", thread->tlab().start(), thread->tlab().end()); - oop obj = ArrayKlass::cast(klass)->multi_allocate(rank, dims, CHECK); thread->set_vm_result(obj); - if(TRACE) tty->print_cr("Allocate new multiarray at 0x%16lx size %d ", obj, obj->size()); - if(TRACE) obj->klass()->print(); - if(TRACE) tty->print_cr("PostMultiArray Init tlab start 0x%16lx tlab end 0x%16lx", thread->tlab().start(), thread->tlab().end()); - JRT_END JRT_ENTRY(void, GraalRuntime::unimplemented_entry(JavaThread* thread, StubID id)) @@ -546,7 +525,6 @@ JRT_END JRT_ENTRY(void, GraalRuntime::graal_log_object(JavaThread* thread, oop obj, jint flags)) -if(obj==NULL) return; bool string = mask_bits_are_true(flags, LOG_OBJECT_STRING); bool address = mask_bits_are_true(flags, LOG_OBJECT_ADDRESS); bool newline = mask_bits_are_true(flags, LOG_OBJECT_NEWLINE); @@ -586,8 +564,6 @@ ResourceMark rm; assert(format != NULL && java_lang_String::is_instance(format), "must be"); char *buf = java_lang_String::as_utf8_string(format); - //tty->print( " G1 PRE from field 0x%016lx to obj 0x%16lx, marking %d\n", v1, v2, v3); - tty->print(buf, v1, v2, v3); JRT_END diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/graal/graalRuntime.hpp --- a/src/share/vm/graal/graalRuntime.hpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/graal/graalRuntime.hpp Wed Mar 20 21:39:24 2013 +0100 @@ -145,7 +145,7 @@ static void graal_verify_oop(JavaThread* thread, oopDesc* obj); static void graal_wb_pre_call(JavaThread* thread, oopDesc* obj); static void graal_wb_post_call(JavaThread* thread, oopDesc* obj,void* obj); - static void graal_create_null_exception(JavaThread* thread); + static void graal_create_null_exception(JavaThread* thread); static void graal_create_out_of_bounds_exception(JavaThread* thread, jint index); static void graal_monitorenter(JavaThread* thread, oopDesc* obj, BasicLock* lock); static void graal_monitorexit (JavaThread* thread, oopDesc* obj, BasicLock* lock); diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/memory/cardTableModRefBS.hpp --- a/src/share/vm/memory/cardTableModRefBS.hpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/memory/cardTableModRefBS.hpp Wed Mar 20 21:39:24 2013 +0100 @@ -267,15 +267,6 @@ card_size_in_words = card_size / sizeof(HeapWord) }; - bool is_valid_card_address(void* p, jbyte* addr) { - size_t ind=index_for(p); - tty->print_cr("C cardValue? %d cardAddress 0x%08x offset %d", _byte_map[ind], addr, ind); - //for(size_t i=0;i<30000;i++) { - // tty->print_cr("C cardIndex %d val %d",i, _byte_map[i]); - - //} - return (addr >= _byte_map) && (addr < _byte_map + _byte_map_size); - } static int clean_card_val() { return clean_card; } static int clean_card_mask_val() { return clean_card_mask; } static int dirty_card_val() { return dirty_card; } diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/memory/threadLocalAllocBuffer.cpp --- a/src/share/vm/memory/threadLocalAllocBuffer.cpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/memory/threadLocalAllocBuffer.cpp Wed Mar 20 21:39:24 2013 +0100 @@ -144,12 +144,12 @@ size_t aligned_new_size = align_object_size(new_size); - //if (PrintTLAB && Verbose) { + if (PrintTLAB && Verbose) { gclog_or_tty->print("TLAB new size: thread: " INTPTR_FORMAT " [id: %2d]" " refills %d alloc: %8.6f desired_size: " SIZE_FORMAT " -> " SIZE_FORMAT "\n", myThread(), myThread()->osthread()->thread_id(), _target_refills, _allocation_fraction.average(), desired_size(), aligned_new_size); - //} + } set_desired_size(aligned_new_size); set_refill_waste_limit(initial_refill_waste_limit()); @@ -168,9 +168,9 @@ HeapWord* top, size_t new_size) { _number_of_refills++; - //if (PrintTLAB && Verbose) { + if (PrintTLAB && Verbose) { print_stats("fill"); - //} + } assert(top <= start + new_size - alignment_reserve(), "size too small"); initialize(start, top, start + new_size - alignment_reserve()); @@ -274,12 +274,12 @@ 100.0 * waste / alloc; size_t tlab_used = Universe::heap()->tlab_capacity(thrd) - Universe::heap()->unsafe_max_tlab_alloc(thrd); - gclog_or_tty->print("TLAB: %s thread: " INTPTR_FORMAT " [id: %2d] start addr 0x%16lx" + gclog_or_tty->print("TLAB: %s thread: " INTPTR_FORMAT " [id: %2d]" " desired_size: " SIZE_FORMAT "KB" " slow allocs: %d refill waste: " SIZE_FORMAT "B" " alloc:%8.5f %8.0fKB refills: %d waste %4.1f%% gc: %dB" " slow: %dB fast: %dB\n", - tag, thrd, thrd->tlab().start(), thrd->osthread()->thread_id(), + tag, thrd, thrd->osthread()->thread_id(), _desired_size / (K / HeapWordSize), _slow_allocations, _refill_waste_limit * HeapWordSize, _allocation_fraction.average(), diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/opto/graphKit.cpp --- a/src/share/vm/opto/graphKit.cpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/opto/graphKit.cpp Wed Mar 20 21:39:24 2013 +0100 @@ -3761,14 +3761,12 @@ Node* card_val = __ load(__ ctrl(), card_adr, TypeInt::INT, T_BYTE, Compile::AliasIdxRaw); __ if_then(card_val, BoolTest::ne, zero); { - tty->print_cr("Object hotspot mark card"); g1_mark_card(ideal, card_adr, oop_store, alias_idx, index, index_adr, buffer, tf); } __ end_if(); } __ end_if(); } __ end_if(); } else { // Object.clone() instrinsic uses this path. - tty->print_cr("Object clone mark card"); g1_mark_card(ideal, card_adr, oop_store, alias_idx, index, index_adr, buffer, tf); } diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/prims/jni.cpp --- a/src/share/vm/prims/jni.cpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/prims/jni.cpp Wed Mar 20 21:39:24 2013 +0100 @@ -2670,7 +2670,6 @@ if (needs_barrier) { oop referent = JNIHandles::resolve(ret); - tty->print_cr("ENQUEUE in jni"); G1SATBCardTableModRefBS::enqueue(referent); } } diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/prims/unsafe.cpp --- a/src/share/vm/prims/unsafe.cpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/prims/unsafe.cpp Wed Mar 20 21:39:24 2013 +0100 @@ -208,8 +208,6 @@ } if (needs_barrier) { - tty->print_cr("GENERATE PRE BARRIER UNSAFE"); - oop referent = JNIHandles::resolve(ret); G1SATBCardTableModRefBS::enqueue(referent); } @@ -268,8 +266,6 @@ } if (needs_barrier) { - tty->print_cr("GENERATE PRE BARRIER UNSAFE"); - oop referent = JNIHandles::resolve(ret); G1SATBCardTableModRefBS::enqueue(referent); } diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/runtime/arguments.cpp Wed Mar 20 21:39:24 2013 +0100 @@ -2064,14 +2064,6 @@ // This prevents the flag being set to true by set_ergonomics_flags() FLAG_SET_CMDLINE(bool, UseCompressedKlassPointers, false); } - //if (UseG1GC) { - // jio_fprintf(defaultStream::error_stream(), - // "G1 is not supported in Graal at the moment\n"); - // status = false; - //} else { - // This prevents the flag being set to true by set_ergonomics_flags() - // FLAG_SET_CMDLINE(bool, UseG1GC, false); - // } if (!ScavengeRootsInCode) { warning("forcing ScavengeRootsInCode non-zero because Graal is enabled"); diff -r 58385e7565ff -r 86b4965f0c9a src/share/vm/utilities/debug.hpp --- a/src/share/vm/utilities/debug.hpp Wed Mar 20 20:27:30 2013 +0100 +++ b/src/share/vm/utilities/debug.hpp Wed Mar 20 21:39:24 2013 +0100 @@ -160,7 +160,6 @@ } while (0) #endif // #ifndef USE_REPEATED_ASSERTS - // This version of assert is for use with checking return status from // library calls that return actual error values eg. EINVAL, // ENOMEM etc, rather than returning -1 and setting errno.