public class SSAPiInstruction extends SSAUnaryOpInstruction
IR
with or without Pi instructions, depending on SSAOptions
selected.
A Pi instruction is linked to its "cause" instruction, which is usually a conditional
branch.
for example, the following pseudo-code
SSAInstruction.IVisitor, SSAInstruction.Visitor
result, val
iindex, NO_INDEX
Constructor and Description |
---|
SSAPiInstruction(int iindex,
int result,
int val,
int piBlock,
int successorBlock,
SSAInstruction cause) |
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.
|
SSAInstruction |
getCause() |
int |
getPiBlock() |
int |
getSuccessor() |
int |
getVal() |
String |
toString(SymbolTable symbolTable) |
void |
visit(SSAInstruction.IVisitor v)
Apply an IVisitor to this instruction.
|
getOpcode
getDef, getDef, getNumberOfDefs, getNumberOfUses, getUse, hasDef, hashCode, isFallThrough
equals, getExceptionTypes, getValueString, isPEI, toString
public SSAPiInstruction(int iindex, int result, int val, int piBlock, int successorBlock, SSAInstruction cause)
successorBlock
- the successor block; this PI assignment happens on the transition between this basic block and
the successor block.public SSAInstruction copyForSSA(SSAInstructionFactory insts, int[] defs, int[] uses)
SSAInstruction
copyForSSA
in class SSAUnaryOpInstruction
public String toString(SymbolTable symbolTable)
toString
in class SSAUnaryOpInstruction
public void visit(SSAInstruction.IVisitor v)
SSAInstruction
visit
in class SSAUnaryOpInstruction
SSAInstruction.visit(IVisitor)
public int getSuccessor()
public int getPiBlock()
public SSAInstruction getCause()
public int getVal()