Search in sources :

Example 1 with EconomyCompilerConfigurationFactory

use of org.graalvm.compiler.hotspot.EconomyCompilerConfigurationFactory in project graal by oracle.

the class HotSpotTruffleCompilerImpl method create.

public static HotSpotTruffleCompilerImpl create(final TruffleCompilerRuntime runtime) {
    OptionValues options = runtime.getGraalOptions(OptionValues.class);
    HotSpotGraalRuntimeProvider hotspotGraalRuntime = (HotSpotGraalRuntimeProvider) getCompiler(options).getGraalRuntime();
    SnippetReflectionProvider snippetReflection = hotspotGraalRuntime.getRequiredCapability(SnippetReflectionProvider.class);
    HotSpotBackend backend = hotspotGraalRuntime.getHostBackend();
    GraphBuilderPhase phase = (GraphBuilderPhase) backend.getSuites().getDefaultGraphBuilderSuite().findPhase(GraphBuilderPhase.class).previous();
    Plugins plugins = phase.getGraphBuilderConfig().getPlugins();
    final PartialEvaluatorConfiguration lastTierPe = createPartialEvaluatorConfiguration(hotspotGraalRuntime.getCompilerConfigurationName());
    final TruffleTierConfiguration lastTierSetup = new TruffleTierConfiguration(lastTierPe, backend, options);
    CompilerConfigurationFactory lowTierCompilerConfigurationFactory = new EconomyCompilerConfigurationFactory();
    CompilerConfiguration compilerConfiguration = lowTierCompilerConfigurationFactory.createCompilerConfiguration();
    HotSpotBackendFactory backendFactory = lowTierCompilerConfigurationFactory.createBackendMap().getBackendFactory(backend.getTarget().arch);
    HotSpotBackend firstTierBackend = backendFactory.createBackend(hotspotGraalRuntime, compilerConfiguration, HotSpotJVMCIRuntime.runtime(), null);
    Suites firstTierSuites = firstTierBackend.getSuites().getDefaultSuites(options);
    LIRSuites firstTierLirSuites = firstTierBackend.getSuites().getDefaultLIRSuites(options);
    Providers firstTierProviders = firstTierBackend.getProviders();
    PartialEvaluatorConfiguration firstTierPe = new EconomyPartialEvaluatorConfiguration();
    firstTierBackend.completeInitialization(HotSpotJVMCIRuntime.runtime(), options);
    TruffleTierConfiguration firstTierSetup = new TruffleTierConfiguration(firstTierPe, firstTierBackend, firstTierProviders, firstTierSuites, firstTierLirSuites);
    final TruffleCompilerConfiguration compilerConfig = new TruffleCompilerConfiguration(runtime, plugins, snippetReflection, firstTierSetup, lastTierSetup);
    return new HotSpotTruffleCompilerImpl(hotspotGraalRuntime, compilerConfig);
}
Also used : HotSpotBackendFactory(org.graalvm.compiler.hotspot.HotSpotBackendFactory) EconomyCompilerConfigurationFactory(org.graalvm.compiler.hotspot.EconomyCompilerConfigurationFactory) EconomyPartialEvaluatorConfiguration(org.graalvm.compiler.truffle.compiler.EconomyPartialEvaluatorConfiguration) OptionValues(org.graalvm.compiler.options.OptionValues) EconomyPartialEvaluatorConfiguration(org.graalvm.compiler.truffle.compiler.EconomyPartialEvaluatorConfiguration) PartialEvaluatorConfiguration(org.graalvm.compiler.truffle.compiler.PartialEvaluatorConfiguration) TruffleTierConfiguration(org.graalvm.compiler.truffle.compiler.TruffleTierConfiguration) HotSpotGraalRuntimeProvider(org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider) Providers(org.graalvm.compiler.phases.util.Providers) SnippetReflectionProvider(org.graalvm.compiler.api.replacements.SnippetReflectionProvider) CompilerConfigurationFactory(org.graalvm.compiler.hotspot.CompilerConfigurationFactory) EconomyCompilerConfigurationFactory(org.graalvm.compiler.hotspot.EconomyCompilerConfigurationFactory) HotSpotBackend(org.graalvm.compiler.hotspot.HotSpotBackend) CompilerConfiguration(org.graalvm.compiler.phases.tiers.CompilerConfiguration) TruffleCompilerConfiguration(org.graalvm.compiler.truffle.compiler.TruffleCompilerConfiguration) TruffleCompilerConfiguration(org.graalvm.compiler.truffle.compiler.TruffleCompilerConfiguration) LIRSuites(org.graalvm.compiler.lir.phases.LIRSuites) GraphBuilderPhase(org.graalvm.compiler.java.GraphBuilderPhase) InvocationPlugins(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins) Plugins(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.Plugins) LIRSuites(org.graalvm.compiler.lir.phases.LIRSuites) Suites(org.graalvm.compiler.phases.tiers.Suites)

Aggregations

SnippetReflectionProvider (org.graalvm.compiler.api.replacements.SnippetReflectionProvider)1 CompilerConfigurationFactory (org.graalvm.compiler.hotspot.CompilerConfigurationFactory)1 EconomyCompilerConfigurationFactory (org.graalvm.compiler.hotspot.EconomyCompilerConfigurationFactory)1 HotSpotBackend (org.graalvm.compiler.hotspot.HotSpotBackend)1 HotSpotBackendFactory (org.graalvm.compiler.hotspot.HotSpotBackendFactory)1 HotSpotGraalRuntimeProvider (org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider)1 GraphBuilderPhase (org.graalvm.compiler.java.GraphBuilderPhase)1 LIRSuites (org.graalvm.compiler.lir.phases.LIRSuites)1 Plugins (org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.Plugins)1 InvocationPlugins (org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins)1 OptionValues (org.graalvm.compiler.options.OptionValues)1 CompilerConfiguration (org.graalvm.compiler.phases.tiers.CompilerConfiguration)1 Suites (org.graalvm.compiler.phases.tiers.Suites)1 Providers (org.graalvm.compiler.phases.util.Providers)1 EconomyPartialEvaluatorConfiguration (org.graalvm.compiler.truffle.compiler.EconomyPartialEvaluatorConfiguration)1 PartialEvaluatorConfiguration (org.graalvm.compiler.truffle.compiler.PartialEvaluatorConfiguration)1 TruffleCompilerConfiguration (org.graalvm.compiler.truffle.compiler.TruffleCompilerConfiguration)1 TruffleTierConfiguration (org.graalvm.compiler.truffle.compiler.TruffleTierConfiguration)1