< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.aarch64/src/org/graalvm/compiler/hotspot/aarch64/AArch64HotSpotBackendFactory.java

Print this page




 149             try (InitTimer rt = timer("create GraphBuilderPhase plugins")) {
 150                 plugins = createGraphBuilderPlugins(compilerConfiguration, config, constantReflection, foreignCalls, metaAccess, snippetReflection, replacements, wordTypes);
 151                 replacements.setGraphBuilderPlugins(plugins);
 152             }
 153             try (InitTimer rt = timer("create Suites provider")) {
 154                 suites = createSuites(config, graalRuntime, compilerConfiguration, plugins, replacements);
 155             }
 156             providers = new HotSpotProviders(metaAccess, codeCache, constantReflection, constantFieldProvider, foreignCalls, lowerer, replacements, suites, registers,
 157                             snippetReflection, wordTypes,
 158                             plugins);
 159         }
 160         try (InitTimer rt = timer("instantiate backend")) {
 161             return createBackend(config, graalRuntime, providers);
 162         }
 163     }
 164 
 165     protected Plugins createGraphBuilderPlugins(CompilerConfiguration compilerConfiguration, GraalHotSpotVMConfig config, HotSpotConstantReflectionProvider constantReflection,
 166                     HotSpotHostForeignCallsProvider foreignCalls, HotSpotMetaAccessProvider metaAccess, HotSpotSnippetReflectionProvider snippetReflection,
 167                     HotSpotReplacementsImpl replacements, HotSpotWordTypes wordTypes) {
 168         Plugins plugins = HotSpotGraphBuilderPlugins.create(compilerConfiguration, config, wordTypes, metaAccess, constantReflection, snippetReflection, foreignCalls, replacements);
 169         AArch64GraphBuilderPlugins.register(plugins, replacements.getDefaultReplacementBytecodeProvider(), false);

 170         return plugins;
 171     }
 172 
 173     protected AArch64HotSpotBackend createBackend(GraalHotSpotVMConfig config, HotSpotGraalRuntimeProvider runtime, HotSpotProviders providers) {
 174         return new AArch64HotSpotBackend(config, runtime, providers);
 175     }
 176 
 177     protected HotSpotRegistersProvider createRegisters() {
 178         return new HotSpotRegisters(AArch64HotSpotRegisterConfig.threadRegister, AArch64HotSpotRegisterConfig.heapBaseRegister, sp);
 179     }
 180 
 181     protected HotSpotReplacementsImpl createReplacements(OptionValues options, Providers p, SnippetReflectionProvider snippetReflection, BytecodeProvider bytecodeProvider) {
 182         return new HotSpotReplacementsImpl(options, p, snippetReflection, bytecodeProvider, p.getCodeCache().getTarget());
 183     }
 184 
 185     protected HotSpotHostForeignCallsProvider createForeignCalls(HotSpotJVMCIRuntime jvmciRuntime, HotSpotGraalRuntimeProvider runtime, HotSpotMetaAccessProvider metaAccess,
 186                     HotSpotCodeCacheProvider codeCache, WordTypes wordTypes, Value[] nativeABICallerSaveRegisters) {
 187         return new AArch64HotSpotForeignCallsProvider(jvmciRuntime, runtime, metaAccess, codeCache, wordTypes, nativeABICallerSaveRegisters);
 188     }
 189 




 149             try (InitTimer rt = timer("create GraphBuilderPhase plugins")) {
 150                 plugins = createGraphBuilderPlugins(compilerConfiguration, config, constantReflection, foreignCalls, metaAccess, snippetReflection, replacements, wordTypes);
 151                 replacements.setGraphBuilderPlugins(plugins);
 152             }
 153             try (InitTimer rt = timer("create Suites provider")) {
 154                 suites = createSuites(config, graalRuntime, compilerConfiguration, plugins, replacements);
 155             }
 156             providers = new HotSpotProviders(metaAccess, codeCache, constantReflection, constantFieldProvider, foreignCalls, lowerer, replacements, suites, registers,
 157                             snippetReflection, wordTypes,
 158                             plugins);
 159         }
 160         try (InitTimer rt = timer("instantiate backend")) {
 161             return createBackend(config, graalRuntime, providers);
 162         }
 163     }
 164 
 165     protected Plugins createGraphBuilderPlugins(CompilerConfiguration compilerConfiguration, GraalHotSpotVMConfig config, HotSpotConstantReflectionProvider constantReflection,
 166                     HotSpotHostForeignCallsProvider foreignCalls, HotSpotMetaAccessProvider metaAccess, HotSpotSnippetReflectionProvider snippetReflection,
 167                     HotSpotReplacementsImpl replacements, HotSpotWordTypes wordTypes) {
 168         Plugins plugins = HotSpotGraphBuilderPlugins.create(compilerConfiguration, config, wordTypes, metaAccess, constantReflection, snippetReflection, foreignCalls, replacements);
 169         AArch64GraphBuilderPlugins.register(plugins, replacements.getDefaultReplacementBytecodeProvider(), false, //
 170                         /* registerMathPlugins */true);
 171         return plugins;
 172     }
 173 
 174     protected AArch64HotSpotBackend createBackend(GraalHotSpotVMConfig config, HotSpotGraalRuntimeProvider runtime, HotSpotProviders providers) {
 175         return new AArch64HotSpotBackend(config, runtime, providers);
 176     }
 177 
 178     protected HotSpotRegistersProvider createRegisters() {
 179         return new HotSpotRegisters(AArch64HotSpotRegisterConfig.threadRegister, AArch64HotSpotRegisterConfig.heapBaseRegister, sp);
 180     }
 181 
 182     protected HotSpotReplacementsImpl createReplacements(OptionValues options, Providers p, SnippetReflectionProvider snippetReflection, BytecodeProvider bytecodeProvider) {
 183         return new HotSpotReplacementsImpl(options, p, snippetReflection, bytecodeProvider, p.getCodeCache().getTarget());
 184     }
 185 
 186     protected HotSpotHostForeignCallsProvider createForeignCalls(HotSpotJVMCIRuntime jvmciRuntime, HotSpotGraalRuntimeProvider runtime, HotSpotMetaAccessProvider metaAccess,
 187                     HotSpotCodeCacheProvider codeCache, WordTypes wordTypes, Value[] nativeABICallerSaveRegisters) {
 188         return new AArch64HotSpotForeignCallsProvider(jvmciRuntime, runtime, metaAccess, codeCache, wordTypes, nativeABICallerSaveRegisters);
 189     }
 190 


< prev index next >