src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/aot/EliminateRedundantInitializationPhase.java
changeset 55509 d58442b8abc1
parent 52910 583fd71c47d6
child 58299 6df94ce3ab2f
equal deleted inserted replaced
55508:a6e2d06391d6 55509:d58442b8abc1
    27 import static org.graalvm.util.CollectionsUtil.anyMatch;
    27 import static org.graalvm.util.CollectionsUtil.anyMatch;
    28 
    28 
    29 import java.util.ArrayList;
    29 import java.util.ArrayList;
    30 import java.util.Iterator;
    30 import java.util.Iterator;
    31 import java.util.List;
    31 import java.util.List;
    32 
       
    33 import jdk.vm.ci.hotspot.HotSpotMetaspaceConstant;
       
    34 import jdk.vm.ci.meta.Constant;
       
    35 import jdk.vm.ci.meta.ResolvedJavaType;
       
    36 
    32 
    37 import jdk.internal.vm.compiler.collections.EconomicSet;
    33 import jdk.internal.vm.compiler.collections.EconomicSet;
    38 import org.graalvm.compiler.graph.Node;
    34 import org.graalvm.compiler.graph.Node;
    39 import org.graalvm.compiler.hotspot.nodes.aot.InitializeKlassNode;
    35 import org.graalvm.compiler.hotspot.nodes.aot.InitializeKlassNode;
    40 import org.graalvm.compiler.hotspot.nodes.aot.ResolveConstantNode;
    36 import org.graalvm.compiler.hotspot.nodes.aot.ResolveConstantNode;
    41 import org.graalvm.compiler.nodes.AbstractMergeNode;
    37 import org.graalvm.compiler.nodes.AbstractMergeNode;
    42 import org.graalvm.compiler.nodes.FixedNode;
    38 import org.graalvm.compiler.nodes.FixedNode;
    43 import org.graalvm.compiler.nodes.FixedWithNextNode;
    39 import org.graalvm.compiler.nodes.FixedWithNextNode;
    44 import org.graalvm.compiler.nodes.Invoke;
    40 import org.graalvm.compiler.nodes.Invoke;
    45 import org.graalvm.compiler.nodes.StructuredGraph;
    41 import org.graalvm.compiler.nodes.StructuredGraph;
       
    42 import org.graalvm.compiler.nodes.spi.CoreProviders;
    46 import org.graalvm.compiler.phases.BasePhase;
    43 import org.graalvm.compiler.phases.BasePhase;
    47 import org.graalvm.compiler.phases.graph.MergeableState;
    44 import org.graalvm.compiler.phases.graph.MergeableState;
    48 import org.graalvm.compiler.phases.graph.PostOrderNodeIterator;
    45 import org.graalvm.compiler.phases.graph.PostOrderNodeIterator;
    49 import org.graalvm.compiler.phases.tiers.PhaseContext;
    46 
    50 
    47 import jdk.vm.ci.hotspot.HotSpotMetaspaceConstant;
    51 public class EliminateRedundantInitializationPhase extends BasePhase<PhaseContext> {
    48 import jdk.vm.ci.meta.Constant;
       
    49 import jdk.vm.ci.meta.ResolvedJavaType;
       
    50 
       
    51 public class EliminateRedundantInitializationPhase extends BasePhase<CoreProviders> {
    52     /**
    52     /**
    53      * Find each {@link Invoke} that has a corresponding {@link InitializeKlassNode}. These
    53      * Find each {@link Invoke} that has a corresponding {@link InitializeKlassNode}. These
    54      * {@link InitializeKlassNode} are redundant and are removed.
    54      * {@link InitializeKlassNode} are redundant and are removed.
    55      */
    55      */
    56     private static void removeInitsAtStaticCalls(StructuredGraph graph) {
    56     private static void removeInitsAtStaticCalls(StructuredGraph graph) {
   250         }
   250         }
   251 
   251 
   252     }
   252     }
   253 
   253 
   254     @Override
   254     @Override
   255     protected void run(StructuredGraph graph, PhaseContext context) {
   255     protected void run(StructuredGraph graph, CoreProviders context) {
   256         removeInitsAtStaticCalls(graph);
   256         removeInitsAtStaticCalls(graph);
   257         removeRedundantInits(graph);
   257         removeRedundantInits(graph);
   258     }
   258     }
   259 }
   259 }