Mercurial > hg > graal-jvmci-8
changeset 20884:dc41766b35e1
ensure Graal's GenericInvocationPlugin is used by Truffle FastPE
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 10 Apr 2015 13:10:56 +0200 |
parents | 7f4339cca304 |
children | c4691265275a 0e647427eee4 2402d5534773 |
files | graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java |
diffstat | 1 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java Fri Apr 10 12:00:38 2015 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java Fri Apr 10 13:10:56 2015 +0200 @@ -95,9 +95,14 @@ ResolvedJavaType[] skippedExceptionTypes = getSkippedExceptionTypes(providers.getMetaAccess()); GraphBuilderPhase phase = (GraphBuilderPhase) backend.getSuites().getDefaultGraphBuilderSuite().findPhase(GraphBuilderPhase.class).previous(); - InvocationPlugins invocationPlugins = new InvocationPlugins(phase.getGraphBuilderConfig().getPlugins().getInvocationPlugins()); + Plugins graalPlugins = phase.getGraphBuilderConfig().getPlugins(); + InvocationPlugins invocationPlugins = new InvocationPlugins(graalPlugins.getInvocationPlugins()); Plugins plugins = new Plugins(invocationPlugins); this.config = GraphBuilderConfiguration.getDefault(plugins).withSkippedExceptionTypes(skippedExceptionTypes); + // Since invocationPlugins may include MethodSubstitutionPlugins, we + // need to copy the GenericInvocationPlugins so that @NodeIntrinsics + // and Word methods in method substitutions are handled correctly. + plugins.setGenericInvocationPlugin(graalPlugins.getGenericInvocationPlugin()); this.partialEvaluator = new PartialEvaluator(providers, config, Graal.getRequiredCapability(SnippetReflectionProvider.class));