| 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.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.escape | |
| com.ibm.wala.ipa.callgraph |
This package provides basic interfaces and functions for call graph
construction.
|
| 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.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.viz | |
| com.ibm.wala.viz.viewer |
| Modifier and Type | Method and Description |
|---|---|
IR |
ReflectiveInvocationInterpreter.getIR(CGNode node)
END Custom change: caching
|
IR |
JavaLangClassContextInterpreter.getIR(CGNode node)
END Custom change: caching
|
IR |
GetMethodContextInterpreter.getIR(CGNode node) |
IR |
GetClassContextInterpeter.getIR(CGNode node) |
IR |
FactoryBypassInterpreter.getIR(CGNode node) |
IR |
CloneInterpreter.getIR(CGNode node) |
IR |
ClassNewInstanceContextInterpreter.getIR(CGNode node) |
IR |
ClassFactoryContextInterpreter.getIR(CGNode node)
END Custom change: caching
|
IR |
FactoryBypassInterpreter.SpecializedFactoryMethod.makeIR(Context C,
SSAOptions options) |
| Modifier and Type | Method and Description |
|---|---|
IR |
MethodHandles.ContextInterpreterImpl.getIR(CGNode node) |
| Modifier and Type | Field and Description |
|---|---|
protected IR |
TypeInference.ir
The governing SSA form
|
| Modifier and Type | Method and Description |
|---|---|
IR |
TypeInference.getIR() |
| Modifier and Type | Method and Description |
|---|---|
static TypeInference |
TypeInference.make(IR ir,
boolean doPrimitives) |
| Constructor and Description |
|---|
TypeInference(IR ir,
boolean doPrimitives) |
| Modifier and Type | Method and Description |
|---|---|
static com.ibm.wala.util.graph.Graph<ISSABasicBlock> |
CFGSanitizer.sanitize(IR ir,
IClassHierarchy cha)
Return a view of the
ControlFlowGraph for an IR, which elides all exceptional exits from PEIs in the IR. |
| Constructor and Description |
|---|
ExplodedCFGNullPointerAnalysis(TypeReference[] ignoredExceptions,
IR ir,
ParameterState paramState,
MethodState mState,
boolean optHasExceptions) |
SSACFGNullPointerAnalysis(TypeReference[] ignoredExceptions,
IR ir,
ParameterState paramState,
MethodState mState) |
| Modifier and Type | Method and Description |
|---|---|
IR |
SyntheticMethod.makeIR(Context context,
SSAOptions options)
Most subclasses should override this.
|
IR |
ShrikeIRFactory.makeIR(IBytecodeMethod method,
Context C,
SSAOptions options) |
| Modifier and Type | Method and Description |
|---|---|
IR |
ICFGSupergraph.getIR(CGNode n) |
IR |
ICFGSupergraph.getIR(IMethod m,
Context c) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
SSAInference.init(IR ir,
SSAInference.VariableFactory varFactory,
SSAInference.OperatorFactory<T> opFactory)
initializer for SSA Inference equations.
|
| Modifier and Type | Field and Description |
|---|---|
protected IR |
SimpleDemandPointerFlowGraph.StatementVisitor.ir
The governing IR
|
protected IR |
DemandPointerFlowGraph.StatementVisitor.ir
The governing IR
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
DemandPointerFlowGraph.StatementVisitor.addExceptionDefConstraints(IR ir,
CGNode node,
List<ProgramCounter> peis,
PointerKey exceptionVar,
Set<IClass> catchClasses)
Generate constraints which assign exception values into an exception pointer
|
protected void |
AbstractFlowGraph.addExceptionDefConstraints(IR ir,
CGNode node,
List<ProgramCounter> peis,
PointerKey exceptionVar,
Set<IClass> catchClasses)
Generate constraints which assign exception values into an exception pointer
|
protected void |
AbstractFlowGraph.addNodeConstantConstraints(CGNode node,
IR ir)
add constraints for reference constants assigned to vars
|
protected void |
SimpleDemandPointerFlowGraph.addNodeInstructionConstraints(CGNode node,
IR ir,
DefUse du)
Add pointer flow constraints based on instructions in a given node
|
protected void |
AbstractDemandFlowGraph.addNodeInstructionConstraints(CGNode node,
IR ir,
DefUse du)
Add pointer flow constraints based on instructions in a given node
|
protected void |
SimpleDemandPointerFlowGraph.addNodePassthruExceptionConstraints(CGNode node,
IR ir)
Add constraints to represent the flow of exceptions to the exceptional return value for this node
|
protected void |
AbstractFlowGraph.addNodePassthruExceptionConstraints(CGNode node,
IR ir)
Add constraints to represent the flow of exceptions to the exceptional return value for this node
|
protected void |
AbstractFlowGraph.addNodesForInvocations(CGNode node,
IR ir)
For each invocation in the method, add nodes for actual parameters and return values
|
protected void |
DemandValueFlowGraph.addNodesForParameters(CGNode node,
IR ir) |
protected void |
DemandPointerFlowGraph.addNodesForParameters(CGNode node,
IR ir)
add nodes for parameters and return values
|
protected abstract void |
AbstractDemandFlowGraph.addNodesForParameters(CGNode node,
IR ir) |
protected SimpleDemandPointerFlowGraph.StatementVisitor |
SimpleDemandPointerFlowGraph.makeVisitor(ExplicitCallGraph.ExplicitNode node,
IR ir,
DefUse du) |
protected void |
AbstractDemandFlowGraph.unconditionallyAddConstraintsFromNode(CGNode node,
IR ir) |
| Constructor and Description |
|---|
SimpleDemandPointerFlowGraph.StatementVisitor(CGNode node,
IR ir,
DefUse du) |
| Modifier and Type | Method and Description |
|---|---|
static boolean |
LocalLiveRangeAnalysis.isLive(int v,
int instructionIndex,
IR ir,
DefUse du)
Is the variable with value number v live immediately after a particular instruction index?
Algorithm: returns true if there is a path from pc to some use of v that does not traverse the def of v
|
| Modifier and Type | Method and Description |
|---|---|
IR |
CGNode.getIR() |
IR |
AnalysisCache.getIR(IMethod method)
Find or create an IR for the method using the
Everywhere context and default SSAOptions |
| Modifier and Type | Method and Description |
|---|---|
DefUse |
AnalysisCache.getDefUse(IR ir)
Find or create a DefUse for the IR using the
Everywhere context |
| Modifier and Type | Method and Description |
|---|---|
IR |
ExplicitCallGraph.ExplicitNode.getIR() |
IR |
AbstractRootMethod.makeIR(Context context,
SSAOptions options) |
| Modifier and Type | Field and Description |
|---|---|
protected IR |
SSAPropagationCallGraphBuilder.ConstraintVisitor.ir
The governing IR
|
| Modifier and Type | Method and Description |
|---|---|
IR |
SSAContextInterpreter.getIR(CGNode node) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
SSAPropagationCallGraphBuilder.addNodePassthruExceptionConstraints(CGNode node,
IR ir,
DefUse du)
Add constraints to represent the flow of exceptions to the exceptional return value for this node
|
static Set<IClass> |
SSAPropagationCallGraphBuilder.getCaughtExceptionTypes(SSAGetCaughtExceptionInstruction instruction,
IR ir) |
static List<ProgramCounter> |
SSAPropagationCallGraphBuilder.getIncomingPEIs(IR ir,
ISSABasicBlock bb) |
static InstanceKey[] |
ConcreteTypeKey.getInstanceKeysForPEI(SSAInstruction pei,
IR ir,
IClassHierarchy cha) |
PointerKey |
SSAPropagationCallGraphBuilder.getUniqueCatchKey(SSAAbstractInvokeInstruction call,
IR ir,
CGNode node)
precondition: hasUniqueCatchBlock(call,node,cg)
|
protected static boolean |
SSAPropagationCallGraphBuilder.hasUniqueCatchBlock(SSAAbstractInvokeInstruction call,
IR ir) |
| Modifier and Type | Method and Description |
|---|---|
IR |
FallbackContextInterpreter.getIR(CGNode node) |
IR |
DelegatingSSAContextInterpreter.getIR(CGNode node) |
IR |
DefaultSSAInterpreter.getIR(CGNode node) |
IR |
ContextInsensitiveSSAInterpreter.getIR(CGNode node) |
| Modifier and Type | Method and Description |
|---|---|
static Map<SSAInstruction,Integer> |
PDG.computeInstructionIndices(IR ir) |
Map<Statement,com.ibm.wala.util.intset.OrdinalSet<Statement>> |
HeapReachingDefs.computeReachingDefs(CGNode node,
IR ir,
PointerAnalysis<InstanceKey> pa,
Map<CGNode,com.ibm.wala.util.intset.OrdinalSet<PointerKey>> mod,
Collection<Statement> statements,
HeapExclusions exclusions,
CallGraph cg)
For each statement s, return the set of statements that may def the heap value read by s.
|
static Statement |
PDG.ssaInstruction2Statement(CGNode node,
SSAInstruction s,
Map<SSAInstruction,Integer> instructionIndices,
IR ir) |
| Modifier and Type | Class and Description |
|---|---|
static class |
SummarizedMethodWithNames.SyntheticIRWithNames |
class |
SyntheticIR |
| Modifier and Type | Method and Description |
|---|---|
IR |
SummarizedMethodWithNames.makeIR(Context context,
SSAOptions options) |
IR |
SummarizedMethod.makeIR(Context context,
SSAOptions options) |
IR |
SyntheticIRFactory.makeIR(SyntheticMethod method,
Context C,
SSAOptions options) |
| Modifier and Type | Method and Description |
|---|---|
IR |
SSACache.findOrCreateIR(IMethod m,
Context c,
SSAOptions options) |
IR |
DefaultIRFactory.makeIR(IMethod method,
Context c,
SSAOptions options) |
IR |
IRFactory.makeIR(T method,
Context c,
SSAOptions options)
Build an SSA
IR for a method in a particular context |
| Modifier and Type | Method and Description |
|---|---|
DefUse |
SSACache.findOrCreateDU(IR ir,
Context C) |
| Constructor and Description |
|---|
DefUse(IR ir) |
| Modifier and Type | Method and Description |
|---|---|
IR |
ExplodedControlFlowGraph.getIR() |
| Modifier and Type | Method and Description |
|---|---|
static ExplodedControlFlowGraph |
ExplodedControlFlowGraph.make(IR ir) |
static void |
DeadAssignmentElimination.perform(IR ir)
eliminate dead phis from an ir
|
| Modifier and Type | Method and Description |
|---|---|
static Process |
PDFViewUtil.ghostviewIR(IClassHierarchy cha,
IR ir,
String pdfFile,
String dotFile,
String dotExe,
String pdfViewExe)
spawn a process to view a WALA IR
|
static Process |
PDFViewUtil.ghostviewIR(IClassHierarchy cha,
IR ir,
String pdfFile,
String dotFile,
String dotExe,
String pdfViewExe,
com.ibm.wala.viz.NodeDecorator<ISSABasicBlock> annotations)
spawn a process to view a WALA IR
|
static com.ibm.wala.viz.NodeDecorator<ISSABasicBlock> |
PDFViewUtil.makeIRDecorator(IR ir) |
| Modifier and Type | Method and Description |
|---|---|
void |
IrViewer.setIR(IR ir) |
void |
IrAndSourceViewer.setIR(IR ir) |
void |
IrViewer.setIRAndPc(IR ir,
int pc) |
void |
IrAndSourceViewer.setIRAndPc(IR ir,
int pc) |
Copyright © 2015. All rights reserved.