# HG changeset patch # User Doug Simon # Date 1365119912 -7200 # Node ID 1093255fd0d4e007a3d75525386ef0e1e9486084 # Parent bea614953503c0d2249aa2fc81dbb9e51b0d28dd simplified registration of snippets diff -r bea614953503 -r 1093255fd0d4 graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotRuntime.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotRuntime.java Fri Apr 05 01:53:50 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotRuntime.java Fri Apr 05 01:58:32 2013 +0200 @@ -207,7 +207,6 @@ @Override public void registerReplacements(Replacements replacements) { - replacements.registerSnippets(AMD64ConvertSnippets.class); convertSnippets = new AMD64ConvertSnippets.Templates(this, replacements, graalRuntime.getTarget()); super.registerReplacements(replacements); } diff -r bea614953503 -r 1093255fd0d4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Fri Apr 05 01:53:50 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Fri Apr 05 01:58:32 2013 +0200 @@ -331,15 +331,6 @@ replacements.registerSnippets(ObjectCloneSnippets.class); } - replacements.registerSnippets(CheckCastSnippets.class); - replacements.registerSnippets(InstanceOfSnippets.class); - replacements.registerSnippets(NewObjectSnippets.class); - replacements.registerSnippets(MonitorSnippets.class); - - replacements.registerSnippets(NewInstanceStub.class); - replacements.registerSnippets(NewArrayStub.class); - replacements.registerSnippets(WriteBarrierSnippets.class); - checkcastSnippets = new CheckCastSnippets.Templates(this, replacements, graalRuntime.getTarget()); instanceofSnippets = new InstanceOfSnippets.Templates(this, replacements, graalRuntime.getTarget()); newObjectSnippets = new NewObjectSnippets.Templates(this, replacements, graalRuntime.getTarget(), config.useTLAB); diff -r bea614953503 -r 1093255fd0d4 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Fri Apr 05 01:53:50 2013 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Fri Apr 05 01:58:32 2013 +0200 @@ -22,6 +22,8 @@ */ package com.oracle.graal.replacements; +import static com.oracle.graal.api.meta.MetaUtil.*; + import java.lang.reflect.*; import java.util.*; import java.util.Map.Entry; @@ -40,7 +42,10 @@ import com.oracle.graal.nodes.type.*; import com.oracle.graal.nodes.util.*; import com.oracle.graal.phases.common.*; -import com.oracle.graal.replacements.Snippet.*; +import com.oracle.graal.replacements.Snippet.ConstantParameter; +import com.oracle.graal.replacements.Snippet.Parameter; +import com.oracle.graal.replacements.Snippet.Varargs; +import com.oracle.graal.replacements.Snippet.VarargsParameter; import com.oracle.graal.replacements.nodes.*; import com.oracle.graal.word.*; import com.oracle.graal.word.phases.*; @@ -202,6 +207,7 @@ this.snippetsClass = snippetsClass; } this.cache = new Cache(runtime, replacements, target); + replacements.registerSnippets(this.snippetsClass); } protected ResolvedJavaMethod snippet(String name, Class... parameterTypes) { @@ -239,6 +245,9 @@ // Copy snippet graph, replacing constant parameters with given arguments StructuredGraph snippetGraph = replacements.getSnippet(method); + if (snippetGraph == null) { + throw new GraalInternalError("Snippet has not been registered: %s", format("%H.%n(%p)", method)); + } StructuredGraph snippetCopy = new StructuredGraph(snippetGraph.name, snippetGraph.method()); IdentityHashMap nodeReplacements = new IdentityHashMap<>(); nodeReplacements.put(snippetGraph.start(), snippetCopy.start());