| Package | Description |
|---|---|
| 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.intra | |
| 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.cfg |
This package supports interprocedural control-flow graphs, and control-flow
graphs specialized for context.
|
| 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 | Class and Description |
|---|---|
class |
AbstractCFG<I,T extends IBasicBlock<I>>
Common functionality for
ControlFlowGraph implementations. |
interface |
ControlFlowGraph<I,T extends IBasicBlock<I>>
An interface that is common to the Shrike and SSA CFG implementations.
|
| Modifier and Type | Class and Description |
|---|---|
class |
InducedCFG.BasicBlock |
class |
ShrikeCFG.BasicBlock |
| Modifier and Type | Method and Description |
|---|---|
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 <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 |
|---|---|
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 SSAInstruction |
Util.getLastInstruction(ControlFlowGraph cfg,
IBasicBlock b) |
| Modifier and Type | Class and Description |
|---|---|
class |
ControlDependenceGraph<I,T extends IBasicBlock<I>>
Control Dependence Graph
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
ExceptionPruningAnalysis<I,T extends IBasicBlock<I>>
This abstract class is used as interface for analysis that remove impossible
control flow from a CFG.
|
interface |
InterprocAnalysisResult<I,T extends IBasicBlock<I>>
Interface to retrieve the result of the interprocedural analysis.
|
| Modifier and Type | Class and Description |
|---|---|
class |
MutableCFG<X,T extends IBasicBlock<X>>
A modifiable control flow graph.
|
class |
NegativeGraphFilter<T extends IBasicBlock<?>>
An EdgeFilter that ignores all edges contained in a given graph.
|
| Modifier and Type | Method and Description |
|---|---|
static <I,T extends IBasicBlock<I>> |
MutableCFG.copyFrom(ControlFlowGraph<I,T> cfg) |
| Modifier and Type | Method and Description |
|---|---|
static boolean |
FakeRootMethod.isFromFakeRoot(IBasicBlock block) |
| Modifier and Type | Interface and Description |
|---|---|
interface |
EdgeFilter<T extends IBasicBlock>
This class is used by the PrunedCFG to determine which edges in a given CFG should be kept in the pruned version.
|
class |
PrunedCFG<I,T extends IBasicBlock<I>>
A pruned view of a
ControlFlowGraph. |
| Modifier and Type | Class and Description |
|---|---|
class |
BasicBlockInContext<T extends ISSABasicBlock>
A helper class to make the ipcfg work correctly with context-sensitive call graphs.
|
| Modifier and Type | Method and Description |
|---|---|
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 |
|---|---|
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) |
| Modifier and Type | Interface and Description |
|---|---|
interface |
ISSABasicBlock
Common interface to all SSA BasicBlocks
|
| Modifier and Type | Class and Description |
|---|---|
class |
SSACFG.BasicBlock
A Basic Block in an SSA IR
|
class |
SSACFG.ExceptionHandlerBasicBlock |
| Modifier and Type | Field and Description |
|---|---|
protected AbstractCFG<com.ibm.wala.shrikeBT.IInstruction,IBasicBlock<com.ibm.wala.shrikeBT.IInstruction>> |
SSACFG.delegate
A delegate CFG, pre-built, which stores the graph structure of this CFG.
|
| Modifier and Type | Interface and Description |
|---|---|
interface |
IExplodedBasicBlock
A basic block with exactly one normal instruction (which may be null), corresponding to a single instruction index in the SSA
instruction array.
|
Copyright © 2015. All rights reserved.