< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/meta/HotSpotGraphBuilderPlugins.java
Print this page
rev 56282 : [mq]: graal
@@ -44,10 +44,11 @@
import org.graalvm.compiler.core.common.type.ObjectStamp;
import org.graalvm.compiler.core.common.type.StampFactory;
import org.graalvm.compiler.core.common.type.TypeReference;
import org.graalvm.compiler.debug.GraalError;
import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig;
+import org.graalvm.compiler.hotspot.HotSpotGraalRuntimeProvider;
import org.graalvm.compiler.hotspot.nodes.CurrentJavaThreadNode;
import org.graalvm.compiler.hotspot.replacements.AESCryptSubstitutions;
import org.graalvm.compiler.hotspot.replacements.ArraysSupportSubstitutions;
import org.graalvm.compiler.hotspot.replacements.BigIntegerSubstitutions;
import org.graalvm.compiler.hotspot.replacements.CRC32CSubstitutions;
@@ -126,14 +127,21 @@
* @param constantReflection
* @param snippetReflection
* @param foreignCalls
* @param options
*/
- public static Plugins create(CompilerConfiguration compilerConfiguration, GraalHotSpotVMConfig config, HotSpotWordTypes wordTypes, MetaAccessProvider metaAccess,
- ConstantReflectionProvider constantReflection, SnippetReflectionProvider snippetReflection, ForeignCallsProvider foreignCalls, ReplacementsImpl replacements,
+ public static Plugins create(HotSpotGraalRuntimeProvider graalRuntime,
+ CompilerConfiguration compilerConfiguration,
+ GraalHotSpotVMConfig config,
+ HotSpotWordTypes wordTypes,
+ MetaAccessProvider metaAccess,
+ ConstantReflectionProvider constantReflection,
+ SnippetReflectionProvider snippetReflection,
+ ForeignCallsProvider foreignCalls,
+ ReplacementsImpl replacements,
OptionValues options) {
- InvocationPlugins invocationPlugins = new HotSpotInvocationPlugins(config, compilerConfiguration);
+ InvocationPlugins invocationPlugins = new HotSpotInvocationPlugins(graalRuntime, config, compilerConfiguration);
Plugins plugins = new Plugins(invocationPlugins);
NodeIntrinsificationProvider nodeIntrinsificationProvider = new NodeIntrinsificationProvider(metaAccess, snippetReflection, foreignCalls, wordTypes);
HotSpotWordOperationPlugin wordOperationPlugin = new HotSpotWordOperationPlugin(snippetReflection, wordTypes);
HotSpotNodePlugin nodePlugin = new HotSpotNodePlugin(wordOperationPlugin, config, wordTypes);
@@ -147,14 +155,18 @@
if (InlineDuringParsing.getValue(options)) {
plugins.appendInlineInvokePlugin(new InlineDuringParsingPlugin());
}
if (GeneratePIC.getValue(options)) {
- plugins.setClassInitializationPlugin(new HotSpotClassInitializationPlugin());
+ plugins.setClassInitializationPlugin(new HotSpotAOTClassInitializationPlugin());
if (TieredAOT.getValue(options)) {
plugins.setProfilingPlugin(new HotSpotAOTProfilingPlugin());
}
+ } else {
+ if (config.instanceKlassInitThreadOffset != -1) {
+ plugins.setClassInitializationPlugin(new HotSpotJITClassInitializationPlugin());
+ }
}
invocationPlugins.defer(new Runnable() {
@Override
< prev index next >