< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.loop/src/org/graalvm/compiler/loop/LoopFragment.java

Print this page

        

*** 20,34 **** * or visit www.oracle.com if you need additional information or have any * questions. */ package org.graalvm.compiler.loop; ! import java.util.ArrayDeque; ! import java.util.Collections; ! import java.util.Deque; ! import java.util.Iterator; ! import org.graalvm.compiler.debug.GraalError; import org.graalvm.compiler.graph.Graph; import org.graalvm.compiler.graph.Graph.DuplicationReplacement; import org.graalvm.compiler.graph.Node; import org.graalvm.compiler.graph.NodeBitMap; --- 20,30 ---- * or visit www.oracle.com if you need additional information or have any * questions. */ package org.graalvm.compiler.loop; ! import jdk.vm.ci.meta.TriState; import org.graalvm.compiler.debug.GraalError; import org.graalvm.compiler.graph.Graph; import org.graalvm.compiler.graph.Graph.DuplicationReplacement; import org.graalvm.compiler.graph.Node; import org.graalvm.compiler.graph.NodeBitMap;
*** 55,65 **** import org.graalvm.compiler.nodes.spi.NodeWithState; import org.graalvm.compiler.nodes.virtual.CommitAllocationNode; import org.graalvm.compiler.nodes.virtual.VirtualObjectNode; import org.graalvm.util.EconomicMap; ! import jdk.vm.ci.meta.TriState; public abstract class LoopFragment { private final LoopEx loop; private final LoopFragment original; --- 51,64 ---- import org.graalvm.compiler.nodes.spi.NodeWithState; import org.graalvm.compiler.nodes.virtual.CommitAllocationNode; import org.graalvm.compiler.nodes.virtual.VirtualObjectNode; import org.graalvm.util.EconomicMap; ! import java.util.ArrayDeque; ! import java.util.Collections; ! import java.util.Deque; ! import java.util.Iterator; public abstract class LoopFragment { private final LoopEx loop; private final LoopFragment original;
*** 76,86 **** this.loop = loop; this.original = original; this.nodesReady = false; } ! public LoopEx loop() { return loop; } public abstract LoopFragment duplicate(); --- 75,88 ---- this.loop = loop; this.original = original; this.nodesReady = false; } ! /** ! * Return the original LoopEx for this fragment. For duplicated fragments this returns null. ! */ ! protected LoopEx loop() { return loop; } public abstract LoopFragment duplicate();
*** 170,179 **** --- 172,183 ---- } beforeDuplication(); NodeIterable<Node> nodesIterable = original().nodes(); duplicationMap = graph().addDuplicates(nodesIterable, graph(), nodesIterable.count(), dr); finishDuplication(); + nodes = new NodeBitMap(graph()); + nodes.markAll(duplicationMap.getValues()); nodesReady = true; } else { // TODO (gd) apply fix ? } }
< prev index next >