public class SSAPhiInstruction extends SSAInstruction
IRs, these instructions do not appear in the
normal instruction array returned by IR.getInstructions(); instead these
instructions live in ISSABasicBlock.
getUse(i) corresponds to the value number from the
ith predecessor of the corresponding ISSABasicBlock
b in ControlFlowGraph g, where predecessor
order is the order of nodes returned by the Iterator
g.getPredNodes(b).
Note: if getUse(i) returns AbstractIntStackMachine.TOP (that is, -1),
then that use represents an edge in the CFG which is infeasible in verifiable
bytecode.SSAInstruction.IVisitor, SSAInstruction.Visitoriindex, NO_INDEX| Constructor and Description |
|---|
SSAPhiInstruction(int iindex,
int result,
int[] params) |
| Modifier and Type | Method and Description |
|---|---|
SSAInstruction |
copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses)
This method is meant to be used during SSA conversion for an IR that is not in SSA form.
|
int |
getDef() |
int |
getDef(int i)
Return the ith def
|
int |
getNumberOfDefs() |
int |
getNumberOfUses() |
int |
getUse(int j) |
protected String |
getValueString(SymbolTable symbolTable,
int valueNumber) |
boolean |
hasDef()
Does this instruction define a normal value, as distinct from a set of exceptions possibly thrown by it (e.g.
|
int |
hashCode() |
boolean |
isFallThrough() |
void |
setValues(int[] i)
Clients should not call this.
|
String |
toString(SymbolTable symbolTable) |
void |
visit(SSAInstruction.IVisitor v)
Apply an IVisitor to this instruction.
|
equals, getExceptionTypes, isPEI, toStringpublic SSAPhiInstruction(int iindex,
int result,
int[] params)
throws IllegalArgumentException
IllegalArgumentExceptionpublic SSAInstruction copyForSSA(SSAInstructionFactory insts, int[] defs, int[] uses) throws IllegalArgumentException
SSAInstructioncopyForSSA in class SSAInstructionIllegalArgumentExceptionpublic String toString(SymbolTable symbolTable)
toString in class SSAInstructionpublic void visit(SSAInstruction.IVisitor v)
SSAInstructionvisit in class SSAInstructionIllegalArgumentException - if v is nullSSAInstruction.visit(IVisitor)public boolean hasDef()
SSAInstructionhasDef in class SSAInstructionSSAInstruction.getDef()public int getDef()
getDef in class SSAInstructionpublic int getDef(int i)
SSAInstructiongetDef in class SSAInstructioni - number of the def, starting at 0.public int getNumberOfUses()
getNumberOfUses in class SSAInstructionSSAInstruction.getNumberOfUses()public int getNumberOfDefs()
getNumberOfDefs in class SSAInstructionpublic int getUse(int j)
throws IllegalArgumentException
getUse in class SSAInstructionIllegalArgumentExceptionSSAInstruction.getUse(int)public void setValues(int[] i)
protected String getValueString(SymbolTable symbolTable, int valueNumber)
getValueString in class SSAInstructioncom.ibm.wala.ssa.SSAInstruction#getValueString(SymbolTable, ValueDecorator, int)public int hashCode()
hashCode in class SSAInstructionpublic boolean isFallThrough()
isFallThrough in class SSAInstructionCopyright © 2015. All rights reserved.