# HG changeset patch # User Christian Wimmer # Date 1431645020 25200 # Node ID cb7bc65fdc0bdba40ad769c8f3e7d2f324bab5a0 # Parent 30fe503e1c46317640ee6976e483eba26d4c1de9 Simplify subclasses that want to override createGraphBuilder diff -r 30fe503e1c46 -r cb7bc65fdc0b graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Thu May 14 16:09:15 2015 -0700 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Thu May 14 16:10:20 2015 -0700 @@ -77,6 +77,10 @@ this.graphBuilderPlugins = plugins; } + public GraphBuilderConfiguration.Plugins getGraphBuilderPlugins() { + return graphBuilderPlugins; + } + protected boolean hasGenericInvocationPluginAnnotation(ResolvedJavaMethod method) { return method.getAnnotation(Node.NodeIntrinsic.class) != null || method.getAnnotation(Word.Operation.class) != null || method.getAnnotation(Fold.class) != null; } @@ -581,7 +585,19 @@ if (args != null) { plugins.setParameterPlugin(new ConstantBindingParameterPlugin(args, plugins.getParameterPlugin(), metaAccess, replacements.snippetReflection)); } - createGraphBuilder(metaAccess, replacements.providers.getStampProvider(), replacements.providers.getConstantReflection(), config, OptimisticOptimizations.NONE).apply(graph); + + IntrinsicContext initialIntrinsicContext = null; + if (method.getAnnotation(Snippet.class) == null) { + // Post-parse inlined intrinsic + initialIntrinsicContext = new IntrinsicContext(substitutedMethod, method, INLINE_AFTER_PARSING); + } else { + // Snippet + ResolvedJavaMethod original = substitutedMethod != null ? substitutedMethod : method; + initialIntrinsicContext = new IntrinsicContext(original, method, INLINE_AFTER_PARSING); + } + + createGraphBuilder(metaAccess, replacements.providers.getStampProvider(), replacements.providers.getConstantReflection(), config, OptimisticOptimizations.NONE, initialIntrinsicContext).apply( + graph); if (OptCanonicalizer.getValue()) { new CanonicalizerPhase().apply(graph, new PhaseContext(replacements.providers)); @@ -593,16 +609,7 @@ } protected Instance createGraphBuilder(MetaAccessProvider metaAccess, StampProvider stampProvider, ConstantReflectionProvider constantReflection, GraphBuilderConfiguration graphBuilderConfig, - OptimisticOptimizations optimisticOpts) { - IntrinsicContext initialIntrinsicContext = null; - if (method.getAnnotation(Snippet.class) == null) { - // Post-parse inlined intrinsic - initialIntrinsicContext = new IntrinsicContext(substitutedMethod, method, INLINE_AFTER_PARSING); - } else { - // Snippet - ResolvedJavaMethod original = substitutedMethod != null ? substitutedMethod : method; - initialIntrinsicContext = new IntrinsicContext(original, method, INLINE_AFTER_PARSING); - } + OptimisticOptimizations optimisticOpts, IntrinsicContext initialIntrinsicContext) { return new GraphBuilderPhase.Instance(metaAccess, stampProvider, constantReflection, graphBuilderConfig, optimisticOpts, initialIntrinsicContext); } }