Search in sources :

Example 1 with SubstrateUnsupportedFeatures

use of com.oracle.svm.hosted.analysis.SubstrateUnsupportedFeatures in project graal by oracle.

the class NativeImageGenerator method createBigBang.

public static Inflation createBigBang(OptionValues options, TargetDescription target, AnalysisUniverse aUniverse, ForkJoinPool analysisExecutor, Runnable heartbeatCallback, AnalysisMetaAccess aMetaAccess, AnalysisConstantReflectionProvider aConstantReflection, WordTypes aWordTypes, SnippetReflectionProvider aSnippetReflection, AnnotationSubstitutionProcessor annotationSubstitutionProcessor, ForeignCallsProvider aForeignCalls, ClassInitializationSupport classInitializationSupport, Providers originalProviders) {
    assert aUniverse != null : "Analysis universe must be initialized.";
    aMetaAccess.lookupJavaType(String.class).registerAsReachable();
    AnalysisConstantFieldProvider aConstantFieldProvider = new AnalysisConstantFieldProvider(aUniverse, aMetaAccess, aConstantReflection, classInitializationSupport);
    /*
         * Install all snippets so that the types, methods, and fields used in the snippets get
         * added to the universe.
         */
    aMetaAccess.lookupJavaType(Reference.class).registerAsReachable();
    BarrierSet barrierSet = ImageSingletons.lookup(Heap.class).createBarrierSet(aMetaAccess);
    SubstratePlatformConfigurationProvider platformConfig = new SubstratePlatformConfigurationProvider(barrierSet);
    AnalysisMetaAccessExtensionProvider aMetaAccessExtensionProvider = new AnalysisMetaAccessExtensionProvider();
    LoweringProvider aLoweringProvider = SubstrateLoweringProvider.createForHosted(aMetaAccess, null, platformConfig, aMetaAccessExtensionProvider);
    StampProvider aStampProvider = new SubstrateStampProvider(aMetaAccess);
    HostedProviders aProviders = new HostedProviders(aMetaAccess, null, aConstantReflection, aConstantFieldProvider, aForeignCalls, aLoweringProvider, null, aStampProvider, aSnippetReflection, aWordTypes, platformConfig, aMetaAccessExtensionProvider, originalProviders.getLoopsDataProvider());
    BytecodeProvider bytecodeProvider = new ResolvedJavaMethodBytecodeProvider();
    SubstrateReplacements aReplacments = new SubstrateReplacements(aProviders, aSnippetReflection, bytecodeProvider, target, aWordTypes, new SubstrateGraphMakerFactory(aWordTypes));
    aProviders = new HostedProviders(aMetaAccess, null, aConstantReflection, aConstantFieldProvider, aForeignCalls, aLoweringProvider, aReplacments, aStampProvider, aSnippetReflection, aWordTypes, platformConfig, aMetaAccessExtensionProvider, originalProviders.getLoopsDataProvider());
    return new NativeImagePointsToAnalysis(options, aUniverse, aProviders, annotationSubstitutionProcessor, analysisExecutor, heartbeatCallback, new SubstrateUnsupportedFeatures(), ImageSingletons.lookup(TimerCollection.class));
}
Also used : SubstratePlatformConfigurationProvider(com.oracle.svm.core.graal.code.SubstratePlatformConfigurationProvider) AnalysisConstantFieldProvider(com.oracle.svm.hosted.ameta.AnalysisConstantFieldProvider) SubstrateStampProvider(com.oracle.svm.core.graal.meta.SubstrateStampProvider) StampProvider(org.graalvm.compiler.nodes.spi.StampProvider) Reference(java.lang.ref.Reference) AnalysisMetaAccessExtensionProvider(com.oracle.graal.pointsto.meta.AnalysisMetaAccessExtensionProvider) BytecodeProvider(org.graalvm.compiler.bytecode.BytecodeProvider) ResolvedJavaMethodBytecodeProvider(org.graalvm.compiler.bytecode.ResolvedJavaMethodBytecodeProvider) SubstrateLoweringProvider(com.oracle.svm.core.graal.meta.SubstrateLoweringProvider) NodeLoweringProvider(com.oracle.svm.core.graal.snippets.NodeLoweringProvider) LoweringProvider(org.graalvm.compiler.nodes.spi.LoweringProvider) SubstrateGraphMakerFactory(com.oracle.svm.hosted.code.SubstrateGraphMakerFactory) NativeImageHeap(com.oracle.svm.hosted.image.NativeImageHeap) ImageHeap(com.oracle.graal.pointsto.heap.ImageHeap) Heap(com.oracle.svm.core.heap.Heap) HostedProviders(com.oracle.graal.pointsto.meta.HostedProviders) BarrierSet(org.graalvm.compiler.nodes.gc.BarrierSet) SubstrateUnsupportedFeatures(com.oracle.svm.hosted.analysis.SubstrateUnsupportedFeatures) SubstrateReplacements(com.oracle.svm.core.graal.meta.SubstrateReplacements) TimerCollection(com.oracle.graal.pointsto.util.TimerCollection) SubstrateStampProvider(com.oracle.svm.core.graal.meta.SubstrateStampProvider) NativeImagePointsToAnalysis(com.oracle.svm.hosted.analysis.NativeImagePointsToAnalysis) ResolvedJavaMethodBytecodeProvider(org.graalvm.compiler.bytecode.ResolvedJavaMethodBytecodeProvider)

Aggregations

ImageHeap (com.oracle.graal.pointsto.heap.ImageHeap)1 AnalysisMetaAccessExtensionProvider (com.oracle.graal.pointsto.meta.AnalysisMetaAccessExtensionProvider)1 HostedProviders (com.oracle.graal.pointsto.meta.HostedProviders)1 TimerCollection (com.oracle.graal.pointsto.util.TimerCollection)1 SubstratePlatformConfigurationProvider (com.oracle.svm.core.graal.code.SubstratePlatformConfigurationProvider)1 SubstrateLoweringProvider (com.oracle.svm.core.graal.meta.SubstrateLoweringProvider)1 SubstrateReplacements (com.oracle.svm.core.graal.meta.SubstrateReplacements)1 SubstrateStampProvider (com.oracle.svm.core.graal.meta.SubstrateStampProvider)1 NodeLoweringProvider (com.oracle.svm.core.graal.snippets.NodeLoweringProvider)1 Heap (com.oracle.svm.core.heap.Heap)1 AnalysisConstantFieldProvider (com.oracle.svm.hosted.ameta.AnalysisConstantFieldProvider)1 NativeImagePointsToAnalysis (com.oracle.svm.hosted.analysis.NativeImagePointsToAnalysis)1 SubstrateUnsupportedFeatures (com.oracle.svm.hosted.analysis.SubstrateUnsupportedFeatures)1 SubstrateGraphMakerFactory (com.oracle.svm.hosted.code.SubstrateGraphMakerFactory)1 NativeImageHeap (com.oracle.svm.hosted.image.NativeImageHeap)1 Reference (java.lang.ref.Reference)1 BytecodeProvider (org.graalvm.compiler.bytecode.BytecodeProvider)1 ResolvedJavaMethodBytecodeProvider (org.graalvm.compiler.bytecode.ResolvedJavaMethodBytecodeProvider)1 BarrierSet (org.graalvm.compiler.nodes.gc.BarrierSet)1 LoweringProvider (org.graalvm.compiler.nodes.spi.LoweringProvider)1