public abstract class LoopFragment extends Object
| Modifier and Type | Field and Description |
|---|---|
protected NodeBitMap |
nodes |
protected boolean |
nodesReady |
| Constructor and Description |
|---|
LoopFragment(LoopEx loop) |
LoopFragment(LoopEx loop,
LoopFragment original) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
beforeDuplication() |
protected static void |
computeNodes(NodeBitMap nodes,
Graph graph,
LoopEx loop,
Iterable<AbstractBeginNode> blocks,
Iterable<AbstractBeginNode> earlyExits) |
boolean |
contains(Node n) |
void |
disconnect() |
abstract LoopFragment |
duplicate() |
protected void |
finishDuplication() |
<New extends Node,Old extends New> |
getDuplicatedNode(Old n) |
protected abstract Graph.DuplicationReplacement |
getDuplicationReplacement() |
StructuredGraph |
graph() |
abstract void |
insertBefore(LoopEx l) |
boolean |
isDuplicate() |
LoopEx |
loop()
Return the original LoopEx for this fragment.
|
protected void |
mergeEarlyExits()
Merges the early exits (i.e.
|
abstract NodeBitMap |
nodes() |
LoopFragment |
original() |
protected void |
patchNodes(Graph.DuplicationReplacement dataFix) |
protected abstract ValueNode |
prim(ValueNode b)
Gets the corresponding value in this fragment.
|
protected <New extends Node,Old extends New> |
putDuplicatedNode(Old oldNode,
New newNode) |
org.graalvm.collections.EconomicMap<Node,Node> |
reverseDuplicationMap() |
static NodeIterable<AbstractBeginNode> |
toHirBlocks(Iterable<Block> blocks) |
protected NodeBitMap nodes
protected boolean nodesReady
public LoopFragment(LoopEx loop)
public LoopFragment(LoopEx loop, LoopFragment original)
public LoopEx loop()
public abstract LoopFragment duplicate()
public abstract void insertBefore(LoopEx l)
public void disconnect()
public boolean contains(Node n)
public <New extends Node,Old extends New> New getDuplicatedNode(Old n)
protected <New extends Node,Old extends New> void putDuplicatedNode(Old oldNode, New newNode)
protected abstract ValueNode prim(ValueNode b)
b - original valuepublic boolean isDuplicate()
public LoopFragment original()
public abstract NodeBitMap nodes()
public StructuredGraph graph()
protected abstract Graph.DuplicationReplacement getDuplicationReplacement()
protected abstract void beforeDuplication()
protected void finishDuplication()
protected void patchNodes(Graph.DuplicationReplacement dataFix)
protected static void computeNodes(NodeBitMap nodes, Graph graph, LoopEx loop, Iterable<AbstractBeginNode> blocks, Iterable<AbstractBeginNode> earlyExits)
public static NodeIterable<AbstractBeginNode> toHirBlocks(Iterable<Block> blocks)
protected void mergeEarlyExits()