public class SSAConstructionInfo
extends java.lang.Object
Additionally, SSAConstruction has methods to insert various flavors of PhiStmts whose targets are the variable associated with the SSAConstruction into Blocks.
SSA,
PhiStmt,
PhiCatchStmt,
PhiJoinStmt,
PhiReturnStmt| Constructor and Description |
|---|
SSAConstructionInfo(FlowGraph cfg,
VarExpr expr)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addCatchPhi(Block block)
Inserts a PhiCatchStmt (whose target is the variable
represented by this SSAConstructionInfo) into a given
Block.
|
void |
addDefBlock(Block block)
Makes note of a Block in which the variable is defined by a
PhiStmt.
|
void |
addPhi(Block block)
Adds a PhiJoinStmt for the variable represented by this
SSAConstructionInfo to a given Block.
|
void |
addReal(VarExpr real)
Notes a real occurrence (that is, a use that is not an operand to a phi
statement) of the variable represented by this
SSAConstructionInfo.
|
void |
addRetPhis(Subroutine sub)
Adds a PhiReturnStmt to all of the Blocks that are
executed upon returning from a given Subroutine.
|
java.util.Collection |
defBlocks()
Returns the Blocks containing a definition of the variable represented by
this SSAConstruction info.
|
PhiStmt |
phiAtBlock(Block block)
Returns the phi statement for the variable represented by this
SSAConstructionInfo at a given block in the CFG.
|
VarExpr |
prototype()
Returns the program variable associated with this
SSAConstructionInfo.
|
java.util.Collection |
reals()
Returns all of the real occurrences of this variable.
|
java.util.Collection |
realsAtBlock(Block block)
Returns all of the real occurrences of this variable in a given block.
|
void |
removePhiAtBlock(Block block)
Removes the phi statement for this variable at a given block.
|
public VarExpr prototype()
public void addDefBlock(Block block)
public PhiStmt phiAtBlock(Block block)
public void removePhiAtBlock(Block block)
public void addPhi(Block block)
public void addRetPhis(Subroutine sub)
PhiReturnStmt,
Subroutine.pathspublic void addCatchPhi(Block block)
PhiCatchStmtpublic void addReal(VarExpr real)
PhiStmtpublic java.util.Collection reals()
public java.util.Collection realsAtBlock(Block block)
public java.util.Collection defBlocks()