< 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 >