Mercurial > hg > graal-compiler
changeset 19418:7d3140f2de2e
reuse a single NodeIntrinsificationPhase instance in ReplacementsImpl (since the former is stateless)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 16 Feb 2015 21:12:51 +0100 |
parents | 042f0a8ebce2 |
children | e2fd58839d38 |
files | graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java |
diffstat | 1 files changed, 5 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Mon Feb 16 21:10:14 2015 +0100 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Mon Feb 16 21:12:51 2015 +0100 @@ -64,6 +64,7 @@ public final Providers providers; public final SnippetReflectionProvider snippetReflection; public final TargetDescription target; + public final NodeIntrinsificationPhase nodeIntrinsificationPhase; /** * The preprocessed replacement graphs. @@ -227,6 +228,7 @@ this.target = target; this.graphs = new ConcurrentHashMap<>(); this.snippetTemplateCache = CollectionsFactory.newMap(); + this.nodeIntrinsificationPhase = createNodeIntrinsificationPhase(); } private static final boolean UseSnippetGraphCache = Boolean.parseBoolean(System.getProperty("graal.useSnippetGraphCache", "true")); @@ -285,7 +287,7 @@ // Do deferred intrinsification of node intrinsics - createNodeIntrinsificationPhase().apply(specializedSnippet); + nodeIntrinsificationPhase.apply(specializedSnippet); new CanonicalizerPhase(true).apply(specializedSnippet, new PhaseContext(providers)); NodeIntrinsificationVerificationPhase.verify(specializedSnippet); } @@ -531,7 +533,7 @@ * Does final processing of a snippet graph. */ protected void finalizeGraph(StructuredGraph graph) { - replacements.createNodeIntrinsificationPhase().apply(graph); + replacements.nodeIntrinsificationPhase.apply(graph); if (!SnippetTemplate.hasConstantParameter(method)) { NodeIntrinsificationVerificationPhase.verify(graph); } @@ -666,7 +668,7 @@ * Called after all inlining for a given graph is complete. */ protected void afterInlining(StructuredGraph graph) { - replacements.createNodeIntrinsificationPhase().apply(graph); + replacements.nodeIntrinsificationPhase.apply(graph); new DeadCodeEliminationPhase(Optional).apply(graph); if (OptCanonicalizer.getValue()) { new CanonicalizerPhase(true).apply(graph, new PhaseContext(replacements.providers));