| Package | Description |
|---|---|
| com.ibm.wala.analysis.reflection |
This package provides functions to deal with reflection.
|
| com.ibm.wala.analysis.reflection.java7 | |
| com.ibm.wala.analysis.typeInference |
This package provides intraprocedural type inference over the SSA form.
|
| com.ibm.wala.cfg |
This package provides control-flow graph utilities.
|
| com.ibm.wala.cfg.exc | |
| com.ibm.wala.cfg.exc.inter | |
| com.ibm.wala.cfg.exc.intra | |
| com.ibm.wala.classLoader |
This package provides functionality related to class loading and
management of loaded classes.
|
| com.ibm.wala.dataflow.IFDS |
This package provides an RHS solver for IFDS problems.
|
| com.ibm.wala.dataflow.ssa | |
| com.ibm.wala.demandpa.flowgraph | |
| com.ibm.wala.ipa.callgraph.impl |
This package provides some implementations of basic functions needed for
various call graph construction algorithms.
|
| com.ibm.wala.ipa.callgraph.propagation |
This package provides the base layer for propagation-based call graph
construction and pointer analysis.
|
| com.ibm.wala.ipa.callgraph.propagation.cfa |
This package provides RTA call graph
construction.
|
| com.ibm.wala.ipa.cfg |
This package supports interprocedural control-flow graphs, and control-flow
graphs specialized for context.
|
| com.ibm.wala.ipa.modref | |
| com.ibm.wala.ipa.slicer | |
| com.ibm.wala.ipa.summaries |
This package provides class hierarchy analysis.
|
| com.ibm.wala.ssa |
This package provides the WALA SSA IR.
|
| com.ibm.wala.ssa.analysis |
This package provides analyses over the WALA SSA IR.
|
| com.ibm.wala.util.ssa |
A set of classes facilitating the construction of synthetic methods.
|
| Modifier and Type | Field and Description |
|---|---|
protected ArrayList<SSAInstruction> |
AbstractReflectionInterpreter.SpecializedMethod.allInstructions
List of all instructions
|
protected ArrayList<SSAInstruction> |
AbstractReflectionInterpreter.SpecializedMethod.allocations
List of synthetic allocation statements we model for this specialized instance
|
protected ArrayList<SSAInstruction> |
AbstractReflectionInterpreter.SpecializedMethod.calls
List of synthetic invoke instructions we model for this specialized instance.
|
| Modifier and Type | Method and Description |
|---|---|
SSAInstruction[] |
FactoryBypassInterpreter.SpecializedFactoryMethod.getStatements() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
AbstractReflectionInterpreter.SpecializedMethod.addInstruction(TypeReference T,
SSAInstruction instr,
boolean isAllocation) |
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
MethodHandles.ContextInterpreterImpl.getCFG(CGNode n) |
| Modifier and Type | Method and Description |
|---|---|
Iterator<FieldReference> |
MethodHandles.ContextInterpreterImpl.iterateFields(CGNode node,
com.ibm.wala.util.Predicate<SSAInstruction> filter) |
| Modifier and Type | Method and Description |
|---|---|
com.ibm.wala.fixpoint.AbstractOperator<TypeVariable> |
TypeInference.TypeOperatorFactory.get(SSAInstruction instruction) |
| Modifier and Type | Method and Description |
|---|---|
SSAInstruction[] |
InducedCFG.getInstructions() |
static SSAInstruction |
Util.getLastInstruction(ControlFlowGraph cfg,
IBasicBlock b) |
| Modifier and Type | Method and Description |
|---|---|
Iterator<SSAInstruction> |
InducedCFG.BasicBlock.iterator() |
| Constructor and Description |
|---|
InducedCFG(SSAInstruction[] instructions,
IMethod method,
Context context)
TODO: we do not yet support induced CFGS with exception handlers.
|
| Modifier and Type | Method and Description |
|---|---|
InterprocAnalysisResult<SSAInstruction,IExplodedBasicBlock> |
InterprocNullPointerAnalysis.getResult()
Returns the result of the interprocedural analysis.
|
| Modifier and Type | Method and Description |
|---|---|
static Set<IExplodedBasicBlock> |
AnalysisUtil.extractInvokeBlocks(ControlFlowGraph<SSAInstruction,IExplodedBasicBlock> cfg)
Returns a Set of all blocks that invoke another method.
|
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
SSACFGNullPointerAnalysis.getCFG() |
ControlFlowGraph<SSAInstruction,IExplodedBasicBlock> |
ExplodedCFGNullPointerAnalysis.getCFG() |
| Modifier and Type | Field and Description |
|---|---|
static SSAInstruction[] |
SyntheticMethod.NO_STATEMENTS |
| Modifier and Type | Method and Description |
|---|---|
SSAInstruction[] |
SyntheticMethod.getStatements() |
SSAInstruction[] |
SyntheticMethod.getStatements(SSAOptions options)
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
static List<TypeReference> |
CodeScanner.getArraysWritten(SSAInstruction[] statements) |
static Set<TypeReference> |
CodeScanner.getCaughtExceptions(Language l,
SSAInstruction[] statements) |
static List<FieldReference> |
CodeScanner.getFieldsRead(SSAInstruction[] statements) |
static List<FieldReference> |
CodeScanner.getFieldsWritten(SSAInstruction[] statements) |
static boolean |
CodeScanner.hasObjectArrayLoad(SSAInstruction[] statements) |
static boolean |
CodeScanner.hasObjectArrayStore(SSAInstruction[] statements) |
static Iterator<TypeReference> |
CodeScanner.iterateCastTypes(SSAInstruction[] statements) |
InducedCFG |
SyntheticMethod.makeControlFlowGraph(SSAInstruction[] instructions)
Create an
InducedCFG from an instruction array. |
SSAPiInstruction |
JavaLanguage.JavaInstructionFactory.PiInstruction(int iindex,
int result,
int val,
int piBlock,
int successorBlock,
SSAInstruction cause) |
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<SSAInstruction,IExplodedBasicBlock> |
ICFGSupergraph.getCFG(BasicBlockInContext<IExplodedBasicBlock> node) |
| Modifier and Type | Method and Description |
|---|---|
com.ibm.wala.fixpoint.AbstractOperator<T> |
SSAInference.OperatorFactory.get(SSAInstruction instruction)
Get the dataflow operator induced by an instruction in SSA form.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
AbstractDemandFlowGraph.addBlockInstructionConstraints(CGNode node,
ControlFlowGraph<SSAInstruction,ISSABasicBlock> cfg,
ISSABasicBlock b,
AbstractDemandFlowGraph.FlowStatementVisitor v)
Add constraints for a particular basic block.
|
protected void |
SimpleDemandPointerFlowGraph.addBlockInstructionConstraints(CGNode node,
ControlFlowGraph<SSAInstruction,ISSABasicBlock> cfg,
ISSABasicBlock b,
SimpleDemandPointerFlowGraph.StatementVisitor v)
Add constraints for a particular basic block.
|
| Modifier and Type | Field and Description |
|---|---|
protected ArrayList<SSAInstruction> |
AbstractRootMethod.statements |
| Modifier and Type | Method and Description |
|---|---|
SSAInstruction[] |
AbstractRootMethod.getStatements(SSAOptions options) |
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
ExplicitCallGraph.ExplicitNode.getCFG() |
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
SSAContextInterpreter.getCFG(CGNode n) |
| Modifier and Type | Method and Description |
|---|---|
static InstanceKey[] |
ConcreteTypeKey.getInstanceKeysForPEI(SSAInstruction pei,
IR ir,
IClassHierarchy cha) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
SSAPropagationCallGraphBuilder.addBlockInstructionConstraints(CGNode node,
ControlFlowGraph<SSAInstruction,ISSABasicBlock> cfg,
SSACFG.BasicBlock b,
SSAPropagationCallGraphBuilder.ConstraintVisitor v,
com.ibm.wala.util.MonitorUtil.IProgressMonitor monitor)
Add constraints for a particular basic block.
|
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
FallbackContextInterpreter.getCFG(CGNode n) |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
DelegatingSSAContextInterpreter.getCFG(CGNode node) |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
DefaultSSAInterpreter.getCFG(CGNode N) |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
ContextInsensitiveSSAInterpreter.getCFG(CGNode N) |
| Modifier and Type | Method and Description |
|---|---|
SSAInstruction |
BasicBlockInContext.getLastInstruction() |
protected SSAInstruction |
AbstractInterproceduralCFG.getLastInstructionForBlock(T pb,
SSAInstruction[] instrs) |
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<SSAInstruction,T> |
AbstractInterproceduralCFG.getCFG(BasicBlockInContext B) |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
InterproceduralCFG.getCFG(CGNode n) |
ControlFlowGraph<SSAInstruction,IExplodedBasicBlock> |
ExplodedInterproceduralCFG.getCFG(CGNode n) |
abstract ControlFlowGraph<SSAInstruction,T> |
AbstractInterproceduralCFG.getCFG(CGNode n) |
Iterator<SSAInstruction> |
BasicBlockInContext.iterator() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
AbstractInterproceduralCFG.addEdgesToNonEntryBlock(CGNode n,
ControlFlowGraph<?,T> cfg,
SSAInstruction[] instrs,
T bb)
Add edges to the IPCFG for the incoming edges incident on a basic block bb.
|
protected SSAInstruction |
AbstractInterproceduralCFG.getLastInstructionForBlock(T pb,
SSAInstruction[] instrs) |
| Modifier and Type | Method and Description |
|---|---|
protected CallSiteReference |
AbstractInterproceduralCFG.getCallSiteForCallBlock(IBasicBlock<SSAInstruction> B,
ControlFlowGraph<SSAInstruction,T> cfg)
get the
CallSiteReference corresponding to the last instruction in B (assumed to be a call) |
protected CallSiteReference |
AbstractInterproceduralCFG.getCallSiteForCallBlock(IBasicBlock<SSAInstruction> B,
ControlFlowGraph<SSAInstruction,T> cfg)
get the
CallSiteReference corresponding to the last instruction in B (assumed to be a call) |
protected boolean |
AbstractInterproceduralCFG.hasCall(BasicBlockInContext<T> B,
ControlFlowGraph<SSAInstruction,T> cfg) |
| Modifier and Type | Method and Description |
|---|---|
Set<PointerKey> |
ModRef.getMod(CGNode n,
ExtendedHeapModel h,
PointerAnalysis<InstanceKey> pa,
SSAInstruction s,
HeapExclusions hexcl)
Compute the set of
PointerKeys that represent pointers that instruction s may write to. |
Set<PointerKey> |
ModRef.getMod(CGNode n,
ExtendedHeapModel h,
PointerAnalysis<InstanceKey> pa,
SSAInstruction s,
HeapExclusions hexcl,
boolean ignoreAllocHeapDefs)
Compute the set of
PointerKeys that represent pointers that instruction s may write to. |
Set<PointerKey> |
ModRef.getRef(CGNode n,
ExtendedHeapModel h,
PointerAnalysis<InstanceKey> pa,
SSAInstruction s,
HeapExclusions hexcl)
Compute the set of
PointerKeys that represent pointers that instruction s may read. |
| Modifier and Type | Method and Description |
|---|---|
SSAInstruction |
StatementWithInstructionIndex.getInstruction() |
| Modifier and Type | Method and Description |
|---|---|
static Map<SSAInstruction,Integer> |
PDG.computeInstructionIndices(IR ir) |
| Modifier and Type | Method and Description |
|---|---|
static Statement |
PDG.ssaInstruction2Statement(CGNode node,
SSAInstruction s,
Map<SSAInstruction,Integer> instructionIndices,
IR ir) |
| Modifier and Type | Method and Description |
|---|---|
static Statement |
PDG.ssaInstruction2Statement(CGNode node,
SSAInstruction s,
Map<SSAInstruction,Integer> instructionIndices,
IR ir) |
| Modifier and Type | Field and Description |
|---|---|
protected static SSAInstruction[] |
MethodSummary.NO_STATEMENTS |
| Modifier and Type | Method and Description |
|---|---|
SSAInstruction |
VolatileMethodSummary.getStatementAt(int programCounter) |
SSAInstruction[] |
VolatileMethodSummary.getStatements()
Get all statements added to the Summary.
|
SSAInstruction[] |
MethodSummary.getStatements() |
SSAInstruction[] |
SummarizedMethod.getStatements(SSAOptions options) |
| Modifier and Type | Method and Description |
|---|---|
void |
VolatileMethodSummary.addStatement(SSAInstruction statement)
Adds a statement to the MethodSummary.
|
void |
MethodSummary.addStatement(SSAInstruction statement) |
boolean |
VolatileMethodSummary.overwriteStatement(SSAInstruction statement)
Like {@link addStatement(SSAInstructionWithPC extends SSAInstruction>) but may replace an existing one.
|
| Constructor and Description |
|---|
SummarizedMethodWithNames.SyntheticIRWithNames(IMethod method,
Context context,
AbstractCFG cfg,
SSAInstruction[] instructions,
SSAOptions options,
Map<Integer,ConstantValue> constants,
Map<Integer,Atom> localNames) |
SyntheticIR(IMethod method,
Context context,
AbstractCFG cfg,
SSAInstruction[] instructions,
SSAOptions options,
Map<Integer,ConstantValue> constants)
Create an SSA form, induced over a list of instructions provided externally.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ReflectiveMemberAccess
TODO: document me.
|
class |
SSAAbstractBinaryInstruction |
class |
SSAAbstractInvokeInstruction
A Call instruction.
|
class |
SSAAbstractThrowInstruction
An instruction which unconditionally throws an exception
|
class |
SSAAbstractUnaryInstruction |
class |
SSAAddressOfInstruction
An
SSAAddressOfInstruction represents storing the address of some "source" level entity (@see SSAIndirectionData.Name) into an SSA
value number. |
class |
SSAArrayLengthInstruction
SSA instruction representing v_x := arraylength v_y
|
class |
SSAArrayLoadInstruction
SSA instruction representing an array load.
|
class |
SSAArrayReferenceInstruction
Abstract base class for instructions that load or store from array contents.
|
class |
SSAArrayStoreInstruction
SSA instruction representing an array store.
|
class |
SSABinaryOpInstruction |
class |
SSACheckCastInstruction
A checkcast (dynamic type test) instruction.
|
class |
SSAComparisonInstruction
SSA Instruction for comparisons between floats, longs and doubles
|
class |
SSAConditionalBranchInstruction
A conditional branch instruction, which tests two values according to some
IConditionalBranchInstruction.IOperator. |
class |
SSAConversionInstruction
An instruction which converts a value of one primitive type into another primitive type.
|
class |
SSAFieldAccessInstruction
Abstract base class for
SSAGetInstruction and SSAPutInstruction. |
class |
SSAGetCaughtExceptionInstruction
A "catch" instruction, inserted at the head of a catch block, which assigns a pending exception object to a local variable.
|
class |
SSAGetInstruction
SSA instruction that reads a field (i.e.
|
class |
SSAGotoInstruction
Unconditional branch instruction for SSA form.
|
class |
SSAInstanceofInstruction
A dynamic type test (instanceof) instruction.
|
class |
SSAInvokeDynamicInstruction |
class |
SSAInvokeInstruction |
class |
SSALoadIndirectInstruction
A load from a pointer.
|
class |
SSALoadMetadataInstruction
An instruction that represents a reflective or meta-programming operation, like loadClass in Java
|
class |
SSAMonitorInstruction
An instruction representing a monitorenter or monitorexit operation.
|
class |
SSANewInstruction
An allocation instruction ("new") for SSA form.
|
class |
SSAPhiInstruction
A phi instruction in SSA form.
|
class |
SSAPiInstruction
A Pi instruction is a dummy assignment inserted at the tail of a basic block, in order
to get a new variable name to associate with some flow-insensitive dataflow fact.
|
class |
SSAPutInstruction
A putfield or putstatic instruction
|
class |
SSAReturnInstruction
A return instruction.
|
class |
SSAStoreIndirectInstruction
A store from a pointer.
|
class |
SSASwitchInstruction
SSA instruction representing a switch statement.
|
class |
SSAThrowInstruction
An instruction which unconditionally throws an exception
|
class |
SSAUnaryOpInstruction
An SSA instruction for some unary operator.
|
| Modifier and Type | Field and Description |
|---|---|
protected SSAInstruction[] |
SSACFG.instructions
The "normal" instructions which constitute the SSA form.
|
| Modifier and Type | Field and Description |
|---|---|
protected ArrayList<SSAInstruction> |
DefUse.allInstructions
A Mapping from integer -> Instruction
|
| Modifier and Type | Method and Description |
|---|---|
SSAInstruction |
SSAUnaryOpInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAThrowInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSASwitchInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAStoreIndirectInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAReturnInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAPutInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAPiInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAPhiInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSANewInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAMonitorInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSALoadMetadataInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSALoadIndirectInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAInvokeInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAInvokeDynamicInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
abstract SSAInstruction |
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 |
SSAInstanceofInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAGotoInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAGetInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAGetCaughtExceptionInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAConditionalBranchInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAComparisonInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSACheckCastInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAArrayStoreInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAArrayLoadInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAArrayLengthInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAAddressOfInstruction.copyForSSA(SSAInstructionFactory insts,
int[] defs,
int[] uses) |
SSAInstruction |
SSAPiInstruction.getCause() |
SSAInstruction |
DefUse.getDef(int v) |
SSAInstruction[] |
SSACFG.getInstructions()
NB: Use iterators such as IR.iterateAllInstructions() instead of this method.
|
SSAInstruction[] |
IR.getInstructions()
Returns the normal instructions.
|
SSAInstruction |
SSACFG.BasicBlock.getLastInstruction() |
SSAInstruction |
ISSABasicBlock.getLastInstruction() |
SSAInstruction |
IR.getPEI(ProgramCounter pc) |
| Modifier and Type | Method and Description |
|---|---|
List<SSAInstruction> |
SSACFG.BasicBlock.getAllInstructions()
TODO: make this more efficient if needed
|
List<SSAInstruction> |
SSACFG.ExceptionHandlerBasicBlock.getAllInstructions() |
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) |
Iterator<SSAInstruction> |
DefUse.getUses(int v)
Return all uses of the variable with the given value number
|
Iterator<SSAInstruction> |
IR.iterateAllInstructions() |
Iterator<SSAInstruction> |
IR.iterateCatchInstructions() |
Iterator<SSAInstruction> |
SSACFG.BasicBlock.iterateNormalInstructions() |
Iterator<SSAInstruction> |
IR.iterateNormalInstructions() |
Iterator<? extends SSAInstruction> |
IR.iteratePhis()
Return an
Iterator of all SSAPhiInstructions for this IR. |
Iterator<? extends SSAInstruction> |
IR.iteratePis()
Return an
Iterator of all SSAPiInstructions for this IR. |
Iterator<SSAInstruction> |
SSACFG.BasicBlock.iterator() |
| Modifier and Type | Method and Description |
|---|---|
ISSABasicBlock |
IR.getBasicBlockForInstruction(SSAInstruction s)
This is space-inefficient.
|
protected int |
DefUse.getDef(SSAInstruction s,
int i)
What is the ith value number defined by instruction s?
|
protected int |
DefUse.getNumberOfDefs(SSAInstruction s)
How many value numbers does instruction s def?
|
protected int |
DefUse.getNumberOfUses(SSAInstruction s)
How many value numbers does instruction s use?
|
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 int |
DefUse.getUse(SSAInstruction s,
int i)
What is the ith value number used by instruction s?
|
static SSABuilder |
SSABuilder.make(IBytecodeMethod method,
SSACFG cfg,
ShrikeCFG scfg,
SSAInstruction[] instructions,
SymbolTable symbolTable,
boolean buildLocalMap,
SSAPiNodePolicy piNodePolicy) |
SSAPiInstruction |
SSAInstructionFactory.PiInstruction(int iindex,
int result,
int val,
int piBlock,
int successorBlock,
SSAInstruction cause) |
| 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.
|
SSACFG(IMethod method,
AbstractCFG cfg,
SSAInstruction[] instructions) |
SSAPiInstruction(int iindex,
int result,
int val,
int piBlock,
int successorBlock,
SSAInstruction cause) |
| Modifier and Type | Method and Description |
|---|---|
SSAInstruction |
IExplodedBasicBlock.getInstruction()
get the instruction for this block, or null if the block has no instruction
|
SSAInstruction[] |
ExplodedControlFlowGraph.getInstructions() |
| Modifier and Type | Method and Description |
|---|---|
void |
SSAValueManager.setAllocation(SSAValue value,
SSAInstruction setBy)
Register a variable _after_ allocation.
|
void |
SSAValueManager.setPhi(SSAValue value,
SSAInstruction setBy)
Register a Phi-Instruction _after_ added to the model.
|
Copyright © 2015. All rights reserved.