Mercurial > hg > truffle
changeset 18302:fb289eb7243d
removed getKind() from HotSpotMetaspaceConstant and made the latter extend StampProvider
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 07 Nov 2014 12:34:18 +0100 |
parents | 0f41072d8bbc |
children | ab47ef2f2207 |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstant.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstantImpl.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CompressionNode.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/MultiTypeGuardInlineInfo.java |
diffstat | 4 files changed, 15 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstant.java Fri Nov 07 11:28:34 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstant.java Fri Nov 07 12:34:18 2014 +0100 @@ -23,9 +23,10 @@ package com.oracle.graal.hotspot.meta; import com.oracle.graal.api.meta.*; +import com.oracle.graal.compiler.common.type.*; import com.oracle.graal.hotspot.HotSpotVMConfig.CompressEncoding; -public interface HotSpotMetaspaceConstant extends HotSpotConstant, VMConstant, Remote { +public interface HotSpotMetaspaceConstant extends HotSpotConstant, VMConstant, Remote, StampProvider { boolean isCompressed(); @@ -34,6 +35,4 @@ Constant uncompress(CompressEncoding encoding); HotSpotResolvedObjectType asResolvedJavaType(); - - Kind getKind(); }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstantImpl.java Fri Nov 07 11:28:34 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstantImpl.java Fri Nov 07 12:34:18 2014 +0100 @@ -25,6 +25,7 @@ import java.util.*; import com.oracle.graal.api.meta.*; +import com.oracle.graal.compiler.common.type.*; import com.oracle.graal.hotspot.HotSpotVMConfig.CompressEncoding; public final class HotSpotMetaspaceConstantImpl extends PrimitiveConstant implements HotSpotMetaspaceConstant, VMConstant { @@ -63,6 +64,13 @@ return super.toString() + "{" + metaspaceObject + (compressed ? ";compressed}" : "}"); } + public Stamp stamp() { + if (compressed) { + return StampFactory.forInteger(32); + } + return StampFactory.forInteger(64); + } + public boolean isCompressed() { return compressed; }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CompressionNode.java Fri Nov 07 11:28:34 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CompressionNode.java Fri Nov 07 12:34:18 2014 +0100 @@ -79,7 +79,7 @@ } else if (c instanceof HotSpotObjectConstant) { return ((HotSpotObjectConstant) c).compress(); } else if (c instanceof HotSpotMetaspaceConstant) { - assert ((HotSpotMetaspaceConstant) c).getKind() == Kind.Long; + assert ((HotSpotMetaspaceConstant) c).stamp().getStackKind() == Kind.Long; return ((HotSpotMetaspaceConstant) c).compress(encoding); } else { throw GraalInternalError.shouldNotReachHere("invalid constant input for compress op: " + c); @@ -92,7 +92,7 @@ } else if (c instanceof HotSpotObjectConstant) { return ((HotSpotObjectConstant) c).uncompress(); } else if (c instanceof HotSpotMetaspaceConstant) { - assert ((HotSpotMetaspaceConstant) c).getKind() == Kind.Int; + assert ((HotSpotMetaspaceConstant) c).stamp().getStackKind() == Kind.Int; return ((HotSpotMetaspaceConstant) c).uncompress(encoding); } else { throw GraalInternalError.shouldNotReachHere("invalid constant input for uncompress op: " + c);
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/MultiTypeGuardInlineInfo.java Fri Nov 07 11:28:34 2014 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/MultiTypeGuardInlineInfo.java Fri Nov 07 12:34:18 2014 +0100 @@ -343,7 +343,9 @@ private boolean createDispatchOnTypeBeforeInvoke(StructuredGraph graph, BeginNode[] successors, boolean invokeIsOnlySuccessor, MetaAccessProvider metaAccess) { assert ptypes.size() >= 1; ValueNode nonNullReceiver = InliningUtil.nonNullReceiver(invoke); - Kind hubKind = ((MethodCallTargetNode) invoke.callTarget()).targetMethod().getDeclaringClass().getEncoding(ResolvedJavaType.Representation.ObjectHub).getKind(); + Constant hubConstant = ((MethodCallTargetNode) invoke.callTarget()).targetMethod().getDeclaringClass().getEncoding(ResolvedJavaType.Representation.ObjectHub); + Stamp hubStamp = ((StampProvider) hubConstant).stamp(); + Kind hubKind = hubStamp.getStackKind(); LoadHubNode hub = graph.unique(LoadHubNode.create(nonNullReceiver, hubKind)); if (!invokeIsOnlySuccessor && chooseMethodDispatch()) {