public final class LargeLocalLiveness extends LocalLiveness
| Modifier and Type | Field and Description |
|---|---|
private BitSet[] |
localsChangedInLoop |
private BitSet[] |
localsLiveGen |
private BitSet[] |
localsLiveIn |
private BitSet[] |
localsLiveKill |
private BitSet[] |
localsLiveOut |
blocks| Constructor and Description |
|---|
LargeLocalLiveness(BciBlockMapping.BciBlock[] blocks,
int maxLocals,
int loopCount) |
| Modifier and Type | Method and Description |
|---|---|
protected String |
debugLiveGen(int blockID)
Returns a string representation of the liveGen values of the given block.
|
protected String |
debugLiveIn(int blockID)
Returns a string representation of the liveIn values of the given block.
|
protected String |
debugLiveKill(int blockID)
Returns a string representation of the liveKill values of the given block.
|
protected String |
debugLiveOut(int blockID)
Returns a string representation of the liveOut values of the given block.
|
protected int |
liveOutCardinality(int blockID)
Returns the number of live locals at the end of the given block.
|
protected void |
loadOne(int blockID,
int local)
Adds the local to liveGen if it wasn't already killed in this block.
|
boolean |
localIsChangedInLoop(int loopId,
int local)
Returns whether the local is set in the given loop.
|
boolean |
localIsLiveIn(BciBlockMapping.BciBlock block,
int local)
Returns whether the local is live at the beginning of the given block.
|
boolean |
localIsLiveOut(BciBlockMapping.BciBlock block,
int local)
Returns whether the local is live at the end of the given block.
|
protected void |
propagateLiveness(int blockID,
int successorID)
Adds all locals the are in the liveIn of the successor to the liveOut of the block.
|
protected void |
storeOne(int blockID,
int local)
Add this local to liveKill if it wasn't already generated in this block.
|
protected void |
updateLiveness(int blockID)
Calculates a new liveIn for the given block from liveOut, liveKill and liveGen.
|
compute, computeLivenessprivate BitSet[] localsLiveIn
private BitSet[] localsLiveOut
private BitSet[] localsLiveGen
private BitSet[] localsLiveKill
private BitSet[] localsChangedInLoop
public LargeLocalLiveness(BciBlockMapping.BciBlock[] blocks, int maxLocals, int loopCount)
protected String debugLiveIn(int blockID)
LocalLivenessdebugLiveIn in class LocalLivenessprotected String debugLiveOut(int blockID)
LocalLivenessdebugLiveOut in class LocalLivenessprotected String debugLiveGen(int blockID)
LocalLivenessdebugLiveGen in class LocalLivenessprotected String debugLiveKill(int blockID)
LocalLivenessdebugLiveKill in class LocalLivenessprotected int liveOutCardinality(int blockID)
LocalLivenessliveOutCardinality in class LocalLivenessprotected void propagateLiveness(int blockID, int successorID)
LocalLivenesspropagateLiveness in class LocalLivenessprotected void updateLiveness(int blockID)
LocalLivenessupdateLiveness in class LocalLivenessprotected void loadOne(int blockID, int local)
LocalLivenessloadOne in class LocalLivenessprotected void storeOne(int blockID, int local)
LocalLivenessstoreOne in class LocalLivenesspublic boolean localIsLiveIn(BciBlockMapping.BciBlock block, int local)
LocalLivenesslocalIsLiveIn in class LocalLivenesspublic boolean localIsLiveOut(BciBlockMapping.BciBlock block, int local)
LocalLivenesslocalIsLiveOut in class LocalLivenesspublic boolean localIsChangedInLoop(int loopId, int local)
LocalLivenesslocalIsChangedInLoop in class LocalLiveness