Mercurial > hg > graal-compiler
changeset 8642:1093255fd0d4
simplified registration of snippets
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 05 Apr 2013 01:58:32 +0200 |
parents | bea614953503 |
children | 3d2c2b68fe93 |
files | graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotRuntime.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java |
diffstat | 3 files changed, 10 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- 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); }
--- 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);
--- 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<Node, Node> nodeReplacements = new IdentityHashMap<>(); nodeReplacements.put(snippetGraph.start(), snippetCopy.start());