Mercurial > hg > graal-compiler
changeset 11257:27a415148090
don't intrinsify Object.getClass and NodeClass.get in AOT
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Wed, 07 Aug 2013 19:13:11 +0200 |
parents | e38a3c10005a |
children | 064ce0777eba |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectGetClassNode.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeClassSubstitutions.java |
diffstat | 2 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectGetClassNode.java Wed Aug 07 18:37:53 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectGetClassNode.java Wed Aug 07 19:13:11 2013 +0200 @@ -22,6 +22,8 @@ */ package com.oracle.graal.hotspot.replacements; +import static com.oracle.graal.phases.GraalOptions.*; + import com.oracle.graal.api.meta.*; import com.oracle.graal.api.meta.ResolvedJavaType.Representation; import com.oracle.graal.nodes.*; @@ -45,6 +47,9 @@ @Override public void virtualize(VirtualizerTool tool) { + if (AOTCompilation.getValue()) { + return; + } State state = tool.getObjectState(getObject()); if (state != null) { Constant clazz = state.getVirtualObject().type().getEncoding(Representation.JavaClass); @@ -53,6 +58,9 @@ } public ValueNode canonical(CanonicalizerTool tool) { + if (AOTCompilation.getValue()) { + return this; + } if (usages().isEmpty()) { return null; } else {
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeClassSubstitutions.java Wed Aug 07 18:37:53 2013 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeClassSubstitutions.java Wed Aug 07 19:13:11 2013 +0200 @@ -22,6 +22,8 @@ */ package com.oracle.graal.replacements; +import static com.oracle.graal.phases.GraalOptions.*; + import com.oracle.graal.api.meta.*; import com.oracle.graal.api.replacements.*; import com.oracle.graal.graph.*; @@ -53,7 +55,7 @@ @Override protected Constant evaluate(Constant param, MetaAccessProvider metaAccess) { - return Constant.forObject(NodeClass.get((Class<?>) param.asObject())); + return param.isNull() || AOTCompilation.getValue() ? null : Constant.forObject(NodeClass.get((Class<?>) param.asObject())); } }