| Package | Description |
|---|---|
| com.ibm.wala.analysis.reflection |
This package provides functions to deal with reflection.
|
| com.ibm.wala.analysis.reflection.java7 | |
| com.ibm.wala.cfg |
This package provides control-flow graph utilities.
|
| com.ibm.wala.cfg.cdg |
This package supports a control-dependence graph.
|
| 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.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.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.
|
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
ReflectiveInvocationInterpreter.getCFG(CGNode N) |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
JavaLangClassContextInterpreter.getCFG(CGNode N) |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
GetMethodContextInterpreter.getCFG(CGNode N) |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
GetClassContextInterpeter.getCFG(CGNode N) |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
FactoryBypassInterpreter.getCFG(CGNode N) |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
CloneInterpreter.getCFG(CGNode N) |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
ClassNewInstanceContextInterpreter.getCFG(CGNode N) |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
ClassFactoryContextInterpreter.getCFG(CGNode N) |
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
MethodHandles.ContextInterpreterImpl.getCFG(CGNode n) |
| Modifier and Type | Class and Description |
|---|---|
class |
AbstractCFG<I,T extends IBasicBlock<I>>
Common functionality for
ControlFlowGraph implementations. |
class |
InducedCFG
A
ControlFlowGraph computed from a set of SSAInstruction instructions. |
class |
ShrikeCFG
A graph of basic blocks.
|
| Modifier and Type | Method and Description |
|---|---|
static boolean |
Util.endsWithConditionalBranch(ControlFlowGraph G,
IBasicBlock b)
Does basic block b end with a conditional branch instruction?
|
static boolean |
Util.endsWithSwitch(ControlFlowGraph G,
IBasicBlock b)
Does basic block b end with a switch instruction?
|
static <I,T extends IBasicBlock<I>> |
Util.getFallThruBlock(ControlFlowGraph<I,T> G,
T b)
Given that b falls through to the next basic block, what basic block does it fall through to?
|
static SSAInstruction |
Util.getLastInstruction(ControlFlowGraph cfg,
IBasicBlock b) |
static <I,T extends IBasicBlock<I>> |
Util.getNotTakenSuccessor(ControlFlowGraph<I,T> G,
T b)
Given that b ends with a conditional branch, return the basic block to
which control transfers if the branch is not taken.
|
static <I,T extends IBasicBlock<I>> |
Util.getSwitchLabel(ControlFlowGraph<I,T> G,
T b,
T s)
When a switch statement at the end of block b transfers control to block s,
which case was taken? TODO: Is this correct? Can't we have multiple cases
that apply? Check on this.
|
static <I,T extends IBasicBlock<I>> |
Util.getTakenSuccessor(ControlFlowGraph<I,T> G,
T b)
Given that b ends with a conditional branch, return the basic block to
which control transfers if the branch is taken.
|
static <I,T extends IBasicBlock<I>> |
Util.isSwitchDefault(ControlFlowGraph<I,T> G,
T b,
T s)
Is block s the default case for the switch instruction which is the last instruction of block b?
|
static <I,T extends IBasicBlock<I>> |
Util.resolveBranch(ControlFlowGraph<I,T> G,
T bb,
int c1,
int c2)
To which
IBasicBlock does control flow from basic block bb, which ends in a
conditional branch, when the conditional branch operands evaluate to the
constants c1 and c2, respectively. |
static <I,T extends IBasicBlock<I>> |
Util.resolveSwitch(ControlFlowGraph<I,T> G,
T b,
int c)
When the tested value of the switch statement in b has value c, which basic
block does control transfer to.
|
static <I,T extends IBasicBlock<I>> |
Util.whichPred(ControlFlowGraph<I,T> cfg,
T a,
T b)
Given that a is a predecessor of b in the cfg ..
|
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph |
ControlDependenceGraph.getControlFlowGraph() |
| Constructor and Description |
|---|
ControlDependenceGraph(ControlFlowGraph<I,T> cfg) |
ControlDependenceGraph(ControlFlowGraph<I,T> cfg,
boolean wantEdgeLabels) |
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<I,T> |
ExceptionPruningAnalysis.getCFG()
Returns the result of the analysis: A control flow graph where impossible
control flow has been removed.
|
| 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 | Class and Description |
|---|---|
class |
MutableCFG<X,T extends IBasicBlock<X>>
A modifiable control flow graph.
|
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
SSACFGNullPointerAnalysis.getCFG() |
ControlFlowGraph<SSAInstruction,IExplodedBasicBlock> |
ExplodedCFGNullPointerAnalysis.getCFG() |
| Modifier and Type | Method and Description |
|---|---|
static <I,T extends IBasicBlock<I>> |
MutableCFG.copyFrom(ControlFlowGraph<I,T> cfg) |
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph |
ShrikeIRFactory.makeCFG(IBytecodeMethod method,
Context C) |
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<SSAInstruction,IExplodedBasicBlock> |
ICFGSupergraph.getCFG(BasicBlockInContext<IExplodedBasicBlock> node) |
| 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 | 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 |
|---|---|
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 | Class and Description |
|---|---|
class |
PrunedCFG<I,T extends IBasicBlock<I>>
A pruned view of a
ControlFlowGraph. |
| 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) |
| 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 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) |
static <I,T extends IBasicBlock<I>> |
ExceptionPrunedCFG.make(ControlFlowGraph<I,T> cfg) |
static <I,T extends IBasicBlock<I>> |
PrunedCFG.make(ControlFlowGraph<I,T> cfg,
EdgeFilter<T> filter) |
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph |
SyntheticIRFactory.makeCFG(SyntheticMethod method,
Context C) |
| Modifier and Type | Class and Description |
|---|---|
class |
SSACFG
A control-flow graph for ssa form.
|
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph |
DefaultIRFactory.makeCFG(IMethod method,
Context c) |
| Modifier and Type | Class and Description |
|---|---|
class |
ExplodedControlFlowGraph
A view of a control flow graph where each basic block corresponds to exactly one SSA instruction index.
|
Copyright © 2015. All rights reserved.