src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop.phases/src/org/graalvm/compiler/loop/phases/LoopPartialUnrollPhase.java
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 52910 583fd71c47d6
child 58679 9c3209ff7550
equal deleted inserted replaced
58677:13588c901957 58678:9cf78a70fa4f
     1 /*
     1 /*
     2  * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    31 import org.graalvm.compiler.loop.LoopPolicies;
    31 import org.graalvm.compiler.loop.LoopPolicies;
    32 import org.graalvm.compiler.loop.LoopsData;
    32 import org.graalvm.compiler.loop.LoopsData;
    33 import org.graalvm.compiler.nodes.LoopBeginNode;
    33 import org.graalvm.compiler.nodes.LoopBeginNode;
    34 import org.graalvm.compiler.nodes.StructuredGraph;
    34 import org.graalvm.compiler.nodes.StructuredGraph;
    35 import org.graalvm.compiler.nodes.extended.OpaqueNode;
    35 import org.graalvm.compiler.nodes.extended.OpaqueNode;
       
    36 import org.graalvm.compiler.nodes.spi.CoreProviders;
    36 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
    37 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
    37 import org.graalvm.compiler.phases.common.util.EconomicSetNodeEventListener;
    38 import org.graalvm.compiler.phases.common.util.EconomicSetNodeEventListener;
    38 import org.graalvm.compiler.phases.tiers.PhaseContext;
       
    39 
    39 
    40 public class LoopPartialUnrollPhase extends LoopPhase<LoopPolicies> {
    40 public class LoopPartialUnrollPhase extends LoopPhase<LoopPolicies> {
    41 
    41 
    42     private final CanonicalizerPhase canonicalizer;
    42     private final CanonicalizerPhase canonicalizer;
    43 
    43 
    46         this.canonicalizer = canonicalizer;
    46         this.canonicalizer = canonicalizer;
    47     }
    47     }
    48 
    48 
    49     @Override
    49     @Override
    50     @SuppressWarnings("try")
    50     @SuppressWarnings("try")
    51     protected void run(StructuredGraph graph, PhaseContext context) {
    51     protected void run(StructuredGraph graph, CoreProviders context) {
    52         if (graph.hasLoops()) {
    52         if (graph.hasLoops()) {
    53             EconomicSetNodeEventListener listener = new EconomicSetNodeEventListener();
    53             EconomicSetNodeEventListener listener = new EconomicSetNodeEventListener();
    54             boolean changed = true;
    54             boolean changed = true;
    55             EconomicMap<LoopBeginNode, OpaqueNode> opaqueUnrolledStrides = null;
    55             EconomicMap<LoopBeginNode, OpaqueNode> opaqueUnrolledStrides = null;
    56             while (changed) {
    56             while (changed) {