# HG changeset patch # User Doug Simon # Date 1375886723 -7200 # Node ID 4f1aa732e60f00cb1071c271e1b1f079899e8b4e # Parent 7b416466e2694e27b248fd445cfddd2f0793d533# Parent 2e38c55153e51b3c77ead2c30ba11aac8cd94bd8 Merge. diff -r 7b416466e269 -r 4f1aa732e60f graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/WriteBarrierSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/WriteBarrierSnippets.java Wed Aug 07 16:44:54 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/WriteBarrierSnippets.java Wed Aug 07 16:45:23 2013 +0200 @@ -53,7 +53,7 @@ private static final SnippetCounter g1AttemptedPostWriteBarrierCounter = new SnippetCounter(countersWriteBarriers, "g1AttemptedPostWriteBarrierCounter", "Number of attempted G1 Post Write Barriers"); private static final SnippetCounter g1AttemptedPreWriteBarrierCounter = new SnippetCounter(countersWriteBarriers, "g1AttemptedPreWriteBarrierCounter", "Number of G1 attempted Pre Write Barriers"); - private static final SnippetCounter g1AttemptedRefFieldBarrierCounter = new SnippetCounter(countersWriteBarriers, "g1AttemptedPreWriteBarrierCounter", + private static final SnippetCounter g1AttemptedRefFieldBarrierCounter = new SnippetCounter(countersWriteBarriers, "g1AttemptedRefFieldBarrierCounter", "Number of G1 attempted Ref Field Read Barriers"); private static final SnippetCounter g1EffectivePostWriteBarrierCounter = new SnippetCounter(countersWriteBarriers, "g1EffectivePostWriteBarrierCounter", "Number of effective G1 Post Write Barriers"); @@ -322,7 +322,7 @@ public static final ForeignCallDescriptor G1WBPOSTCALL = new ForeignCallDescriptor("write_barrier_post", void.class, Word.class); @NodeIntrinsic(ForeignCallNode.class) - private static native void g1PostBarrierStub(@ConstantNodeParameter ForeignCallDescriptor descriptor, Word card); + public static native void g1PostBarrierStub(@ConstantNodeParameter ForeignCallDescriptor descriptor, Word card); public static class Templates extends AbstractTemplates { @@ -408,25 +408,25 @@ /** * Log method of debugging purposes. */ - private static void log(boolean enabled, String format, long value) { + public static void log(boolean enabled, String format, long value) { if (enabled) { Log.printf(format, value); } } - private static void log(boolean enabled, String format, long value1, long value2) { + public static void log(boolean enabled, String format, long value1, long value2) { if (enabled) { Log.printf(format, value1, value2); } } - private static void log(boolean enabled, String format, long value1, long value2, long value3) { + public static void log(boolean enabled, String format, long value1, long value2, long value3) { if (enabled) { Log.printf(format, value1, value2, value3); } } - private static boolean traceBarrier() { + public static boolean traceBarrier() { return GraalOptions.GCDebugStartCycle.getValue() > 0 && ((int) Word.unsigned(HotSpotReplacementsUtil.gcTotalCollectionsAddress()).readLong(0) > GraalOptions.GCDebugStartCycle.getValue()); } @@ -436,7 +436,7 @@ * in a valid heap region. If an object is stale, an invalid access is performed in order to * prematurely crash the VM and debug the stack trace of the faulty method. */ - private static void validateObject(Object parent, Object child) { + public static void validateObject(Object parent, Object child) { if (verifyOops() && child != null && !validateOop(VALIDATE_OBJECT, parent, child)) { log(true, "Verification ERROR, Parent: %p Child: %p\n", Word.fromObject(parent).rawValue(), Word.fromObject(child).rawValue()); DirectObjectStoreNode.storeWord(null, 0, 0, Word.zero()); diff -r 7b416466e269 -r 4f1aa732e60f graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/FrameAccessNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/FrameAccessNode.java Wed Aug 07 16:44:54 2013 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/FrameAccessNode.java Wed Aug 07 16:45:23 2013 +0200 @@ -66,15 +66,15 @@ } protected int getSlotIndex() { - return getFrameSlot().getIndex(); + return getConstantFrameSlot().getIndex(); } - protected boolean isFrameSlotConstant() { - return slot.isConstant(); + protected boolean isConstantFrameSlot() { + return slot.isConstant() && !slot.isNullConstant(); } - protected FrameSlot getFrameSlot() { - assert isFrameSlotConstant() : slot; + protected FrameSlot getConstantFrameSlot() { + assert isConstantFrameSlot() : slot; return (FrameSlot) slot.asConstant().asObject(); } @@ -87,14 +87,14 @@ @Override public String toString(Verbosity verbosity) { if (verbosity == Verbosity.Name) { - return super.toString(verbosity) + getSlotKind().name() + (isFrameSlotConstant() ? " " + getFrameSlot() : ""); + return super.toString(verbosity) + getSlotKind().name() + (isConstantFrameSlot() ? " " + getConstantFrameSlot() : ""); } else { return super.toString(verbosity); } } protected final ValueNode getSlotOffset(int scale, MetaAccessProvider metaAccessProvider) { - if (isFrameSlotConstant()) { + if (isConstantFrameSlot()) { return ConstantNode.forInt(getSlotIndex() * scale, graph()); } else { LoadFieldNode loadFrameSlotIndex = graph().add(new LoadFieldNode(getSlot(), metaAccessProvider.lookupJavaField(getFrameSlotIndexField()))); @@ -117,7 +117,7 @@ return true; } - return getSlotKind() == getGraalKind(getFrameSlot().getKind()); + return getSlotKind() == getGraalKind(getConstantFrameSlot().getKind()); } private static Kind getGraalKind(FrameSlotKind kind) { @@ -142,12 +142,12 @@ @Override public final void simplify(SimplifierTool tool) { - if (isFrameSlotConstant()) { + if (isConstantFrameSlot()) { if (!isValidAccessKind()) { tool.deleteBranch(this.next()); this.replaceAndDelete(graph().add(new DeoptimizeNode(DeoptimizationAction.InvalidateReprofile, DeoptimizationReason.UnreachedCode))); } else { - tool.assumptions().record(new AssumptionValidAssumption((OptimizedAssumption) getFrameSlot().getFrameDescriptor().getVersion())); + tool.assumptions().record(new AssumptionValidAssumption((OptimizedAssumption) getConstantFrameSlot().getFrameDescriptor().getVersion())); } } } @@ -155,8 +155,8 @@ @Override public Map getDebugProperties(Map map) { Map properties = super.getDebugProperties(map); - if (isFrameSlotConstant()) { - properties.put("frameSlot", getFrameSlot().toString()); + if (isConstantFrameSlot()) { + properties.put("frameSlot", getConstantFrameSlot().toString()); } return properties; } diff -r 7b416466e269 -r 4f1aa732e60f graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/FrameGetNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/FrameGetNode.java Wed Aug 07 16:44:54 2013 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/FrameGetNode.java Wed Aug 07 16:45:23 2013 +0200 @@ -48,7 +48,7 @@ @Override public void virtualize(VirtualizerTool tool) { - if (!isFrameSlotConstant()) { + if (!isConstantFrameSlot()) { return; } assert isValidAccessKind(); diff -r 7b416466e269 -r 4f1aa732e60f graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/FrameSetNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/FrameSetNode.java Wed Aug 07 16:44:54 2013 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/FrameSetNode.java Wed Aug 07 16:45:23 2013 +0200 @@ -52,7 +52,7 @@ @Override public void virtualize(VirtualizerTool tool) { - if (!isFrameSlotConstant()) { + if (!isConstantFrameSlot()) { return; } assert isValidAccessKind(); diff -r 7b416466e269 -r 4f1aa732e60f mx/commands.py --- a/mx/commands.py Wed Aug 07 16:44:54 2013 +0200 +++ b/mx/commands.py Wed Aug 07 16:45:23 2013 +0200 @@ -809,7 +809,7 @@ def unittest(args): """run the JUnit tests (all testcases){0}""" - _unittest(args, ['@Test', '@LongTest']) + _unittest(args, ['@Test', '@LongTest', '@Parameters']) def shortunittest(args): """run the JUnit tests (short testcases only){0}""" @@ -819,7 +819,7 @@ def longunittest(args): """run the JUnit tests (long testcases only){0}""" - _unittest(args, ['@LongTest']) + _unittest(args, ['@LongTest', '@Parameters']) def buildvms(args): """build one or more VMs in various configurations"""