| Package | Description |
|---|---|
| com.ibm.wala.demandpa.flowgraph | |
| com.ibm.wala.ipa.callgraph.propagation |
This package provides the base layer for propagation-based call graph
construction and pointer analysis.
|
| com.ibm.wala.ssa |
This package provides the WALA SSA IR.
|
| Modifier and Type | Field and Description |
|---|---|
protected SymbolTable |
SimpleDemandPointerFlowGraph.StatementVisitor.symbolTable
Governing symbol table
|
protected SymbolTable |
DemandPointerFlowGraph.StatementVisitor.symbolTable
Governing symbol table
|
| Modifier and Type | Field and Description |
|---|---|
protected SymbolTable |
SSAPropagationCallGraphBuilder.ConstraintVisitor.symbolTable
Governing symbol table
|
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
SSAPropagationCallGraphBuilder.contentsAreInvariant(SymbolTable symbolTable,
DefUse du,
int valueNumber)
A value is "invariant" if we can figure out the instances it can ever point to locally, without resorting to propagation.
|
protected boolean |
SSAPropagationCallGraphBuilder.ConstraintVisitor.contentsAreInvariant(SymbolTable symbolTable,
DefUse du,
int valueNumber) |
protected boolean |
SSAPropagationCallGraphBuilder.contentsAreInvariant(SymbolTable symbolTable,
DefUse du,
int[] valueNumbers) |
protected boolean |
SSAPropagationCallGraphBuilder.ConstraintVisitor.contentsAreInvariant(SymbolTable symbolTable,
DefUse du,
int[] valueNumber) |
protected InstanceKey[] |
SSAPropagationCallGraphBuilder.ConstraintVisitor.getInvariantContents(SymbolTable symbolTable,
DefUse du,
CGNode node,
int valueNumber) |
InstanceKey[] |
SSAPropagationCallGraphBuilder.getInvariantContents(SymbolTable symbolTable,
DefUse du,
CGNode node,
int valueNumber,
HeapModel hm)
precondition:contentsAreInvariant(valueNumber)
|
protected InstanceKey[] |
SSAPropagationCallGraphBuilder.getInvariantContents(SymbolTable symbolTable,
DefUse du,
CGNode node,
int valueNumber,
HeapModel hm,
boolean ensureIndexes) |
protected boolean |
SSAPropagationCallGraphBuilder.isConstantRef(SymbolTable symbolTable,
int valueNumber) |
| Modifier and Type | Method and Description |
|---|---|
SymbolTable |
SymbolTable.copy() |
SymbolTable |
IR.getSymbolTable() |
| Modifier and Type | Method and Description |
|---|---|
int |
SSAOptions.DefaultValues.getDefaultValue(SymbolTable symtab,
int valueNumber) |
com.ibm.wala.util.collections.Pair<Integer,SSAInstruction> |
SSAPiNodePolicy.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
|
com.ibm.wala.util.collections.Pair<Integer,SSAInstruction> |
NullTestPiPolicy.getPi(SSAAbstractInvokeInstruction call,
SymbolTable symbolTable) |
com.ibm.wala.util.collections.Pair<Integer,SSAInstruction> |
InstanceOfPiPolicy.getPi(SSAAbstractInvokeInstruction call,
SymbolTable symbolTable) |
com.ibm.wala.util.collections.Pair<Integer,SSAInstruction> |
CompoundPiPolicy.getPi(SSAAbstractInvokeInstruction call,
SymbolTable symbolTable) |
com.ibm.wala.util.collections.Pair<Integer,SSAInstruction> |
SSAPiNodePolicy.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
|
com.ibm.wala.util.collections.Pair<Integer,SSAInstruction> |
NullTestPiPolicy.getPi(SSAConditionalBranchInstruction cond,
SSAInstruction def1,
SSAInstruction def2,
SymbolTable symbolTable) |
com.ibm.wala.util.collections.Pair<Integer,SSAInstruction> |
InstanceOfPiPolicy.getPi(SSAConditionalBranchInstruction cond,
SSAInstruction def1,
SSAInstruction def2,
SymbolTable symbolTable) |
com.ibm.wala.util.collections.Pair<Integer,SSAInstruction> |
CompoundPiPolicy.getPi(SSAConditionalBranchInstruction cond,
SSAInstruction def1,
SSAInstruction def2,
SymbolTable symbolTable) |
protected String |
SSAPhiInstruction.getValueString(SymbolTable symbolTable,
int valueNumber) |
protected String |
SSAInstruction.getValueString(SymbolTable symbolTable,
int valueNumber) |
static SSABuilder |
SSABuilder.make(IBytecodeMethod method,
SSACFG cfg,
ShrikeCFG scfg,
SSAInstruction[] instructions,
SymbolTable symbolTable,
boolean buildLocalMap,
SSAPiNodePolicy piNodePolicy) |
String |
SSAUnaryOpInstruction.toString(SymbolTable symbolTable) |
String |
SSASwitchInstruction.toString(SymbolTable symbolTable) |
String |
SSAStoreIndirectInstruction.toString(SymbolTable symbolTable) |
String |
SSAReturnInstruction.toString(SymbolTable table) |
String |
SSAPutInstruction.toString(SymbolTable symbolTable) |
String |
SSAPiInstruction.toString(SymbolTable symbolTable) |
String |
SSAPhiInstruction.toString(SymbolTable symbolTable) |
String |
SSANewInstruction.toString(SymbolTable symbolTable) |
String |
SSAMonitorInstruction.toString(SymbolTable symbolTable) |
String |
SSALoadMetadataInstruction.toString(SymbolTable symbolTable) |
String |
SSALoadIndirectInstruction.toString(SymbolTable symbolTable) |
abstract String |
SSAInstruction.toString(SymbolTable symbolTable) |
String |
SSAInstanceofInstruction.toString(SymbolTable symbolTable) |
String |
SSAGotoInstruction.toString(SymbolTable symbolTable) |
String |
SSAGetInstruction.toString(SymbolTable symbolTable) |
String |
SSAGetCaughtExceptionInstruction.toString(SymbolTable symbolTable) |
String |
SSAConversionInstruction.toString(SymbolTable symbolTable) |
String |
SSAConditionalBranchInstruction.toString(SymbolTable symbolTable) |
String |
SSAComparisonInstruction.toString(SymbolTable symbolTable) |
String |
SSACheckCastInstruction.toString(SymbolTable symbolTable) |
String |
SSABinaryOpInstruction.toString(SymbolTable symbolTable) |
String |
SSAArrayStoreInstruction.toString(SymbolTable symbolTable) |
String |
SSAArrayLoadInstruction.toString(SymbolTable symbolTable) |
String |
SSAArrayLengthInstruction.toString(SymbolTable symbolTable) |
String |
SSAAddressOfInstruction.toString(SymbolTable symbolTable) |
String |
SSAAbstractThrowInstruction.toString(SymbolTable symbolTable) |
String |
SSAAbstractInvokeInstruction.toString(SymbolTable symbolTable) |
String |
ReflectiveMemberAccess.toString(SymbolTable symbolTable) |
| Constructor and Description |
|---|
IR(IMethod method,
SSAInstruction[] instructions,
SymbolTable symbolTable,
SSACFG cfg,
SSAOptions options)
Simple constructor when someone else has already computed the symbol table and cfg.
|
Copyright © 2015. All rights reserved.