Class AllIntegerDueToBranchePiPolicy
java.lang.Object
com.ibm.wala.ssa.AllIntegerDueToBranchePiPolicy
- All Implemented Interfaces:
SSAPiNodePolicy
A policy, that adds pi nodes for all variables, that are used in a branch instruction.
- Author:
- Stephan Gocht
<stephan@gobro.de>
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiongetPi
(SSAAbstractInvokeInstruction call, SymbolTable symbolTable) Do we need to introduce a new name for some value immediately after a call?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?getPis
(SSAConditionalBranchInstruction cond, SSAInstruction def1, SSAInstruction def2, SymbolTable symbolTable)
-
Constructor Details
-
AllIntegerDueToBranchePiPolicy
public AllIntegerDueToBranchePiPolicy()
-
-
Method Details
-
getPi
public Pair<Integer,SSAInstruction> getPi(SSAAbstractInvokeInstruction call, SymbolTable symbolTable) Description copied from interface:SSAPiNodePolicy
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
- Specified by:
getPi
in interfaceSSAPiNodePolicy
- Parameters:
call
- the call instruction in questionsymbolTable
- current state of the symbol table for the IR under construction- Returns:
- description of the necessary pi instruction, or null if no pi instruction is needed.
-
getPi
public Pair<Integer,SSAInstruction> getPi(SSAConditionalBranchInstruction cond, SSAInstruction def1, SSAInstruction def2, SymbolTable symbolTable) Description copied from interface:SSAPiNodePolicy
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
- Specified by:
getPi
in interfaceSSAPiNodePolicy
- Parameters:
cond
- the conditional branch instruction in questiondef1
- theSSAInstruction
that defs cond.getUse(0), or null if nonedef2
- theSSAInstruction
that defs cond.getUse(1), or null if nonesymbolTable
- current state of the symbol table for the IR under construction- Returns:
- description of the necessary pi instruction, or null if no pi instruction is needed.
-
getPis
public List<Pair<Integer,SSAInstruction>> getPis(SSAConditionalBranchInstruction cond, SSAInstruction def1, SSAInstruction def2, SymbolTable symbolTable) - Specified by:
getPis
in interfaceSSAPiNodePolicy
-