103 HotSpotGCProvider gc = createGCProvider(config); |
103 HotSpotGCProvider gc = createGCProvider(config); |
104 Providers p = new Providers(metaAccess, codeCache, constantReflection, constantFieldProvider, foreignCalls, lowerer, null, stampProvider, gc); |
104 Providers p = new Providers(metaAccess, codeCache, constantReflection, constantFieldProvider, foreignCalls, lowerer, null, stampProvider, gc); |
105 HotSpotSnippetReflectionProvider snippetReflection = createSnippetReflection(runtime, constantReflection, wordTypes); |
105 HotSpotSnippetReflectionProvider snippetReflection = createSnippetReflection(runtime, constantReflection, wordTypes); |
106 BytecodeProvider bytecodeProvider = createBytecodeProvider(metaAccess, snippetReflection); |
106 BytecodeProvider bytecodeProvider = createBytecodeProvider(metaAccess, snippetReflection); |
107 HotSpotReplacementsImpl replacements = createReplacements(target, p, snippetReflection, bytecodeProvider); |
107 HotSpotReplacementsImpl replacements = createReplacements(target, p, snippetReflection, bytecodeProvider); |
108 Plugins plugins = createGraphBuilderPlugins(compilerConfiguration, config, metaAccess, constantReflection, foreignCalls, snippetReflection, replacements, wordTypes, runtime.getOptions()); |
108 Plugins plugins = createGraphBuilderPlugins(runtime, compilerConfiguration, config, metaAccess, constantReflection, foreignCalls, snippetReflection, replacements, wordTypes, |
|
109 runtime.getOptions()); |
109 replacements.setGraphBuilderPlugins(plugins); |
110 replacements.setGraphBuilderPlugins(plugins); |
110 HotSpotSuitesProvider suites = createSuites(config, runtime, compilerConfiguration, plugins, replacements); |
111 HotSpotSuitesProvider suites = createSuites(config, runtime, compilerConfiguration, plugins, replacements); |
111 HotSpotProviders providers = new HotSpotProviders(metaAccess, codeCache, constantReflection, constantFieldProvider, foreignCalls, lowerer, replacements, suites, registers, |
112 HotSpotProviders providers = new HotSpotProviders(metaAccess, codeCache, constantReflection, constantFieldProvider, foreignCalls, lowerer, replacements, suites, registers, |
112 snippetReflection, wordTypes, plugins, gc); |
113 snippetReflection, wordTypes, plugins, gc); |
113 replacements.setProviders(providers); |
114 replacements.setProviders(providers); |
114 |
115 |
115 return createBackend(config, runtime, providers); |
116 return createBackend(config, runtime, providers); |
116 } |
117 } |
117 |
118 |
118 protected Plugins createGraphBuilderPlugins(CompilerConfiguration compilerConfiguration, GraalHotSpotVMConfig config, HotSpotMetaAccessProvider metaAccess, |
119 protected Plugins createGraphBuilderPlugins(HotSpotGraalRuntimeProvider graalRuntime, |
119 HotSpotConstantReflectionProvider constantReflection, HotSpotForeignCallsProvider foreignCalls, |
120 CompilerConfiguration compilerConfiguration, |
120 HotSpotSnippetReflectionProvider snippetReflection, HotSpotReplacementsImpl replacements, HotSpotWordTypes wordTypes, OptionValues options) { |
121 GraalHotSpotVMConfig config, |
121 Plugins plugins = HotSpotGraphBuilderPlugins.create(compilerConfiguration, config, wordTypes, metaAccess, constantReflection, snippetReflection, foreignCalls, replacements, options); |
122 HotSpotMetaAccessProvider metaAccess, |
|
123 HotSpotConstantReflectionProvider constantReflection, |
|
124 HotSpotForeignCallsProvider foreignCalls, |
|
125 HotSpotSnippetReflectionProvider snippetReflection, |
|
126 HotSpotReplacementsImpl replacements, |
|
127 HotSpotWordTypes wordTypes, |
|
128 OptionValues options) { |
|
129 Plugins plugins = HotSpotGraphBuilderPlugins.create( |
|
130 graalRuntime, |
|
131 compilerConfiguration, |
|
132 config, |
|
133 wordTypes, |
|
134 metaAccess, |
|
135 constantReflection, |
|
136 snippetReflection, |
|
137 foreignCalls, |
|
138 replacements, |
|
139 options); |
122 SPARCGraphBuilderPlugins.register(plugins, replacements.getDefaultReplacementBytecodeProvider(), false); |
140 SPARCGraphBuilderPlugins.register(plugins, replacements.getDefaultReplacementBytecodeProvider(), false); |
123 return plugins; |
141 return plugins; |
124 } |
142 } |
125 |
143 |
126 /** |
144 /** |