public class LoopFragmentInside extends LoopFragment
nodes, nodesReady| Constructor and Description |
|---|
LoopFragmentInside(LoopEx loop) |
LoopFragmentInside(LoopFragmentInside original) |
| Modifier and Type | Method and Description |
|---|---|
void |
appendInside(LoopEx loop) |
protected void |
beforeDuplication() |
LoopFragmentInside |
duplicate() |
NodeIterable<LoopExitNode> |
exits() |
protected static EndNode |
getBlockEnd(FixedNode node) |
protected Graph.DuplicationReplacement |
getDuplicationReplacement() |
org.graalvm.collections.EconomicMap<PhiNode,PhiNode> |
getOld2NewPhi() |
void |
insertBefore(LoopEx loop) |
void |
insertWithinAfter(LoopEx loop,
org.graalvm.collections.EconomicMap<LoopBeginNode,OpaqueNode> opaqueUnrolledStrides)
Duplicate the body within the loop after the current copy copy of the body, updating the
iteration limit to account for the duplication.
|
LoopEx |
loop()
Return the original LoopEx for this fragment.
|
protected void |
mergeEarlyLoopExits(StructuredGraph graph,
LoopBeginNode mainLoopBegin,
CountedLoopInfo mainCounted,
org.graalvm.collections.EconomicMap<Node,Node> new2OldPhis,
LoopEx loop)
For counted loops we have a special nomenclature regarding loop exits, the counted loop exit
is the regular loop exit after all iterations finished, all other loop exits exit the loop
earlier, thus we call them early exits.
|
NodeBitMap |
nodes() |
LoopFragmentInside |
original() |
static ValueNode |
partialUnrollOverflowCheck(OpaqueNode opaque,
ValueNode limit,
CountedLoopInfo counted) |
static ValueNode |
patchProxyAtPhi(PhiNode phi,
LoopExitNode lex,
ValueNode proxyInput) |
protected CompareNode |
placeNewSegmentAndCleanup(LoopEx loop,
org.graalvm.collections.EconomicMap<Node,Node> new2OldPhis,
org.graalvm.collections.EconomicMap<Node,Node> originalPhi2Backedges) |
protected ValueNode |
prim(ValueNode b)
Gets the corresponding value in this fragment.
|
protected ValueNode |
primAfter(ValueNode b) |
computeNodes, contains, disconnect, finishDuplication, getDuplicatedNode, graph, isDuplicate, mergeEarlyExits, patchNodes, putDuplicatedNode, reverseDuplicationMap, toHirBlockspublic LoopFragmentInside(LoopEx loop)
public LoopFragmentInside(LoopFragmentInside original)
public LoopFragmentInside duplicate()
duplicate in class LoopFragmentpublic LoopFragmentInside original()
original in class LoopFragmentpublic void appendInside(LoopEx loop)
public LoopEx loop()
LoopFragmentloop in class LoopFragmentpublic void insertBefore(LoopEx loop)
insertBefore in class LoopFragmentpublic void insertWithinAfter(LoopEx loop, org.graalvm.collections.EconomicMap<LoopBeginNode,OpaqueNode> opaqueUnrolledStrides)
public static ValueNode partialUnrollOverflowCheck(OpaqueNode opaque, ValueNode limit, CountedLoopInfo counted)
protected CompareNode placeNewSegmentAndCleanup(LoopEx loop, org.graalvm.collections.EconomicMap<Node,Node> new2OldPhis, org.graalvm.collections.EconomicMap<Node,Node> originalPhi2Backedges)
protected void mergeEarlyLoopExits(StructuredGraph graph, LoopBeginNode mainLoopBegin, CountedLoopInfo mainCounted, org.graalvm.collections.EconomicMap<Node,Node> new2OldPhis, LoopEx loop)
public static ValueNode patchProxyAtPhi(PhiNode phi, LoopExitNode lex, ValueNode proxyInput)
public NodeBitMap nodes()
nodes in class LoopFragmentpublic NodeIterable<LoopExitNode> exits()
protected Graph.DuplicationReplacement getDuplicationReplacement()
getDuplicationReplacement in class LoopFragmentprotected void beforeDuplication()
beforeDuplication in class LoopFragmentprotected ValueNode prim(ValueNode b)
prim in class LoopFragmentb - original value