--- old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/ObjectCloneNode.java 2018-12-11 11:13:09.000000000 -0800 +++ new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/ObjectCloneNode.java 2018-12-11 11:13:08.000000000 -0800 @@ -24,13 +24,12 @@ package org.graalvm.compiler.hotspot.replacements; -import java.lang.reflect.Method; - import org.graalvm.compiler.core.common.type.AbstractPointerStamp; import org.graalvm.compiler.core.common.type.Stamp; import org.graalvm.compiler.core.common.type.StampPair; import org.graalvm.compiler.debug.DebugContext; import org.graalvm.compiler.graph.NodeClass; +import org.graalvm.compiler.hotspot.meta.HotSpotLoweringProvider; import org.graalvm.compiler.nodeinfo.NodeInfo; import org.graalvm.compiler.nodes.CallTargetNode.InvokeKind; import org.graalvm.compiler.nodes.NodeView; @@ -45,6 +44,7 @@ import org.graalvm.compiler.nodes.spi.LoweringTool; import org.graalvm.compiler.nodes.spi.Replacements; import org.graalvm.compiler.nodes.type.StampTool; +import org.graalvm.compiler.replacements.SnippetTemplate.SnippetInfo; import org.graalvm.compiler.replacements.nodes.BasicObjectCloneNode; import jdk.vm.ci.meta.Assumptions; @@ -77,11 +77,14 @@ @SuppressWarnings("try") protected StructuredGraph getLoweredSnippetGraph(LoweringTool tool) { ResolvedJavaType type = StampTool.typeOrNull(getObject()); + if (type != null) { if (type.isArray()) { - Method method = ObjectCloneSnippets.arrayCloneMethods.get(type.getComponentType().getJavaKind()); - if (method != null) { - final ResolvedJavaMethod snippetMethod = tool.getMetaAccess().lookupJavaMethod(method); + HotSpotLoweringProvider lowerer = (HotSpotLoweringProvider) tool.getLowerer(); + ObjectCloneSnippets.Templates objectCloneSnippets = lowerer.getObjectCloneSnippets(); + SnippetInfo info = objectCloneSnippets.arrayCloneMethods.get(type.getComponentType().getJavaKind()); + if (info != null) { + final ResolvedJavaMethod snippetMethod = info.getMethod(); final Replacements replacements = tool.getReplacements(); StructuredGraph snippetGraph = null; DebugContext debug = getDebug();