Mercurial > hg > graal-jvmci-8
changeset 19394:07f2edacfd3f
copy all plugins when copying a GraphBuilderConfiguration
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 16 Feb 2015 13:41:30 +0100 |
parents | 3917abffef82 |
children | 40deedbc4f9b |
files | graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderConfiguration.java graal/com.oracle.graal.java/src/com/oracle/graal/java/InvocationPlugins.java |
diffstat | 3 files changed, 20 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java Mon Feb 16 12:35:57 2015 +0100 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java Mon Feb 16 13:41:30 2015 +0100 @@ -800,8 +800,10 @@ protected PhaseSuite<HighTierContext> getCustomGraphBuilderSuite(GraphBuilderConfiguration gbConf) { PhaseSuite<HighTierContext> suite = getDefaultGraphBuilderSuite().copy(); ListIterator<BasePhase<? super HighTierContext>> iterator = suite.findPhase(GraphBuilderPhase.class); + GraphBuilderPhase graphBuilderPhase = (GraphBuilderPhase) iterator.previous(); + GraphBuilderConfiguration gbConfCopy = gbConf.copy().copyPluginsFrom(graphBuilderPhase.getGraphBuilderConfig()); iterator.remove(); - iterator.add(new GraphBuilderPhase(gbConf)); + iterator.add(new GraphBuilderPhase(gbConfCopy)); return suite; }
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderConfiguration.java Mon Feb 16 12:35:57 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderConfiguration.java Mon Feb 16 13:41:30 2015 +0100 @@ -80,7 +80,7 @@ public GraphBuilderConfiguration copy() { GraphBuilderConfiguration result = new GraphBuilderConfiguration(eagerResolving, omitAllExceptionEdges, debugInfoMode, skippedExceptionTypes, doLivenessAnalysis); - result.loadFieldPlugin = loadFieldPlugin; + result.copyPluginsFrom(this); return result; } @@ -185,4 +185,13 @@ public void setLoopExplosionPlugin(LoopExplosionPlugin loopExplosionPlugin) { this.loopExplosionPlugin = loopExplosionPlugin; } + + public GraphBuilderConfiguration copyPluginsFrom(GraphBuilderConfiguration other) { + this.invocationPlugins.updateFrom(other.getInvocationPlugins()); + this.parameterPlugin = other.parameterPlugin; + this.loadFieldPlugin = other.loadFieldPlugin; + this.inlineInvokePlugin = other.inlineInvokePlugin; + this.loopExplosionPlugin = other.loopExplosionPlugin; + return this; + } }
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/InvocationPlugins.java Mon Feb 16 12:35:57 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/InvocationPlugins.java Mon Feb 16 13:41:30 2015 +0100 @@ -181,6 +181,13 @@ return old; } + /** + * Adds all the plugins from {@code other} to this object. + */ + public void updateFrom(InvocationPlugins other) { + this.plugins.putAll(other.plugins); + } + @Override public String toString() { return plugins.keySet().stream().map(m -> m.format("%H.%n(%p)")).collect(Collectors.joining(", "));