src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.java/src/org/graalvm/compiler/java/GraphBuilderPhase.java
changeset 54328 37648a9c4a6a
parent 52910 583fd71c47d6
child 58299 6df94ce3ab2f
equal deleted inserted replaced
54327:a4d19817609c 54328:37648a9c4a6a
    22  */
    22  */
    23 
    23 
    24 
    24 
    25 package org.graalvm.compiler.java;
    25 package org.graalvm.compiler.java;
    26 
    26 
    27 import org.graalvm.compiler.core.common.spi.ConstantFieldProvider;
       
    28 import org.graalvm.compiler.nodes.StructuredGraph;
    27 import org.graalvm.compiler.nodes.StructuredGraph;
    29 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration;
    28 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration;
    30 import org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext;
    29 import org.graalvm.compiler.nodes.graphbuilderconf.IntrinsicContext;
    31 import org.graalvm.compiler.nodes.spi.StampProvider;
    30 import org.graalvm.compiler.nodes.spi.CoreProviders;
    32 import org.graalvm.compiler.phases.BasePhase;
    31 import org.graalvm.compiler.phases.BasePhase;
    33 import org.graalvm.compiler.phases.OptimisticOptimizations;
    32 import org.graalvm.compiler.phases.OptimisticOptimizations;
    34 import org.graalvm.compiler.phases.tiers.HighTierContext;
    33 import org.graalvm.compiler.phases.tiers.HighTierContext;
    35 
    34 
    36 import jdk.vm.ci.meta.ConstantReflectionProvider;
       
    37 import jdk.vm.ci.meta.MetaAccessProvider;
       
    38 import jdk.vm.ci.meta.ResolvedJavaMethod;
    35 import jdk.vm.ci.meta.ResolvedJavaMethod;
    39 
    36 
    40 /**
    37 /**
    41  * Parses the bytecodes of a method and builds the IR graph.
    38  * Parses the bytecodes of a method and builds the IR graph.
    42  */
    39  */
    53         return false;
    50         return false;
    54     }
    51     }
    55 
    52 
    56     @Override
    53     @Override
    57     protected void run(StructuredGraph graph, HighTierContext context) {
    54     protected void run(StructuredGraph graph, HighTierContext context) {
    58         new Instance(context.getMetaAccess(), context.getStampProvider(), context.getConstantReflection(), context.getConstantFieldProvider(), graphBuilderConfig, context.getOptimisticOptimizations(),
    55         new Instance(context, graphBuilderConfig, context.getOptimisticOptimizations(), null).run(graph);
    59                         null).run(graph);
       
    60     }
    56     }
    61 
    57 
    62     public GraphBuilderConfiguration getGraphBuilderConfig() {
    58     public GraphBuilderConfiguration getGraphBuilderConfig() {
    63         return graphBuilderConfig;
    59         return graphBuilderConfig;
    64     }
    60     }
    65 
    61 
    66     // Fully qualified name is a workaround for JDK-8056066
    62     // Fully qualified name is a workaround for JDK-8056066
    67     public static class Instance extends org.graalvm.compiler.phases.Phase {
    63     public static class Instance extends org.graalvm.compiler.phases.Phase {
    68 
    64 
    69         protected final MetaAccessProvider metaAccess;
    65         protected final CoreProviders providers;
    70         protected final StampProvider stampProvider;
       
    71         protected final ConstantReflectionProvider constantReflection;
       
    72         protected final ConstantFieldProvider constantFieldProvider;
       
    73         protected final GraphBuilderConfiguration graphBuilderConfig;
    66         protected final GraphBuilderConfiguration graphBuilderConfig;
    74         protected final OptimisticOptimizations optimisticOpts;
    67         protected final OptimisticOptimizations optimisticOpts;
    75         private final IntrinsicContext initialIntrinsicContext;
    68         private final IntrinsicContext initialIntrinsicContext;
    76 
    69 
    77         public Instance(MetaAccessProvider metaAccess, StampProvider stampProvider, ConstantReflectionProvider constantReflection, ConstantFieldProvider constantFieldProvider,
    70         public Instance(CoreProviders providers, GraphBuilderConfiguration graphBuilderConfig, OptimisticOptimizations optimisticOpts, IntrinsicContext initialIntrinsicContext) {
    78                         GraphBuilderConfiguration graphBuilderConfig, OptimisticOptimizations optimisticOpts, IntrinsicContext initialIntrinsicContext) {
       
    79             this.graphBuilderConfig = graphBuilderConfig;
    71             this.graphBuilderConfig = graphBuilderConfig;
    80             this.optimisticOpts = optimisticOpts;
    72             this.optimisticOpts = optimisticOpts;
    81             this.metaAccess = metaAccess;
    73             this.providers = providers;
    82             this.stampProvider = stampProvider;
       
    83             this.constantReflection = constantReflection;
       
    84             this.constantFieldProvider = constantFieldProvider;
       
    85             this.initialIntrinsicContext = initialIntrinsicContext;
    74             this.initialIntrinsicContext = initialIntrinsicContext;
    86         }
    75         }
    87 
    76 
    88         @Override
    77         @Override
    89         public boolean checkContract() {
    78         public boolean checkContract() {