public class NullTestPiPolicy extends Object implements SSAPiNodePolicy
Modifier and Type | Method and Description |
---|---|
static NullTestPiPolicy |
createNullTestPiPolicy() |
Pair<Integer,SSAInstruction> |
getPi(SSAAbstractInvokeInstruction call,
SymbolTable symbolTable)
Do we need to introduce a new name for some value immediately after a call?
If so, returns a pair consisting of the value number needing renaming, and the instruction which should be recorded as the
cause of the pi instruction
|
Pair<Integer,SSAInstruction> |
getPi(SSAConditionalBranchInstruction cond,
SSAInstruction def1,
SSAInstruction def2,
SymbolTable symbolTable)
Do we need to introduce a new name for some value after deciding on an outcome for a conditional branch instruction?
If so, returns a pair consisting of the value number needing renaming, and the instruction which should be recorded as the
cause of the pi instruction
|
public static NullTestPiPolicy createNullTestPiPolicy()
public Pair<Integer,SSAInstruction> getPi(SSAConditionalBranchInstruction cond, SSAInstruction def1, SSAInstruction def2, SymbolTable symbolTable)
SSAPiNodePolicy
getPi
in interface SSAPiNodePolicy
cond
- the conditional branch instruction in questiondef1
- the SSAInstruction
that defs cond.getUse(0), or null if nonedef2
- the SSAInstruction
that defs cond.getUse(1), or null if nonesymbolTable
- current state of the symbol table for the IR under constructionpublic Pair<Integer,SSAInstruction> getPi(SSAAbstractInvokeInstruction call, SymbolTable symbolTable)
SSAPiNodePolicy
getPi
in interface SSAPiNodePolicy
call
- the call instruction in questionsymbolTable
- current state of the symbol table for the IR under construction