# HG changeset patch # User Doug Simon # Date 1339064141 -7200 # Node ID f70b1547c7bfc676faccf7cca0ceef58a4797a8e # Parent d554a6709d5eb083c263f36d305f73cbb9a80b7d small refactoring of snippet API diff -r d554a6709d5e -r f70b1547c7bf graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/CheckCastSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/CheckCastSnippets.java Thu Jun 07 09:47:35 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/CheckCastSnippets.java Thu Jun 07 12:15:41 2012 +0200 @@ -23,8 +23,8 @@ package com.oracle.graal.hotspot.snippets; import static com.oracle.graal.hotspot.snippets.ArrayCopySnippets.*; import static com.oracle.graal.hotspot.snippets.CheckCastSnippets.Counter.*; -import static com.oracle.graal.snippets.Snippet.Arguments.*; import static com.oracle.graal.snippets.Snippet.Multiple.*; +import static com.oracle.graal.snippets.SnippetTemplate.Arguments.*; import java.io.*; import java.util.*; @@ -43,10 +43,11 @@ import com.oracle.graal.nodes.extended.*; import com.oracle.graal.nodes.java.*; import com.oracle.graal.snippets.*; -import com.oracle.graal.snippets.Snippet.Arguments; import com.oracle.graal.snippets.Snippet.Constant; import com.oracle.graal.snippets.Snippet.Parameter; +import com.oracle.graal.snippets.SnippetTemplate.Arguments; import com.oracle.graal.snippets.SnippetTemplate.Cache; +import com.oracle.graal.snippets.SnippetTemplate.Key; import com.oracle.graal.snippets.nodes.*; import com.oracle.max.cri.ci.*; import com.oracle.max.cri.ri.*; @@ -361,23 +362,23 @@ final HotSpotTypeResolvedImpl target = (HotSpotTypeResolvedImpl) checkcast.targetClass(); boolean checkNull = !object.stamp().nonNull(); Arguments arguments; - SnippetTemplate.Key key; + Key key; if (target == null) { HotSpotKlassOop[] hints = createHints(hintInfo); - key = new SnippetTemplate.Key(unknown).add("hints", multiple(Object.class, hints.length)).add("checkNull", checkNull); + key = new Key(unknown).add("hints", multiple(Object.class, hints.length)).add("checkNull", checkNull); arguments = arguments("hub", hub).add("object", object).add("hints", hints); } else if (hintInfo.exact) { HotSpotKlassOop[] hints = createHints(hintInfo); assert hints.length == 1; - key = new SnippetTemplate.Key(exact).add("checkNull", checkNull); + key = new Key(exact).add("checkNull", checkNull); arguments = arguments("object", object).add("exactHub", hints[0]); } else if (target.isPrimaryType()) { - key = new SnippetTemplate.Key(primary).add("checkNull", checkNull).add("superCheckOffset", target.superCheckOffset()); + key = new Key(primary).add("checkNull", checkNull).add("superCheckOffset", target.superCheckOffset()); arguments = arguments("hub", hub).add("object", object); } else { HotSpotKlassOop[] hints = createHints(hintInfo); - key = new SnippetTemplate.Key(secondary).add("hints", multiple(Object.class, hints.length)).add("checkNull", checkNull); + key = new Key(secondary).add("hints", multiple(Object.class, hints.length)).add("checkNull", checkNull); arguments = arguments("hub", hub).add("object", object).add("hints", hints); } diff -r d554a6709d5e -r f70b1547c7bf graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/Snippet.java --- a/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/Snippet.java Thu Jun 07 09:47:35 2012 +0200 +++ b/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/Snippet.java Thu Jun 07 12:15:41 2012 +0200 @@ -24,8 +24,6 @@ import java.lang.annotation.*; import java.lang.reflect.*; -import java.util.*; -import java.util.Map.Entry; import com.oracle.graal.graph.Node.NodeIntrinsic; import com.oracle.graal.snippets.nodes.*; @@ -80,37 +78,6 @@ } /** - * Arguments used to instantiate a template. - */ - public static class Arguments implements Iterable> { - private final HashMap map = new HashMap<>(); - - public static Arguments arguments(String name, Object value) { - return new Arguments().add(name, value); - } - - public Arguments add(String name, Object value) { - assert !map.containsKey(name); - map.put(name, value); - return this; - } - - public int length() { - return map.size(); - } - - @Override - public Iterator> iterator() { - return map.entrySet().iterator(); - } - - @Override - public String toString() { - return map.toString(); - } - } - - /** * Wrapper for the prototype value of a {@linkplain Parameter#multiple() multiple} parameter. */ public static class Multiple { diff -r d554a6709d5e -r f70b1547c7bf graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/SnippetTemplate.java --- a/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/SnippetTemplate.java Thu Jun 07 09:47:35 2012 +0200 +++ b/graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/SnippetTemplate.java Thu Jun 07 12:15:41 2012 +0200 @@ -37,7 +37,6 @@ import com.oracle.graal.nodes.java.*; import com.oracle.graal.nodes.type.*; import com.oracle.graal.nodes.util.*; -import com.oracle.graal.snippets.Snippet.Arguments; import com.oracle.graal.snippets.Snippet.Constant; import com.oracle.graal.snippets.Snippet.Multiple; import com.oracle.graal.snippets.Snippet.Parameter; @@ -111,6 +110,37 @@ } /** + * Arguments used to instantiate a template. + */ + public static class Arguments implements Iterable> { + private final HashMap map = new HashMap<>(); + + public static Arguments arguments(String name, Object value) { + return new Arguments().add(name, value); + } + + public Arguments add(String name, Object value) { + assert !map.containsKey(name); + map.put(name, value); + return this; + } + + public int length() { + return map.size(); + } + + @Override + public Iterator> iterator() { + return map.entrySet().iterator(); + } + + @Override + public String toString() { + return map.toString(); + } + } + + /** * A collection of snippet templates accessed by a {@link Key} instance. */ public static class Cache { @@ -362,7 +392,7 @@ * * @return the map that will be used to bind arguments to parameters when inlining this template */ - private IdentityHashMap bind(StructuredGraph replaceeGraph, RiRuntime runtime, Snippet.Arguments args) { + private IdentityHashMap bind(StructuredGraph replaceeGraph, RiRuntime runtime, SnippetTemplate.Arguments args) { IdentityHashMap replacements = new IdentityHashMap<>(); for (Map.Entry e : args) { @@ -407,7 +437,7 @@ */ public void instantiate(RiRuntime runtime, Node replacee, - FixedWithNextNode anchor, Arguments args) { + FixedWithNextNode anchor, SnippetTemplate.Arguments args) { // Inline the snippet nodes, replacing parameters with the given args in the process String name = graph.name == null ? "{copy}" : graph.name + "{copy}";