Mercurial > hg > graal-compiler
changeset 18295:17bf458cf86e
reduced use of HotSpotObjectConstantImpl.forObject
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 06 Nov 2014 23:04:43 +0100 |
parents | 8e10f4877773 |
children | a6e7531d3dd3 |
files | graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ConstantReflectionProvider.java graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBytecodeLIRBuilder.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java |
diffstat | 4 files changed, 12 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ConstantReflectionProvider.java Thu Nov 06 22:39:36 2014 +0100 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ConstantReflectionProvider.java Thu Nov 06 23:04:43 2014 +0100 @@ -92,6 +92,11 @@ JavaConstant unboxPrimitive(JavaConstant source); /** + * Gets a string as a {@link JavaConstant}. + */ + JavaConstant forString(String value); + + /** * Returns the {@link ResolvedJavaType} for a {@link Class} object (or any other object regarded * as a class by the VM) encapsulated in the given constant. Returns {@code null} if the * constant does not encapsulate a class, or if the type is not available at this point.
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBytecodeLIRBuilder.java Thu Nov 06 22:39:36 2014 +0100 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBytecodeLIRBuilder.java Thu Nov 06 23:04:43 2014 +0100 @@ -26,6 +26,7 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; +import com.oracle.graal.api.meta.ResolvedJavaType.Representation; import com.oracle.graal.compiler.gen.*; import com.oracle.graal.hotspot.amd64.AMD64HotSpotLIRGenerator.SaveRbp; import com.oracle.graal.hotspot.meta.*; @@ -87,7 +88,7 @@ @Override public JavaConstant getClassConstant(ResolvedJavaType declaringClass) { - return HotSpotObjectConstantImpl.forObject(((HotSpotResolvedJavaType) declaringClass).mirror()); + return declaringClass.getEncoding(Representation.JavaClass); } @Override
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java Thu Nov 06 22:39:36 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java Thu Nov 06 23:04:43 2014 +0100 @@ -229,6 +229,10 @@ return JavaConstant.forBoxedPrimitive(((HotSpotObjectConstantImpl) source).object()); } + public JavaConstant forString(String value) { + return HotSpotObjectConstantImpl.forObject(value); + } + @Override public ResolvedJavaType asJavaType(JavaConstant constant) { if (constant instanceof HotSpotObjectConstant) {
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java Thu Nov 06 22:39:36 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java Thu Nov 06 23:04:43 2014 +0100 @@ -507,7 +507,7 @@ for (ReturnNode ret : rets) { returnType = checkCounter.getMethod().getSignature().getReturnType(checkCounter.getMethod().getDeclaringClass()); String msg = "unbalanced monitors in " + graph.method().format("%H.%n(%p)") + ", count = %d"; - ConstantNode errMsg = ConstantNode.forConstant(HotSpotObjectConstantImpl.forObject(msg), providers.getMetaAccess(), graph); + ConstantNode errMsg = ConstantNode.forConstant(tool.getConstantReflection().forString(msg), providers.getMetaAccess(), graph); callTarget = graph.add(MethodCallTargetNode.create(InvokeKind.Static, checkCounter.getMethod(), new ValueNode[]{errMsg}, returnType)); invoke = graph.add(InvokeNode.create(callTarget, 0)); List<ValueNode> stack = Collections.emptyList();