public class SPatchingChain extends PatchingChain<Unit>
PatchingChain,
Serialized Form| Modifier and Type | Class and Description |
|---|---|
protected class |
SPatchingChain.SPatchingIterator |
PatchingChain.PatchingIterator| Modifier and Type | Field and Description |
|---|---|
protected java.util.Map<SUnitBox,java.lang.Boolean> |
boxToNeedsPatching
Flag that indicates whether control flow falls through from the
box to the Phi node.
|
protected java.util.Map<UnitBox,Unit> |
boxToPhiNode
Map from UnitBox to the Phi node owning it.
|
protected java.util.Set<Unit> |
phiNodeSet
Set of the values of boxToPhiNode.
|
innerChain| Constructor and Description |
|---|
SPatchingChain(Body aBody,
Chain<Unit> aChain) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(Unit o)
Adds the given object to this Chain.
|
void |
addFirst(Unit u)
Adds the given object at the beginning of the Chain.
|
void |
addLast(Unit u)
Adds the given object at the end of the Chain.
|
protected void |
computeNeedsPatching()
NOTE: This will *miss* all the Phi nodes outside a chain.
|
protected SUnitBox |
getSBox(UnitBox box) |
void |
insertAfter(java.util.List<Unit> toInsert,
Unit point)
Inserts
toInsert in the Chain after point. |
void |
insertAfter(Unit toInsert,
Unit point)
Inserts
toInsert in the Chain after point. |
void |
insertBefore(java.util.List<Unit> toInsert,
Unit point)
Inserts
toInsert in the Chain before point. |
void |
insertBefore(Unit toInsert,
Unit point)
Inserts
toInsert in the Chain before point. |
java.util.Iterator<Unit> |
iterator()
Returns an iterator over this Chain.
|
java.util.Iterator<Unit> |
iterator(Unit u)
Returns an iterator over this Chain, starting at the given object.
|
java.util.Iterator<Unit> |
iterator(Unit head,
Unit tail)
Returns an iterator over this Chain, starting at head and reaching tail (inclusive).
|
protected void |
processPhiNode(Unit o) |
boolean |
remove(Unit obj) |
protected void |
reprocessPhiNodes() |
void |
swapWith(Unit out,
Unit in)
Replaces
out in the Chain by in. |
contains, follows, getElementsUnsorted, getFirst, getLast, getModificationCount, getNonPatchingChain, getPredOf, getSuccOf, insertAfter, insertBefore, insertBeforeNoRedirect, insertOnEdge, insertOnEdge, insertOnEdge, remove, removeFirst, removeLast, size, snapshotIteratoraddAll, clear, containsAll, isEmpty, removeAll, retainAll, toArray, toArray, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitprotected java.util.Map<UnitBox,Unit> boxToPhiNode
protected java.util.Set<Unit> phiNodeSet
protected java.util.Map<SUnitBox,java.lang.Boolean> boxToNeedsPatching
public boolean add(Unit o)
PatchingChainadd in interface java.util.Collection<Unit>add in class PatchingChain<Unit>public void swapWith(Unit out, Unit in)
PatchingChainout in the Chain by in.public void insertAfter(Unit toInsert, Unit point)
PatchingChaintoInsert in the Chain after point.insertAfter in interface Chain<Unit>insertAfter in class PatchingChain<Unit>public void insertAfter(java.util.List<Unit> toInsert, Unit point)
PatchingChaintoInsert in the Chain after point.insertAfter in interface Chain<Unit>insertAfter in class PatchingChain<Unit>public void insertBefore(java.util.List<Unit> toInsert, Unit point)
PatchingChaintoInsert in the Chain before point.insertBefore in interface Chain<Unit>insertBefore in class PatchingChain<Unit>public void insertBefore(Unit toInsert, Unit point)
PatchingChaintoInsert in the Chain before point.insertBefore in interface Chain<Unit>insertBefore in class PatchingChain<Unit>public void addFirst(Unit u)
PatchingChainpublic void addLast(Unit u)
PatchingChainpublic boolean remove(Unit obj)
protected void processPhiNode(Unit o)
protected void reprocessPhiNodes()
protected void computeNeedsPatching()
public java.util.Iterator<Unit> iterator()
PatchingChainpublic java.util.Iterator<Unit> iterator(Unit u)
PatchingChainpublic java.util.Iterator<Unit> iterator(Unit head, Unit tail)
PatchingChain