@SuppressWarnings("unchecked") @Override public <T> T getCapability(Class<T> clazz) { if (clazz == RuntimeProvider.class) { return (T) this; } else if (clazz == SnippetReflectionProvider.class) { return (T) GraalSupport.getRuntimeConfig().getSnippetReflection(); } else if (clazz == StackIntrospection.class) { return (T) SubstrateStackIntrospection.SINGLETON; } return null; }
dest = GraalSupport.getRuntimeConfig().getProviders().getForeignCalls(); } else if (source instanceof HostedSnippetReflectionProvider) { dest = GraalSupport.getRuntimeConfig().getSnippetReflection();
public static InstalledCode compileAndInstall(OptionValues options, RuntimeConfiguration runtimeConfig, Suites suites, LIRSuites lirSuites, SubstrateMethod method, boolean testTrampolineJumps) { updateGraalArchitectureWithHostCPUFeatures(runtimeConfig.lookupBackend(method)); DebugContext debug = DebugContext.create(options, new GraalDebugHandlersFactory(GraalSupport.getRuntimeConfig().getSnippetReflection())); // create the installed code descriptor SubstrateInstalledCodeImpl installedCode = new SubstrateInstalledCodeImpl(method); // do compilation and code installation and update the installed code descriptor SubstrateGraalUtils.doCompileAndInstall(debug, runtimeConfig, suites, lirSuites, method, installedCode, testTrampolineJumps); // return the installed code return installedCode; }
hostedProviders = new HostedProviders(runtimeProviders.getMetaAccess(), runtimeProviders.getCodeCache(), runtimeProviders.getConstantReflection(), runtimeProviders.getConstantFieldProvider(), runtimeProviders.getForeignCalls(), runtimeProviders.getLowerer(), runtimeProviders.getReplacements(), runtimeProviders.getStampProvider(), runtimeConfig.getSnippetReflection(), wordTypes); config.getImageClassLoader(), false, false); DebugContext debug = DebugContext.forCurrentThread(); NativeImageGenerator.registerReplacements(debug, featureHandler, runtimeConfig, runtimeConfig.getProviders(), runtimeConfig.getSnippetReflection(), false); featureHandler.forEachGraalFeature(feature -> feature.registerCodeObserver(runtimeConfig)); Suites suites = NativeImageGenerator.createSuites(featureHandler, runtimeConfig, runtimeConfig.getSnippetReflection(), false); LIRSuites lirSuites = NativeImageGenerator.createLIRSuites(featureHandler, runtimeConfig.getProviders(), false); Suites firstTierSuites = NativeImageGenerator.createFirstTierSuites(featureHandler, runtimeConfig, runtimeConfig.getSnippetReflection(), false); LIRSuites firstTierLirSuites = NativeImageGenerator.createFirstTierLIRSuites(featureHandler, runtimeConfig.getProviders(), false); GraalSupport.setRuntimeConfig(runtimeConfig, suites, lirSuites, firstTierSuites, firstTierLirSuites);