use of org.graalvm.compiler.hotspot.CompilerConfigurationFactory in project graal by oracle.
the class HotSpotTruffleRuntime method initLazyCompilerConfigurationName.
@Override
protected String initLazyCompilerConfigurationName() {
final OptionValues options = getGraalOptions(OptionValues.class);
String factoryName = Options.TruffleCompilerConfiguration.getValue(options);
HotSpotJVMCIRuntime runtime = HotSpotJVMCIRuntime.runtime();
CompilerConfigurationFactory compilerConfigurationFactory = CompilerConfigurationFactory.selectFactory(factoryName, options, runtime);
return compilerConfigurationFactory.getName();
}
use of org.graalvm.compiler.hotspot.CompilerConfigurationFactory 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);
}
use of org.graalvm.compiler.hotspot.CompilerConfigurationFactory in project graal by oracle.
the class HotSpotTruffleCompilerImpl method getCompiler.
private static GraalJVMCICompiler getCompiler(OptionValues options) {
HotSpotJVMCIRuntime runtime = HotSpotJVMCIRuntime.runtime();
if (!Options.TruffleCompilerConfiguration.hasBeenSet(options)) {
JVMCICompiler compiler = runtime.getCompiler();
if (compiler instanceof GraalJVMCICompiler) {
return (GraalJVMCICompiler) compiler;
}
}
CompilerConfigurationFactory compilerConfigurationFactory = CompilerConfigurationFactory.selectFactory(Options.TruffleCompilerConfiguration.getValue(options), options, runtime);
return HotSpotGraalCompilerFactory.createCompiler("Truffle", runtime, options, compilerConfigurationFactory);
}
use of org.graalvm.compiler.hotspot.CompilerConfigurationFactory in project graal by oracle.
the class TruffleToLibGraalEntryPoints method getCompilerConfigurationFactoryName.
@TruffleToLibGraal(GetCompilerConfigurationFactoryName)
@SuppressWarnings({ "unused", "try" })
@CEntryPoint(name = "Java_org_graalvm_compiler_truffle_runtime_hotspot_libgraal_TruffleToLibGraalCalls_getCompilerConfigurationFactoryName")
public static JString getCompilerConfigurationFactoryName(JNIEnv env, JClass hsClazz, @CEntryPoint.IsolateThreadContext long isolateThreadId, long truffleRuntimeHandle) {
JNIMethodScope scope = LibGraalUtil.openScope(TruffleToLibGraalEntryPoints.class, GetCompilerConfigurationFactoryName, env);
try (JNIMethodScope s = scope) {
HSTruffleCompilerRuntime hsTruffleRuntime = LibGraalObjectHandles.resolve(truffleRuntimeHandle, HSTruffleCompilerRuntime.class);
assert TruffleCompilerRuntime.getRuntime() == hsTruffleRuntime;
OptionValues graalOptions = hsTruffleRuntime.getGraalOptions(OptionValues.class);
String compConfig = Options.TruffleCompilerConfiguration.getValue(graalOptions);
CompilerConfigurationFactory compilerConfigurationFactory = CompilerConfigurationFactory.selectFactory(compConfig, graalOptions, HotSpotJVMCIRuntime.runtime());
String name = compilerConfigurationFactory.getName();
scope.setObjectResult(createHSString(env, name));
} catch (Throwable t) {
JNIExceptionWrapper.throwInHotSpot(env, t);
scope.setObjectResult(WordFactory.nullPointer());
}
return scope.getObjectResult();
}
Aggregations