| 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.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.ipa.callgraph |
This package provides basic interfaces and functions for call graph
construction.
|
| com.ibm.wala.ipa.callgraph.cha | |
| 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.callgraph.propagation.rta |
This package provides CFA-style call graph
construction and pointer analysis.
|
| com.ibm.wala.ipa.callgraph.pruned | |
| com.ibm.wala.ipa.summaries |
This package provides class hierarchy analysis.
|
| com.ibm.wala.ssa |
This package provides the WALA SSA IR.
|
| Modifier and Type | Class and Description |
|---|---|
class |
GetMethodContext
A context which may be used if
the method to be interpreted is either
Class.getMethod(String, Class...) or
Class.getDeclaredMethod(String, Class...),
the type of the "this" argument is known and
the value of the first argument (the method name) is a constant.
In the special case described above,
GetMethodContextInterpreter
and
GetMethodContextSelector
should be preferred over
JavaLangClassContextInterpreter
and
JavaLangClassContextSelector,
as
GetMethodContextInterpreter
and
GetMethodContextSelector
drastically reduce the number of methods returned increasing the precision of the analysis. |
class |
IllegalArgumentExceptionContext |
class |
JavaTypeContext |
| Modifier and Type | Method and Description |
|---|---|
Context |
GetMethodContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver)
If
the
CallSiteReference invokes either Class.getMethod(java.lang.String, java.lang.Class<?>...) or Class.getDeclaredMethod(java.lang.String, java.lang.Class<?>...),
and the receiver is a type constant and
the first argument is a constant,
then return a GetMethodContextSelector. |
Context |
GetClassContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
| Modifier and Type | Method and Description |
|---|---|
IR |
FactoryBypassInterpreter.SpecializedFactoryMethod.makeIR(Context C,
SSAOptions options) |
boolean |
FactoryBypassInterpreter.recordType(IClassHierarchy cha,
Context context,
TypeReference type) |
| Constructor and Description |
|---|
FactoryBypassInterpreter.SpecializedFactoryMethod(SummarizedMethod m,
Context context,
Set S) |
| Modifier and Type | Class and Description |
|---|---|
static class |
MethodHandles.MethodContext |
| Modifier and Type | Method and Description |
|---|---|
Context |
MethodHandles.ContextSelectorImpl.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] actualParameters) |
| Constructor and Description |
|---|
MethodHandles.MethodContext(Context base,
MethodReference method) |
| 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 |
|---|---|
ControlFlowGraph |
ShrikeIRFactory.makeCFG(IBytecodeMethod method,
Context C) |
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(IMethod m,
Context c) |
| Modifier and Type | Class and Description |
|---|---|
class |
DelegatingContext
A context that first checks with A, then defaults to B.
|
| Modifier and Type | Method and Description |
|---|---|
Context |
ContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] actualParameters)
Given a calling node and a call site, returns the Context in which the callee should be evaluated.
|
Context |
CGNode.getContext()
Return the
context this CGNode represents. |
| Modifier and Type | Method and Description |
|---|---|
static IClass |
ContextUtil.getConcreteClassFromContext(Context c) |
CGNode |
CallGraph.getNode(IMethod method,
Context C)
If you want to get all the nodes corresponding to a particular method, regardless of context, then use
getNodes |
void |
AnalysisCache.invalidate(IMethod method,
Context C) |
| Constructor and Description |
|---|
DelegatingContext(Context A,
Context B) |
| Modifier and Type | Method and Description |
|---|---|
CGNode |
CHACallGraph.findOrCreateNode(IMethod method,
Context C) |
| Modifier and Type | Class and Description |
|---|---|
class |
Everywhere
An object that represent the context everywhere; used for context-insensitive analysis
|
| Modifier and Type | Method and Description |
|---|---|
Context |
UnionContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver)
If only one Context exists return it, else return a DelegatingContext.
|
Context |
DelegatingContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
Context |
DefaultContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
Context |
ContextInsensitiveSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
Context |
BasicCallGraph.NodeImpl.getContext() |
| Modifier and Type | Method and Description |
|---|---|
CGNode |
ExplicitCallGraph.findOrCreateNode(IMethod method,
Context context) |
abstract CGNode |
BasicCallGraph.findOrCreateNode(IMethod method,
Context C)
Use with extreme care.
|
CGNode |
PartialCallGraph.getNode(IMethod method,
Context C) |
CGNode |
BasicCallGraph.getNode(IMethod method,
Context C) |
IR |
AbstractRootMethod.makeIR(Context context,
SSAOptions options) |
protected ExplicitCallGraph.ExplicitNode |
ExplicitCallGraph.makeNode(IMethod method,
Context context)
subclasses may wish to override!
|
| Constructor and Description |
|---|
BasicCallGraph.Key(IMethod m,
Context C) |
BasicCallGraph.NodeImpl(IMethod method,
Context C) |
ExplicitCallGraph.ExplicitNode(IMethod method,
Context C) |
| Modifier and Type | Class and Description |
|---|---|
class |
ReceiverInstanceContext
This is a context which is customized for the
InstanceKey of the receiver. |
class |
SelectiveCPAContext
A selective Cartesian product context that enforces object sensitivity on some set
of parameter positions.
|
| Modifier and Type | Field and Description |
|---|---|
protected Context |
SelectiveCPAContext.base |
| Modifier and Type | Method and Description |
|---|---|
Context |
TargetMethodContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] R) |
Context |
ReceiverTypeContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
Context |
CloneContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
| Constructor and Description |
|---|
SelectiveCPAContext(Context base,
InstanceKey[] x) |
SelectiveCPAContext(Context base,
Map<ContextKey,InstanceKey> parameterObjs) |
| Modifier and Type | Class and Description |
|---|---|
class |
CallerContext
This is a context which is defined by the caller node.
|
class |
CallerContextPair
This is a
Context which is defined by a pair consisting of |
class |
CallerSiteContext
A context which is a
|
class |
CallerSiteContextPair
This is a context which is defined by a pair consisting of
|
class |
CallStringContext |
static class |
CallStringContextSelector.CallStringContextPair |
| Modifier and Type | Method and Description |
|---|---|
static Context |
ContainerContextSelector.findRecursiveMatchingContext(IMethod M,
Context C)
This method walks recursively up the definition of a context C, to see if
the chain of contexts that give rise to C includes the method M.
|
static Context |
ContainerContextSelector.findRecursiveMatchingContext(IMethod M,
Context C,
InstanceKey receiver)
This method walks recursively up the definition of a context C, to see if
the chain of contexts that give rise to C a) includes the method M.
|
Context |
CallStringContextSelector.CallStringContextPair.getBaseContext() |
Context |
OneLevelSiteContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
Context |
ContainerContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] keys) |
Context |
CallStringContextSelector.getCalleeTarget(CGNode caller,
CallSiteReference site,
IMethod callee,
InstanceKey[] receiver) |
| Modifier and Type | Method and Description |
|---|---|
static CGNode |
ContainerContextSelector.findNodeRecursiveMatchingContext(IMethod m,
Context c)
This method walks recursively up the definition of a context C, to see if
the chain of contexts that give rise to C includes the method M.
|
static Context |
ContainerContextSelector.findRecursiveMatchingContext(IMethod M,
Context C)
This method walks recursively up the definition of a context C, to see if
the chain of contexts that give rise to C includes the method M.
|
static Context |
ContainerContextSelector.findRecursiveMatchingContext(IMethod M,
Context C,
InstanceKey receiver)
This method walks recursively up the definition of a context C, to see if
the chain of contexts that give rise to C a) includes the method M.
|
| Constructor and Description |
|---|
CallerContextPair(CGNode caller,
Context baseContext) |
CallerSiteContextPair(CGNode caller,
CallSiteReference callSite,
Context baseContext) |
| Modifier and Type | Method and Description |
|---|---|
protected ExplicitCallGraph.ExplicitNode |
DelegatingExplicitCallGraph.makeNode(IMethod method,
Context context) |
| Constructor and Description |
|---|
DelegatingExplicitCallGraph.DelegatingCGNode(IMethod method,
Context C) |
| Modifier and Type | Method and Description |
|---|---|
CGNode |
PrunedCallGraph.getNode(IMethod method,
Context C) |
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph |
SyntheticIRFactory.makeCFG(SyntheticMethod method,
Context C) |
IR |
SummarizedMethodWithNames.makeIR(Context context,
SSAOptions options) |
IR |
SummarizedMethod.makeIR(Context context,
SSAOptions options) |
IR |
SyntheticIRFactory.makeIR(SyntheticMethod method,
Context C,
SSAOptions options) |
| 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 | Method and Description |
|---|---|
DefUse |
SSACache.findOrCreateDU(IMethod m,
Context c,
SSAOptions options) |
DefUse |
SSACache.findOrCreateDU(IR ir,
Context C) |
IR |
SSACache.findOrCreateIR(IMethod m,
Context c,
SSAOptions options) |
void |
SSACache.invalidate(IMethod method,
Context c)
Invalidate all cached information for a
|
void |
SSACache.invalidateDU(IMethod method,
Context c)
Invalidate the cached
DefUse for a |
void |
SSACache.invalidateIR(IMethod method,
Context c)
Invalidate the cached IR for a
|
ControlFlowGraph |
DefaultIRFactory.makeCFG(IMethod method,
Context c) |
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 |
Copyright © 2015. All rights reserved.