src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotBackendFactory.java
changeset 48861 47f19ff9903c
parent 47216 71c04702a3d5
child 49873 26ebfe8ce852
equal deleted inserted replaced
48860:5bce1b7e7800 48861:47f19ff9903c
    47 import org.graalvm.compiler.hotspot.meta.HotSpotSnippetReflectionProvider;
    47 import org.graalvm.compiler.hotspot.meta.HotSpotSnippetReflectionProvider;
    48 import org.graalvm.compiler.hotspot.meta.HotSpotStampProvider;
    48 import org.graalvm.compiler.hotspot.meta.HotSpotStampProvider;
    49 import org.graalvm.compiler.hotspot.meta.HotSpotSuitesProvider;
    49 import org.graalvm.compiler.hotspot.meta.HotSpotSuitesProvider;
    50 import org.graalvm.compiler.hotspot.word.HotSpotWordTypes;
    50 import org.graalvm.compiler.hotspot.word.HotSpotWordTypes;
    51 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.Plugins;
    51 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.Plugins;
       
    52 import org.graalvm.compiler.nodes.spi.LoweringProvider;
    52 import org.graalvm.compiler.nodes.spi.Replacements;
    53 import org.graalvm.compiler.nodes.spi.Replacements;
    53 import org.graalvm.compiler.options.OptionValues;
    54 import org.graalvm.compiler.options.OptionValues;
    54 import org.graalvm.compiler.phases.tiers.CompilerConfiguration;
    55 import org.graalvm.compiler.phases.tiers.CompilerConfiguration;
    55 import org.graalvm.compiler.phases.util.Providers;
    56 import org.graalvm.compiler.phases.util.Providers;
    56 import org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins;
    57 import org.graalvm.compiler.replacements.amd64.AMD64GraphBuilderPlugins;
   135             }
   136             }
   136             try (InitTimer rt = timer("create Replacements provider")) {
   137             try (InitTimer rt = timer("create Replacements provider")) {
   137                 replacements = createReplacements(options, p, snippetReflection, bytecodeProvider);
   138                 replacements = createReplacements(options, p, snippetReflection, bytecodeProvider);
   138             }
   139             }
   139             try (InitTimer rt = timer("create GraphBuilderPhase plugins")) {
   140             try (InitTimer rt = timer("create GraphBuilderPhase plugins")) {
   140                 plugins = createGraphBuilderPlugins(compilerConfiguration, config, options, target, constantReflection, foreignCalls, metaAccess, snippetReflection, replacements, wordTypes,
   141                 plugins = createGraphBuilderPlugins(compilerConfiguration, config, options, target, constantReflection, foreignCalls, lowerer, metaAccess, snippetReflection, replacements, wordTypes,
   141                                 stampProvider);
   142                                 stampProvider);
   142                 replacements.setGraphBuilderPlugins(plugins);
   143                 replacements.setGraphBuilderPlugins(plugins);
   143             }
   144             }
   144             try (InitTimer rt = timer("create Suites provider")) {
   145             try (InitTimer rt = timer("create Suites provider")) {
   145                 suites = createSuites(config, graalRuntime, compilerConfiguration, plugins, registers, replacements, options);
   146                 suites = createSuites(config, graalRuntime, compilerConfiguration, plugins, registers, replacements, options);
   152             return createBackend(config, graalRuntime, providers);
   153             return createBackend(config, graalRuntime, providers);
   153         }
   154         }
   154     }
   155     }
   155 
   156 
   156     protected Plugins createGraphBuilderPlugins(CompilerConfiguration compilerConfiguration, GraalHotSpotVMConfig config, OptionValues options, TargetDescription target,
   157     protected Plugins createGraphBuilderPlugins(CompilerConfiguration compilerConfiguration, GraalHotSpotVMConfig config, OptionValues options, TargetDescription target,
   157                     HotSpotConstantReflectionProvider constantReflection, HotSpotHostForeignCallsProvider foreignCalls, HotSpotMetaAccessProvider metaAccess,
   158                     HotSpotConstantReflectionProvider constantReflection, HotSpotHostForeignCallsProvider foreignCalls, LoweringProvider lowerer, HotSpotMetaAccessProvider metaAccess,
   158                     HotSpotSnippetReflectionProvider snippetReflection, HotSpotReplacementsImpl replacements, HotSpotWordTypes wordTypes, HotSpotStampProvider stampProvider) {
   159                     HotSpotSnippetReflectionProvider snippetReflection, HotSpotReplacementsImpl replacements, HotSpotWordTypes wordTypes, HotSpotStampProvider stampProvider) {
   159         Plugins plugins = HotSpotGraphBuilderPlugins.create(compilerConfiguration, config, wordTypes, metaAccess, constantReflection, snippetReflection, foreignCalls, stampProvider, replacements);
   160         Plugins plugins = HotSpotGraphBuilderPlugins.create(compilerConfiguration, config, wordTypes, metaAccess, constantReflection, snippetReflection, foreignCalls, lowerer, stampProvider,
       
   161                         replacements);
   160         AMD64GraphBuilderPlugins.register(plugins, replacements.getDefaultReplacementBytecodeProvider(), (AMD64) target.arch, GraalArithmeticStubs.getValue(options));
   162         AMD64GraphBuilderPlugins.register(plugins, replacements.getDefaultReplacementBytecodeProvider(), (AMD64) target.arch, GraalArithmeticStubs.getValue(options));
   161         return plugins;
   163         return plugins;
   162     }
   164     }
   163 
   165 
   164     protected AMD64HotSpotBackend createBackend(GraalHotSpotVMConfig config, HotSpotGraalRuntimeProvider runtime, HotSpotProviders providers) {
   166     protected AMD64HotSpotBackend createBackend(GraalHotSpotVMConfig config, HotSpotGraalRuntimeProvider runtime, HotSpotProviders providers) {