# HG changeset patch # User Christos Kotselidis # Date 1374265291 -7200 # Node ID d5a8a7054005060975ec345e89c968f661384865 # Parent 2e852e96f97793105b6737e3670d702878be18dd# Parent f8fe0f7ee22a0253d7ba680306db6ac13e8b33ce Merge diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.compiler.hsail/src/com/oracle/graal/compiler/hsail/HSAILLIRGenerator.java --- a/graal/com.oracle.graal.compiler.hsail/src/com/oracle/graal/compiler/hsail/HSAILLIRGenerator.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.compiler.hsail/src/com/oracle/graal/compiler/hsail/HSAILLIRGenerator.java Fri Jul 19 22:21:31 2013 +0200 @@ -181,7 +181,7 @@ } private static boolean isCompressCandidate(DeoptimizingNode access) { - return access != null && ((HeapAccess) access).compress(); + return access != null && ((HeapAccess) access).compressible(); } @Override diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Fri Jul 19 22:21:31 2013 +0200 @@ -405,7 +405,7 @@ } private static boolean isCompressCandidate(DeoptimizingNode access) { - return access != null && ((HeapAccess) access).compress(); + return access != null && ((HeapAccess) access).compressible(); } @Override @@ -488,7 +488,7 @@ RegisterValue raxRes = AMD64.rax.asValue(kind); emitMove(raxRes, expected); - if (runtime().config.useCompressedOops && node.compress()) { + if (runtime().config.useCompressedOops && node.compressible()) { Variable scratch = newVariable(Kind.Long); append(new CompareAndSwapCompressedOp(raxRes, address, raxRes, newValue, scratch, runtime().config.narrowOopBase, runtime().config.narrowOopShift, runtime().config.logMinObjAlignment)); } else { diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierAdditionTest.java --- a/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierAdditionTest.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierAdditionTest.java Fri Jul 19 22:21:31 2013 +0200 @@ -165,7 +165,7 @@ */ @Test public void test6() throws Exception { - test2("test6Snippet", wr, new Long(referentOffset()), null); + test2("testUnsafeLoad", wr, new Long(referentOffset()), null); } /** @@ -174,7 +174,7 @@ */ @Test public void test7() throws Exception { - test2("test6Snippet", con, new Long(referentOffset()), null); + test2("testUnsafeLoad", con, new Long(referentOffset()), null); } /** @@ -184,7 +184,7 @@ */ @Test public void test8() throws Exception { - test2("test6Snippet", wr, new Long(32), null); + test2("testUnsafeLoad", wr, new Long(32), null); } /** @@ -194,7 +194,7 @@ */ @Test public void test10() throws Exception { - test2("test6Snippet", wr, new Long(8), new Integer(8)); + test2("testUnsafeLoad", wr, new Long(8), new Integer(8)); } /** @@ -204,10 +204,10 @@ */ @Test public void test9() throws Exception { - test2("test6Snippet", wr, new Long(16), new Integer(16)); + test2("testUnsafeLoad", wr, new Long(16), new Integer(16)); } - public static Object test6Snippet(Object a, Object b, Object c) throws Exception { + public static Object testUnsafeLoad(Object a, Object b, Object c) throws Exception { final int offset = (c == null ? 0 : ((Integer) c).intValue()); final long displacement = (b == null ? 0 : ((Long) b).longValue()); return UnsafeLoadNode.load(a, offset, displacement, Kind.Object); diff -r f8fe0f7ee22a -r d5a8a7054005 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 Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Fri Jul 19 22:21:31 2013 +0200 @@ -582,7 +582,7 @@ cas.setLocation(location); cas.setWriteBarrierType(getCompareAndSwapBarrier(cas)); if (cas.expected().kind() == Kind.Object) { - cas.setCompress(); + cas.setCompressible(); } } else if (n instanceof LoadIndexedNode) { LoadIndexedNode loadIndexed = (LoadIndexedNode) n; @@ -628,12 +628,12 @@ } else if (n instanceof UnsafeLoadNode) { UnsafeLoadNode load = (UnsafeLoadNode) n; assert load.kind() != Kind.Illegal; - boolean compress = (!load.object().isNullConstant() && load.accessKind() == Kind.Object); + boolean compressible = (!load.object().isNullConstant() && load.accessKind() == Kind.Object); if (addReadBarrier(load, tool)) { unsafeLoadSnippets.lower(load, tool); } else { IndexedLocationNode location = IndexedLocationNode.create(ANY_LOCATION, load.accessKind(), load.displacement(), load.offset(), graph, 1); - ReadNode memoryRead = graph.add(new ReadNode(load.object(), location, load.stamp(), WriteBarrierType.NONE, compress)); + ReadNode memoryRead = graph.add(new ReadNode(load.object(), location, load.stamp(), WriteBarrierType.NONE, compressible)); // An unsafe read must not float outside its block otherwise // it may float above an explicit null check on its object. memoryRead.setGuard(AbstractBeginNode.prevBegin(load)); diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Fri Jul 19 22:21:31 2013 +0200 @@ -270,12 +270,12 @@ public static class StoreConstantOp extends MemOp { protected final Constant input; - private final boolean compress; + private final boolean compressible; - public StoreConstantOp(Kind kind, AMD64AddressValue address, Constant input, LIRFrameState state, boolean compress) { + public StoreConstantOp(Kind kind, AMD64AddressValue address, Constant input, LIRFrameState state, boolean compressible) { super(kind, address, state); this.input = input; - this.compress = compress; + this.compressible = compressible; } @Override @@ -294,7 +294,7 @@ break; case Long: if (NumUtil.isInt(input.asLong())) { - if (compress) { + if (compressible) { masm.movl(address.toAddress(), (int) input.asLong()); } else { masm.movslq(address.toAddress(), (int) input.asLong()); @@ -310,7 +310,7 @@ throw GraalInternalError.shouldNotReachHere("Cannot store 64-bit constants to memory"); case Object: if (input.isNull()) { - if (compress) { + if (compressible) { masm.movl(address.toAddress(), 0); } else { masm.movptr(address.toAddress(), 0); diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/HeapAccess.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/HeapAccess.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/HeapAccess.java Fri Jul 19 22:21:31 2013 +0200 @@ -23,24 +23,23 @@ package com.oracle.graal.nodes; /** - * A HeapAccess is a node that access the heap and therefore may be subjected to certain rules of - * the underlying runtime. + * Encapsulates properties of a node describing how it accesses the heap. */ public interface HeapAccess { - /* + /** * The types of write barriers attached to stores. */ public enum WriteBarrierType { - /* + /** * Primitive stores which do not necessitate write barriers. */ NONE, - /* + /** * Array object stores which necessitate precise write barriers. */ PRECISE, - /* + /** * Field object stores which necessitate imprecise write barriers. */ IMPRECISE @@ -54,5 +53,5 @@ /** * Returns whether or not the heap access is a compressed pointer candidate. */ - boolean compress(); + boolean compressible(); } diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AccessNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AccessNode.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AccessNode.java Fri Jul 19 22:21:31 2013 +0200 @@ -38,7 +38,7 @@ @Input private ValueNode location; private boolean nullCheck; private WriteBarrierType barrierType; - private boolean compress; + private boolean compressible; public ValueNode object() { return object; @@ -64,17 +64,17 @@ this(object, location, stamp, null, WriteBarrierType.NONE, false); } - public AccessNode(ValueNode object, ValueNode location, Stamp stamp, WriteBarrierType barrierType, boolean compress) { - this(object, location, stamp, null, barrierType, compress); + public AccessNode(ValueNode object, ValueNode location, Stamp stamp, WriteBarrierType barrierType, boolean compressible) { + this(object, location, stamp, null, barrierType, compressible); } - public AccessNode(ValueNode object, ValueNode location, Stamp stamp, GuardingNode guard, WriteBarrierType barrierType, boolean compress) { + public AccessNode(ValueNode object, ValueNode location, Stamp stamp, GuardingNode guard, WriteBarrierType barrierType, boolean compressible) { super(stamp); this.object = object; this.location = location; this.guard = guard; this.barrierType = barrierType; - this.compress = compress; + this.compressible = compressible; } @Override @@ -109,7 +109,7 @@ } @Override - public boolean compress() { - return compress; + public boolean compressible() { + return compressible; } } diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatableAccessNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatableAccessNode.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatableAccessNode.java Fri Jul 19 22:21:31 2013 +0200 @@ -35,12 +35,12 @@ super(object, location, stamp); } - public FloatableAccessNode(ValueNode object, ValueNode location, Stamp stamp, GuardingNode guard, WriteBarrierType barrierType, boolean compress) { - super(object, location, stamp, guard, barrierType, compress); + public FloatableAccessNode(ValueNode object, ValueNode location, Stamp stamp, GuardingNode guard, WriteBarrierType barrierType, boolean compressible) { + super(object, location, stamp, guard, barrierType, compressible); } - public FloatableAccessNode(ValueNode object, ValueNode location, Stamp stamp, WriteBarrierType barrierType, boolean compress) { - super(object, location, stamp, barrierType, compress); + public FloatableAccessNode(ValueNode object, ValueNode location, Stamp stamp, WriteBarrierType barrierType, boolean compressible) { + super(object, location, stamp, barrierType, compressible); } public abstract FloatingAccessNode asFloatingNode(ValueNode lastLocationAccess); diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingAccessNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingAccessNode.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingAccessNode.java Fri Jul 19 22:21:31 2013 +0200 @@ -33,7 +33,7 @@ @Input private FrameState deoptState; private boolean nullCheck; private WriteBarrierType barrierType; - private boolean compress; + private boolean compressible; public ValueNode object() { return object; @@ -61,12 +61,12 @@ this.location = location; } - public FloatingAccessNode(ValueNode object, LocationNode location, Stamp stamp, GuardingNode guard, WriteBarrierType barrierType, boolean compress) { + public FloatingAccessNode(ValueNode object, LocationNode location, Stamp stamp, GuardingNode guard, WriteBarrierType barrierType, boolean compressible) { super(stamp, guard); this.object = object; this.location = location; this.barrierType = barrierType; - this.compress = compress; + this.compressible = compressible; } @Override @@ -101,8 +101,8 @@ } @Override - public boolean compress() { - return compress; + public boolean compressible() { + return compressible; } public abstract Access asFixedNode(); diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingReadNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingReadNode.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingReadNode.java Fri Jul 19 22:21:31 2013 +0200 @@ -40,8 +40,8 @@ this(object, location, lastLocationAccess, stamp, null, WriteBarrierType.NONE, false); } - public FloatingReadNode(ValueNode object, LocationNode location, Node lastLocationAccess, Stamp stamp, GuardingNode guard, WriteBarrierType barrierType, boolean compress) { - super(object, location, stamp, guard, barrierType, compress); + public FloatingReadNode(ValueNode object, LocationNode location, Node lastLocationAccess, Stamp stamp, GuardingNode guard, WriteBarrierType barrierType, boolean compressible) { + super(object, location, stamp, guard, barrierType, compressible); this.lastLocationAccess = lastLocationAccess; } @@ -57,11 +57,11 @@ @Override public ValueNode canonical(CanonicalizerTool tool) { - return ReadNode.canonicalizeRead(this, location(), object(), tool, compress()); + return ReadNode.canonicalizeRead(this, location(), object(), tool, compressible()); } @Override public Access asFixedNode() { - return graph().add(new ReadNode(object(), nullCheckLocation(), stamp(), getGuard(), getWriteBarrierType(), compress())); + return graph().add(new ReadNode(object(), nullCheckLocation(), stamp(), getGuard(), getWriteBarrierType(), compressible())); } } diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java Fri Jul 19 22:21:31 2013 +0200 @@ -34,12 +34,12 @@ */ public final class ReadNode extends FloatableAccessNode implements Node.IterableNodeType, LIRLowerable, Canonicalizable, PiPushable, Virtualizable { - public ReadNode(ValueNode object, ValueNode location, Stamp stamp, WriteBarrierType barrierType, boolean compress) { - super(object, location, stamp, barrierType, compress); + public ReadNode(ValueNode object, ValueNode location, Stamp stamp, WriteBarrierType barrierType, boolean compressible) { + super(object, location, stamp, barrierType, compressible); } - public ReadNode(ValueNode object, ValueNode location, Stamp stamp, GuardingNode guard, WriteBarrierType barrierType, boolean compress) { - super(object, location, stamp, guard, barrierType, compress); + public ReadNode(ValueNode object, ValueNode location, Stamp stamp, GuardingNode guard, WriteBarrierType barrierType, boolean compressible) { + super(object, location, stamp, guard, barrierType, compressible); } public ReadNode(ValueNode object, int displacement, LocationIdentity locationIdentity, Kind kind) { @@ -62,12 +62,12 @@ @Override public ValueNode canonical(CanonicalizerTool tool) { - return canonicalizeRead(this, location(), object(), tool, compress()); + return canonicalizeRead(this, location(), object(), tool, compressible()); } @Override public FloatingAccessNode asFloatingNode(ValueNode lastLocationAccess) { - return graph().unique(new FloatingReadNode(object(), location(), lastLocationAccess, stamp(), getGuard(), getWriteBarrierType(), compress())); + return graph().unique(new FloatingReadNode(object(), location(), lastLocationAccess, stamp(), getGuard(), getWriteBarrierType(), compressible())); } public static ValueNode canonicalizeRead(ValueNode read, LocationNode location, ValueNode object, CanonicalizerTool tool, boolean compressedPointer) { diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java Fri Jul 19 22:21:31 2013 +0200 @@ -65,12 +65,12 @@ return initialized; } - public WriteNode(ValueNode object, ValueNode value, ValueNode location, WriteBarrierType barrierType, boolean compress) { - this(object, value, location, barrierType, compress, true); + public WriteNode(ValueNode object, ValueNode value, ValueNode location, WriteBarrierType barrierType, boolean compressible) { + this(object, value, location, barrierType, compressible, true); } - public WriteNode(ValueNode object, ValueNode value, ValueNode location, WriteBarrierType barrierType, boolean compress, boolean initialized) { - super(object, location, StampFactory.forVoid(), barrierType, compress); + public WriteNode(ValueNode object, ValueNode value, ValueNode location, WriteBarrierType barrierType, boolean compressible, boolean initialized) { + super(object, location, StampFactory.forVoid(), barrierType, compressible); this.value = value; this.initialized = initialized; } @@ -82,7 +82,7 @@ } @NodeIntrinsic - public static native void writeMemory(Object object, Object value, Location location, @ConstantNodeParameter WriteBarrierType barrierType, @ConstantNodeParameter boolean compress); + public static native void writeMemory(Object object, Object value, Location location, @ConstantNodeParameter WriteBarrierType barrierType, @ConstantNodeParameter boolean compressible); @Override public LocationIdentity getLocationIdentity() { diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CompareAndSwapNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CompareAndSwapNode.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CompareAndSwapNode.java Fri Jul 19 22:21:31 2013 +0200 @@ -44,7 +44,7 @@ @Input private LocationNode location; private final int displacement; private WriteBarrierType barrierType; - private boolean compress; + private boolean compressible; public ValueNode object() { return object; @@ -85,12 +85,12 @@ } @Override - public boolean compress() { - return compress; + public boolean compressible() { + return compressible; } - public void setCompress() { - this.compress = true; + public void setCompressible() { + this.compressible = true; } public CompareAndSwapNode(ValueNode object, int displacement, ValueNode offset, ValueNode expected, ValueNode newValue) { @@ -102,7 +102,7 @@ this.newValue = newValue; this.displacement = displacement; this.barrierType = WriteBarrierType.NONE; - this.compress = false; + this.compressible = false; } @Override diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.word/src/com/oracle/graal/word/Pointer.java --- a/graal/com.oracle.graal.word/src/com/oracle/graal/word/Pointer.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.word/src/com/oracle/graal/word/Pointer.java Fri Jul 19 22:21:31 2013 +0200 @@ -620,10 +620,10 @@ * * @param offset the signed offset for the memory access * @param barrierType the type of the read barrier to be added - * @param compress whether or not the object is a decompression candidate + * @param compressible whether or not the object is a decompression candidate * @return the result of the memory access */ - Object readObject(WordBase offset, WriteBarrierType barrierType, boolean compress); + Object readObject(WordBase offset, WriteBarrierType barrierType, boolean compressible); /** * Reads the memory at address {@code (this + offset)}. Both the base address and offset are in @@ -712,10 +712,10 @@ * * @param offset the signed offset for the memory access * @param barrierType the type of the read barrier to be added - * @param compress whether or not the object is a decompression candidate + * @param compressible whether or not the object is a decompression candidate * @return the result of the memory access */ - Object readObject(int offset, WriteBarrierType barrierType, boolean compress); + Object readObject(int offset, WriteBarrierType barrierType, boolean compressible); /** * Writes the memory at address {@code (this + offset)}. Both the base address and offset are in diff -r f8fe0f7ee22a -r d5a8a7054005 graal/com.oracle.graal.word/src/com/oracle/graal/word/Word.java --- a/graal/com.oracle.graal.word/src/com/oracle/graal/word/Word.java Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.word/src/com/oracle/graal/word/Word.java Fri Jul 19 22:21:31 2013 +0200 @@ -882,7 +882,7 @@ public native Object readObject(WordBase offset); @Operation(opcode = Opcode.READ_HEAP) - public native Object readObject(WordBase offset, WriteBarrierType barrierType, boolean compress); + public native Object readObject(WordBase offset, WriteBarrierType barrierType, boolean compressible); @Override @Operation(opcode = Opcode.READ) @@ -939,8 +939,8 @@ } @Operation(opcode = Opcode.READ_HEAP) - public Object readObject(int offset, WriteBarrierType barrierType, boolean compress) { - return readObject(signed(offset), barrierType, compress); + public Object readObject(int offset, WriteBarrierType barrierType, boolean compressible) { + return readObject(signed(offset), barrierType, compressible); } @Override diff -r f8fe0f7ee22a -r d5a8a7054005 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 Fri Jul 19 12:01:15 2013 -0700 +++ b/graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java Fri Jul 19 22:21:31 2013 +0200 @@ -332,8 +332,8 @@ return IndexedLocationNode.create(locationIdentity, readKind, 0, offset, graph, 1); } - private static ValueNode readOp(StructuredGraph graph, ValueNode base, Invoke invoke, LocationNode location, WriteBarrierType barrierType, boolean compress) { - ReadNode read = graph.add(new ReadNode(base, location, invoke.asNode().stamp(), barrierType, compress)); + private static ValueNode readOp(StructuredGraph graph, ValueNode base, Invoke invoke, LocationNode location, WriteBarrierType barrierType, boolean compressible) { + ReadNode read = graph.add(new ReadNode(base, location, invoke.asNode().stamp(), barrierType, compressible)); graph.addBeforeFixed(invoke.asNode(), read); // The read must not float outside its block otherwise it may float above an explicit zero // check on its base address