Mercurial > hg > graal-compiler
changeset 10863:5404cde63c43
Remove redundant checks for loading compressed constants
author | Christos Kotselidis <christos.kotselidis@oracle.com> |
---|---|
date | Tue, 23 Jul 2013 17:48:01 +0200 |
parents | cea4beb67bfd |
children | 6457dc4227e3 |
files | graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaAccessProvider.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java |
diffstat | 4 files changed, 9 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaAccessProvider.java Mon Jul 22 22:04:17 2013 +0200 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaAccessProvider.java Tue Jul 23 17:48:01 2013 +0200 @@ -90,11 +90,11 @@ * * @param base the base address from which the value is read * @param displacement the displacement within the object in bytes - * @param compressedPointer whether this is a read of a compressed or an uncompressed pointer + * @param compressible whether this is a read of a compressed or an uncompressed pointer * @return the read value encapsulated in a {@link Constant} object, or {@code null} if the * value cannot be read. */ - Constant readUnsafeConstant(Kind kind, Object base, long displacement, boolean compressedPointer); + Constant readUnsafeConstant(Kind kind, Object base, long displacement, boolean compressible); /** * Determines if a given foreign call is side-effect free. Deoptimization cannot return
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java Mon Jul 22 22:04:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField.java Tue Jul 23 17:48:01 2013 +0200 @@ -200,12 +200,12 @@ if (receiver == null) { assert Modifier.isStatic(flags); if (holder.isInitialized()) { - return graalRuntime().getRuntime().readUnsafeConstant(getKind(), holder.mirror(), offset, graalRuntime().getRuntime().config.useCompressedOops); + return graalRuntime().getRuntime().readUnsafeConstant(getKind(), holder.mirror(), offset, getKind() == Kind.Object); } return null; } else { assert !Modifier.isStatic(flags); - return graalRuntime().getRuntime().readUnsafeConstant(getKind(), receiver.asObject(), offset, graalRuntime().getRuntime().config.useCompressedOops); + return graalRuntime().getRuntime().readUnsafeConstant(getKind(), receiver.asObject(), offset, getKind() == Kind.Object); } }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Mon Jul 22 22:04:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Tue Jul 23 17:48:01 2013 +0200 @@ -1115,7 +1115,7 @@ } @Override - public Constant readUnsafeConstant(Kind kind, Object base, long displacement, boolean compressedPointer) { + public Constant readUnsafeConstant(Kind kind, Object base, long displacement, boolean compressible) { switch (kind) { case Boolean: return Constant.forBoolean(base == null ? unsafe.getByte(displacement) != 0 : unsafe.getBoolean(base, displacement)); @@ -1143,7 +1143,7 @@ return Constant.forDouble(base == null ? unsafe.getDouble(displacement) : unsafe.getDouble(base, displacement)); case Object: { Object o = null; - if (compressedPointer || !this.getGraalRuntime().getRuntime().config.useCompressedOops) { + if (compressible) { o = unsafe.getObject(base, displacement); } else { o = this.getGraalRuntime().getCompilerToVM().readUnsafeUncompressedPointer(base, displacement);
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java Mon Jul 22 22:04:17 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java Tue Jul 23 17:48:01 2013 +0200 @@ -70,7 +70,7 @@ return graph().unique(new FloatingReadNode(object(), location(), lastLocationAccess, stamp(), getGuard(), getBarrierType(), isCompressible())); } - public static ValueNode canonicalizeRead(ValueNode read, LocationNode location, ValueNode object, CanonicalizerTool tool, boolean compressedPointer) { + public static ValueNode canonicalizeRead(ValueNode read, LocationNode location, ValueNode object, CanonicalizerTool tool, boolean compressible) { MetaAccessProvider runtime = tool.runtime(); if (read.usages().count() == 0) { // Read without usages can be savely removed. @@ -83,7 +83,7 @@ if (object.kind() == Kind.Object) { Object base = object.asConstant().asObject(); if (base != null) { - Constant constant = tool.runtime().readUnsafeConstant(kind, base, displacement, compressedPointer); + Constant constant = tool.runtime().readUnsafeConstant(kind, base, displacement, compressible); if (constant != null) { return ConstantNode.forConstant(constant, runtime, read.graph()); } @@ -91,7 +91,7 @@ } else if (object.kind() == Kind.Long || object.kind().getStackKind() == Kind.Int) { long base = object.asConstant().asLong(); if (base != 0L) { - Constant constant = tool.runtime().readUnsafeConstant(kind, null, base + displacement, compressedPointer); + Constant constant = tool.runtime().readUnsafeConstant(kind, null, base + displacement, compressible); if (constant != null) { return ConstantNode.forConstant(constant, runtime, read.graph()); }