changes for analysis cache view
This commit is contained in:
parent
7e3066b6cd
commit
6cdeedd5e9
|
@ -10,7 +10,6 @@ import com.ibm.wala.cast.java.client.impl.ZeroOneContainerCFABuilderFactory;
|
|||
import com.ibm.wala.cast.java.ipa.callgraph.JavaSourceAnalysisScope;
|
||||
import com.ibm.wala.cast.java.translator.jdt.ecj.ECJClassLoaderFactory;
|
||||
import com.ibm.wala.classLoader.SourceDirectoryTreeModule;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
@ -19,6 +18,7 @@ import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
|||
import com.ibm.wala.ipa.callgraph.CallGraphBuilderCancelException;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphStats;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
|
||||
|
@ -68,7 +68,7 @@ public class SourceDirCallGraph {
|
|||
options.setEntrypoints(entrypoints);
|
||||
// you can dial down reflection handling if you like
|
||||
// options.setReflectionOptions(ReflectionOptions.NONE);
|
||||
AnalysisCache cache = new AnalysisCacheImpl(AstIRFactory.makeDefaultFactory());
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl(AstIRFactory.makeDefaultFactory());
|
||||
//CallGraphBuilder builder = new ZeroCFABuilderFactory().make(options, cache, cha, scope, false);
|
||||
CallGraphBuilder builder = new ZeroOneContainerCFABuilderFactory().make(options, cache, cha, scope, false);
|
||||
System.out.println("building call graph...");
|
||||
|
|
|
@ -22,7 +22,6 @@ import com.ibm.wala.cast.java.ipa.callgraph.JavaSourceAnalysisScope;
|
|||
import com.ibm.wala.classLoader.ClassLoaderFactory;
|
||||
import com.ibm.wala.classLoader.Module;
|
||||
import com.ibm.wala.client.AbstractAnalysisEngine;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
package com.ibm.wala.cast.java.client.impl;
|
||||
|
||||
import com.ibm.wala.cast.java.ipa.callgraph.AstJavaZeroXCFABuilder;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
package com.ibm.wala.cast.java.client.impl;
|
||||
|
||||
import com.ibm.wala.cast.java.ipa.callgraph.AstJavaZeroOneContainerCFABuilder;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
|
||||
|
@ -25,7 +25,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy;
|
|||
*/
|
||||
public class ZeroOneContainerCFABuilderFactory {
|
||||
|
||||
public CallGraphBuilder make(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, AnalysisScope scope, boolean keepPointsTo) {
|
||||
public CallGraphBuilder make(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope, boolean keepPointsTo) {
|
||||
Util.addDefaultSelectors(options, cha);
|
||||
Util.addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), cha);
|
||||
return new AstJavaZeroOneContainerCFABuilder(cha, options, cache, null, null);
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
*****************************************************************************/
|
||||
package com.ibm.wala.cast.java.ipa.callgraph;
|
||||
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.cfa.DefaultPointerKeyFactory;
|
||||
|
|
|
@ -22,7 +22,6 @@ import com.ibm.wala.cast.java.ssa.EnclosingObjectReference;
|
|||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.fixpoint.IntSetVariable;
|
||||
import com.ibm.wala.fixpoint.UnaryOperator;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
*******************************************************************************/
|
||||
package com.ibm.wala.cast.java.ipa.callgraph;
|
||||
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.DefaultContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.impl.DelegatingContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter;
|
||||
|
@ -35,7 +35,7 @@ public class AstJavaZeroOneContainerCFABuilder extends AstJavaCFABuilder {
|
|||
* @param appContextSelector application-specific logic to choose contexts
|
||||
* @param appContextInterpreter application-specific logic to interpret a method in context
|
||||
*/
|
||||
public AstJavaZeroOneContainerCFABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache,
|
||||
public AstJavaZeroOneContainerCFABuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache,
|
||||
ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter) {
|
||||
super(cha, options, cache);
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
*****************************************************************************/
|
||||
package com.ibm.wala.cast.java.ipa.callgraph;
|
||||
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
|
@ -50,7 +49,7 @@ public class AstJavaZeroXCFABuilder extends AstJavaCFABuilder {
|
|||
* @param xmlFiles set of Strings that are names of XML files holding bypass logic specifications.
|
||||
* @return a 0-1-Opt-CFA Call Graph Builder.
|
||||
*/
|
||||
public static AstJavaCFABuilder make(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, ClassLoader cl,
|
||||
public static AstJavaCFABuilder make(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, ClassLoader cl,
|
||||
AnalysisScope scope, String[] xmlFiles, byte instancePolicy) {
|
||||
|
||||
com.ibm.wala.ipa.callgraph.impl.Util.addDefaultSelectors(options, cha);
|
||||
|
|
|
@ -33,10 +33,10 @@ import com.ibm.wala.classLoader.IMethod;
|
|||
import com.ibm.wala.classLoader.Language;
|
||||
import com.ibm.wala.classLoader.Module;
|
||||
import com.ibm.wala.classLoader.SourceFileModule;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.MethodTargetSelector;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.cfa.ZeroXInstanceKeys;
|
||||
|
@ -65,7 +65,7 @@ public class NodejsCallGraphBuilderUtil extends JSCallGraphUtil {
|
|||
Collection<Language> languages = Collections.singleton(language);
|
||||
|
||||
IRFactory<IMethod> irFactory = new AstIRFactory.AstDefaultIRFactory();
|
||||
AnalysisCache cache = new AnalysisCacheImpl(irFactory);
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl(irFactory);
|
||||
|
||||
JavaScriptLoaderFactory loaders = new JavaScriptLoaderFactory(translatorFactory, null);
|
||||
|
||||
|
|
|
@ -13,13 +13,7 @@ package com.ibm.wala.cast.js.nodejs;
|
|||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.net.URI;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
|
|
@ -17,11 +17,11 @@ import com.ibm.wala.cast.js.translator.CAstRhinoTranslatorFactory;
|
|||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.classLoader.Language;
|
||||
import com.ibm.wala.classLoader.SourceURLModule;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.MethodTargetSelector;
|
||||
import com.ibm.wala.ipa.callgraph.impl.ComposedEntrypoints;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||
|
@ -35,7 +35,7 @@ import com.ibm.wala.util.strings.Atom;
|
|||
|
||||
public class Driver {
|
||||
|
||||
public static void addDefaultDispatchLogic(AnalysisOptions options, AnalysisScope scope, IClassHierarchy cha, AnalysisCache cache) {
|
||||
public static void addDefaultDispatchLogic(AnalysisOptions options, AnalysisScope scope, IClassHierarchy cha, IAnalysisCacheView cache) {
|
||||
com.ibm.wala.ipa.callgraph.impl.Util.addDefaultSelectors(options, cha);
|
||||
|
||||
Map<Atom,MethodTargetSelector> methodTargetSelectors = HashMapFactory.make();
|
||||
|
@ -80,7 +80,7 @@ public class Driver {
|
|||
|
||||
IRFactory<IMethod> factory = AstIRFactory.makeDefaultFactory();
|
||||
|
||||
AnalysisCache cache = new AnalysisCacheImpl(factory);
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl(factory);
|
||||
|
||||
addDefaultDispatchLogic(options, scope, cha, cache);
|
||||
|
||||
|
|
|
@ -22,10 +22,10 @@ import com.ibm.wala.cast.js.loader.JavaScriptLoader;
|
|||
import com.ibm.wala.cast.js.types.JavaScriptTypes;
|
||||
import com.ibm.wala.cast.util.TargetLanguageSelector;
|
||||
import com.ibm.wala.classLoader.Language;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.AbstractRootMethod;
|
||||
import com.ibm.wala.ipa.callgraph.impl.DefaultContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.impl.FakeRootMethod;
|
||||
|
@ -43,7 +43,7 @@ import com.ibm.wala.util.strings.Atom;
|
|||
|
||||
public class JavaJavaScriptHybridCallGraphBuilder extends CrossLanguageSSAPropagationCallGraphBuilder {
|
||||
|
||||
public JavaJavaScriptHybridCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache) {
|
||||
public JavaJavaScriptHybridCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) {
|
||||
super(cha, options, cache, new AstCFAPointerKeys());
|
||||
globalObject = new GlobalObjectKey(cha.lookupClass(JavaScriptTypes.Root));
|
||||
|
||||
|
|
|
@ -34,9 +34,9 @@ import com.ibm.wala.cast.js.util.Util;
|
|||
import com.ibm.wala.classLoader.Module;
|
||||
import com.ibm.wala.classLoader.SourceModule;
|
||||
import com.ibm.wala.classLoader.SourceURLModule;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
|
@ -102,7 +102,7 @@ public class FieldBasedCGUtil {
|
|||
Iterable<Entrypoint> roots = JSCallGraphUtil.makeScriptRoots(cha);
|
||||
FieldBasedCallGraphBuilder builder = null;
|
||||
|
||||
AnalysisCache cache = new AnalysisCacheImpl(AstIRFactory.makeDefaultFactory());
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl(AstIRFactory.makeDefaultFactory());
|
||||
switch(builderType) {
|
||||
case PESSIMISTIC:
|
||||
builder = new PessimisticCallGraphBuilder(cha, JSCallGraphUtil.makeOptions(scope, cha, roots), cache, supportFullPointerAnalysis);
|
||||
|
|
|
@ -39,10 +39,10 @@ import com.ibm.wala.classLoader.IMethod;
|
|||
import com.ibm.wala.classLoader.Module;
|
||||
import com.ibm.wala.classLoader.SourceModule;
|
||||
import com.ibm.wala.classLoader.SourceURLModule;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.cfa.ZeroXInstanceKeys;
|
||||
|
@ -232,7 +232,7 @@ public class JSCallGraphBuilderUtil extends com.ibm.wala.cast.js.ipa.callgraph.J
|
|||
Iterable<Entrypoint> roots = makeScriptRoots(cha);
|
||||
JSAnalysisOptions options = makeOptions(scope, cha, roots);
|
||||
options.setHandleCallApply(builderType.handleCallApply());
|
||||
AnalysisCache cache = makeCache(irFactory);
|
||||
IAnalysisCacheView cache = makeCache(irFactory);
|
||||
JSCFABuilder builder = new JSZeroOrOneXCFABuilder(cha, options, cache, null, null, ZeroXInstanceKeys.ALLOCATIONS,
|
||||
builderType.useOneCFA());
|
||||
if(builderType.extractCorrelatedPairs())
|
||||
|
|
|
@ -21,10 +21,10 @@ import com.ibm.wala.cast.js.ipa.callgraph.JSCFABuilder;
|
|||
import com.ibm.wala.cast.js.ipa.callgraph.JSCallGraphUtil;
|
||||
import com.ibm.wala.cast.js.ipa.callgraph.JSZeroOrOneXCFABuilder;
|
||||
import com.ibm.wala.cast.js.loader.JavaScriptLoaderFactory;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.cfa.ZeroXInstanceKeys;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
|
@ -50,7 +50,7 @@ public abstract class TestArgumentSensitivity extends TestJSCallGraphShape {
|
|||
Iterable<Entrypoint> roots = JSCallGraphUtil.makeScriptRoots(cha);
|
||||
JSAnalysisOptions options = JSCallGraphUtil.makeOptions(scope, cha, roots);
|
||||
|
||||
AnalysisCache cache = CAstCallGraphUtil.makeCache(new ArgumentSpecialization.ArgumentCountIRFactory(options.getSSAOptions()));
|
||||
IAnalysisCacheView cache = CAstCallGraphUtil.makeCache(new ArgumentSpecialization.ArgumentCountIRFactory(options.getSSAOptions()));
|
||||
|
||||
JSCFABuilder builder = new JSZeroOrOneXCFABuilder(cha, options, cache, null, null, ZeroXInstanceKeys.ALLOCATIONS, false);
|
||||
builder.setContextSelector(new ArgumentSpecialization.ArgumentCountContextSelector(builder.getContextSelector()));
|
||||
|
|
|
@ -18,9 +18,7 @@ import org.junit.Test;
|
|||
|
||||
import com.ibm.wala.cast.ipa.callgraph.CAstCallGraphUtil;
|
||||
import com.ibm.wala.cast.js.html.IHtmlParser;
|
||||
import com.ibm.wala.cast.js.html.IHtmlParserFactory;
|
||||
import com.ibm.wala.cast.js.html.JSSourceExtractor;
|
||||
import com.ibm.wala.cast.js.html.WebUtil;
|
||||
import com.ibm.wala.cast.js.ipa.callgraph.JSCFABuilder;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
|
|
|
@ -34,7 +34,6 @@ import com.ibm.wala.cast.types.AstMethodReference;
|
|||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.Context;
|
||||
|
|
|
@ -20,7 +20,6 @@ import com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph.vertices.VertexFactor
|
|||
import com.ibm.wala.cast.js.ipa.callgraph.JSAnalysisOptions;
|
||||
import com.ibm.wala.cast.js.ssa.JavaScriptInvoke;
|
||||
import com.ibm.wala.cast.js.types.JavaScriptMethods;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
|
|
|
@ -21,7 +21,6 @@ import com.ibm.wala.cast.loader.AstMethod;
|
|||
import com.ibm.wala.cast.types.AstMethodReference;
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
|
|
|
@ -24,8 +24,8 @@ import com.ibm.wala.cast.js.ipa.callgraph.JSAnalysisOptions;
|
|||
import com.ibm.wala.cast.js.ssa.JavaScriptInvoke;
|
||||
import com.ibm.wala.cast.js.types.JavaScriptMethods;
|
||||
import com.ibm.wala.cast.types.AstMethodReference;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.MonitorUtil;
|
||||
|
@ -54,7 +54,7 @@ public class WorklistBasedOptimisticCallgraphBuilder extends FieldBasedCallGraph
|
|||
|
||||
private FlowGraphBuilder builder;
|
||||
|
||||
public WorklistBasedOptimisticCallgraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, boolean supportFullPointerAnalysis) {
|
||||
public WorklistBasedOptimisticCallgraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, boolean supportFullPointerAnalysis) {
|
||||
super(cha, options, cache, supportFullPointerAnalysis);
|
||||
handleCallApply = options instanceof JSAnalysisOptions && ((JSAnalysisOptions)options).handleCallApply();
|
||||
}
|
||||
|
|
|
@ -33,7 +33,6 @@ import com.ibm.wala.cast.js.types.JavaScriptTypes;
|
|||
import com.ibm.wala.classLoader.Module;
|
||||
import com.ibm.wala.classLoader.SourceModule;
|
||||
import com.ibm.wala.client.AbstractAnalysisEngine;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
|
|
@ -13,9 +13,9 @@ package com.ibm.wala.cast.js.client.impl;
|
|||
import com.ibm.wala.cast.ipa.callgraph.StandardFunctionTargetSelector;
|
||||
import com.ibm.wala.cast.js.ipa.callgraph.JSAnalysisOptions;
|
||||
import com.ibm.wala.cast.js.ipa.callgraph.JSZeroOrOneXCFABuilder;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.cfa.ZeroXInstanceKeys;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
|
||||
|
@ -26,7 +26,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy;
|
|||
*/
|
||||
public class OneCFABuilderFactory {
|
||||
|
||||
public CallGraphBuilder make(JSAnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, AnalysisScope scope,
|
||||
public CallGraphBuilder make(JSAnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope,
|
||||
boolean keepPointsTo) {
|
||||
com.ibm.wala.ipa.callgraph.impl.Util.addDefaultSelectors(options, cha);
|
||||
options.setSelector(new StandardFunctionTargetSelector(cha, options.getMethodTargetSelector()));
|
||||
|
|
|
@ -13,7 +13,6 @@ package com.ibm.wala.cast.js.client.impl;
|
|||
import com.ibm.wala.cast.ipa.callgraph.StandardFunctionTargetSelector;
|
||||
import com.ibm.wala.cast.js.ipa.callgraph.JSAnalysisOptions;
|
||||
import com.ibm.wala.cast.js.ipa.callgraph.JSZeroOrOneXCFABuilder;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
|
|
|
@ -34,7 +34,6 @@ import com.ibm.wala.cfg.ControlFlowGraph;
|
|||
import com.ibm.wala.cfg.IBasicBlock;
|
||||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.Context;
|
||||
|
@ -42,6 +41,7 @@ import com.ibm.wala.ipa.callgraph.ContextItem;
|
|||
import com.ibm.wala.ipa.callgraph.ContextItem.Value;
|
||||
import com.ibm.wala.ipa.callgraph.ContextKey;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
|
||||
import com.ibm.wala.ssa.DefUse;
|
||||
import com.ibm.wala.ssa.IR;
|
||||
|
@ -58,7 +58,7 @@ public class ArgumentSpecialization {
|
|||
|
||||
public static class ArgumentSpecializationContextIntepreter extends AstContextInsensitiveSSAContextInterpreter {
|
||||
|
||||
public ArgumentSpecializationContextIntepreter(AnalysisOptions options, AnalysisCache cache) {
|
||||
public ArgumentSpecializationContextIntepreter(AnalysisOptions options, IAnalysisCacheView cache) {
|
||||
super(options, cache);
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@ import com.ibm.wala.cast.ipa.callgraph.ReflectedFieldPointerKey;
|
|||
import com.ibm.wala.cast.js.types.JavaScriptTypes;
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.IField;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.ConcreteTypeKey;
|
||||
|
|
|
@ -44,7 +44,6 @@ import com.ibm.wala.classLoader.IMethod;
|
|||
import com.ibm.wala.classLoader.Language;
|
||||
import com.ibm.wala.fixpoint.AbstractOperator;
|
||||
import com.ibm.wala.fixpoint.UnaryOperator;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
*****************************************************************************/
|
||||
package com.ibm.wala.cast.js.ipa.callgraph;
|
||||
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
|
@ -108,7 +107,7 @@ public class JSZeroOrOneXCFABuilder extends JSCFABuilder {
|
|||
* specifications.
|
||||
* @return a 0-1-Opt-CFA Call Graph Builder.
|
||||
*/
|
||||
public static JSCFABuilder make(JSAnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, ClassLoader cl,
|
||||
public static JSCFABuilder make(JSAnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, ClassLoader cl,
|
||||
AnalysisScope scope, String[] xmlFiles, byte instancePolicy, boolean doOneCFA) {
|
||||
com.ibm.wala.ipa.callgraph.impl.Util.addDefaultSelectors(options, cha);
|
||||
for (int i = 0; i < xmlFiles.length; i++) {
|
||||
|
|
|
@ -17,7 +17,6 @@ import com.ibm.wala.cast.js.loader.JSCallSiteReference;
|
|||
import com.ibm.wala.cast.js.ssa.JSInstructionFactory;
|
||||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.ContextItem;
|
||||
|
|
|
@ -71,7 +71,6 @@ import com.ibm.wala.classLoader.Language;
|
|||
import com.ibm.wala.classLoader.LanguageImpl;
|
||||
import com.ibm.wala.classLoader.ModuleEntry;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.classLoader.SourceModule;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.shrikeBT.IBinaryOpInstruction.IOperator;
|
||||
import com.ibm.wala.shrikeBT.IComparisonInstruction.Operator;
|
||||
|
|
|
@ -17,7 +17,6 @@ import com.ibm.wala.classLoader.CallSiteReference;
|
|||
import com.ibm.wala.classLoader.CodeScanner;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.Context;
|
||||
|
|
|
@ -38,7 +38,6 @@ import com.ibm.wala.classLoader.IClass;
|
|||
import com.ibm.wala.fixpoint.AbstractOperator;
|
||||
import com.ibm.wala.fixpoint.IntSetVariable;
|
||||
import com.ibm.wala.fixpoint.UnaryOperator;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
|
@ -64,7 +63,6 @@ import com.ibm.wala.ipa.callgraph.propagation.cfa.DelegatingSSAContextInterprete
|
|||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.ipa.modref.ArrayLengthKey;
|
||||
import com.ibm.wala.ssa.DefUse;
|
||||
import com.ibm.wala.ssa.IR;
|
||||
import com.ibm.wala.ssa.IRView;
|
||||
import com.ibm.wala.ssa.SSAPutInstruction;
|
||||
import com.ibm.wala.ssa.SymbolTable;
|
||||
|
|
|
@ -26,16 +26,15 @@ import com.ibm.wala.classLoader.IMethod;
|
|||
import com.ibm.wala.classLoader.Language;
|
||||
import com.ibm.wala.classLoader.Module;
|
||||
import com.ibm.wala.classLoader.SourceFileModule;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.PointerKey;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter;
|
||||
import com.ibm.wala.ssa.IR;
|
||||
import com.ibm.wala.ssa.IRFactory;
|
||||
import com.ibm.wala.ssa.IRView;
|
||||
import com.ibm.wala.util.debug.Assertions;
|
||||
|
@ -92,7 +91,7 @@ public class CAstCallGraphUtil {
|
|||
return result;
|
||||
}
|
||||
|
||||
public static AnalysisCache makeCache(IRFactory<IMethod> factory) {
|
||||
public static IAnalysisCacheView makeCache(IRFactory<IMethod> factory) {
|
||||
return new AnalysisCacheImpl(factory);
|
||||
}
|
||||
|
||||
|
|
|
@ -14,10 +14,10 @@ import java.util.Iterator;
|
|||
|
||||
import com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder.AstPointerAnalysisImpl.AstImplicitPointsToSetVisitor;
|
||||
import com.ibm.wala.cast.util.TargetLanguageSelector;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.AbstractRootMethod;
|
||||
import com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
|
||||
|
@ -47,7 +47,7 @@ public abstract class CrossLanguageSSAPropagationCallGraphBuilder extends AstSSA
|
|||
|
||||
protected abstract TargetLanguageSelector<AbstractRootMethod, CrossLanguageCallGraph> makeRootNodeSelector();
|
||||
|
||||
protected CrossLanguageSSAPropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache,
|
||||
protected CrossLanguageSSAPropagationCallGraphBuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache,
|
||||
PointerKeyFactory pointerKeyFactory) {
|
||||
super(cha, options, cache, pointerKeyFactory);
|
||||
visitors = makeMainVisitorSelector();
|
||||
|
|
|
@ -23,7 +23,6 @@ import com.ibm.wala.classLoader.IMethod;
|
|||
import com.ibm.wala.core.tests.demandpa.AbstractPtrTest;
|
||||
import com.ibm.wala.core.tests.util.TestConstants;
|
||||
import com.ibm.wala.core.tests.util.WalaTestCase;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
@ -32,6 +31,7 @@ import com.ibm.wala.ipa.callgraph.CallGraph;
|
|||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphStats;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.AllApplicationEntrypoints;
|
||||
import com.ibm.wala.ipa.callgraph.impl.DefaultEntrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
|
@ -270,7 +270,7 @@ public class CallGraphTest extends WalaTestCase {
|
|||
ClassHierarchy cha = ClassHierarchyFactory.make(scope);
|
||||
Iterable<Entrypoint> entrypoints = Util.makeMainEntrypoints(scope, cha, "Ldemandpa/TestArraysCopyOf");
|
||||
AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints);
|
||||
AnalysisCache cache = new AnalysisCacheImpl();
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl();
|
||||
CallGraphBuilder builder = Util.makeZeroOneContainerCFABuilder(options, cache, cha, scope);
|
||||
CallGraph cg = builder.makeCallGraph(options, null);
|
||||
PointerAnalysis<InstanceKey> pa = builder.getPointerAnalysis();
|
||||
|
@ -302,7 +302,7 @@ public class CallGraphTest extends WalaTestCase {
|
|||
};
|
||||
}
|
||||
|
||||
public static void doCallGraphs(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, AnalysisScope scope)
|
||||
public static void doCallGraphs(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope)
|
||||
throws IllegalArgumentException, CancelException {
|
||||
doCallGraphs(options, cache, cha, scope, false);
|
||||
}
|
||||
|
@ -313,7 +313,7 @@ public class CallGraphTest extends WalaTestCase {
|
|||
* @throws CancelException
|
||||
* @throws IllegalArgumentException
|
||||
*/
|
||||
public static void doCallGraphs(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, AnalysisScope scope,
|
||||
public static void doCallGraphs(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope,
|
||||
boolean testPAToString) throws IllegalArgumentException, CancelException {
|
||||
|
||||
// ///////////////
|
||||
|
|
|
@ -12,12 +12,12 @@ package com.ibm.wala.core.tests.callGraph;
|
|||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
|
@ -54,7 +54,7 @@ public class CallGraphTestUtil {
|
|||
return scope;
|
||||
}
|
||||
|
||||
public static CallGraph buildRTA(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, AnalysisScope scope)
|
||||
public static CallGraph buildRTA(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope)
|
||||
throws IllegalArgumentException, CancelException {
|
||||
StopwatchGC S = null;
|
||||
if (CHECK_FOOTPRINT) {
|
||||
|
@ -72,7 +72,7 @@ public class CallGraphTestUtil {
|
|||
return cg;
|
||||
}
|
||||
|
||||
public static CallGraph buildZeroCFA(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, AnalysisScope scope,
|
||||
public static CallGraph buildZeroCFA(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope,
|
||||
boolean testPAtoString) throws IllegalArgumentException, CancelException {
|
||||
StopwatchGC S = null;
|
||||
if (CHECK_FOOTPRINT) {
|
||||
|
@ -93,7 +93,7 @@ public class CallGraphTestUtil {
|
|||
return cg;
|
||||
}
|
||||
|
||||
public static CallGraph buildVanillaZeroOneCFA(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha,
|
||||
public static CallGraph buildVanillaZeroOneCFA(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha,
|
||||
AnalysisScope scope) throws IllegalArgumentException, CancelException {
|
||||
StopwatchGC S = null;
|
||||
if (CHECK_FOOTPRINT) {
|
||||
|
@ -111,7 +111,7 @@ public class CallGraphTestUtil {
|
|||
return cg;
|
||||
}
|
||||
|
||||
public static CallGraph buildZeroOneCFA(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, AnalysisScope scope,
|
||||
public static CallGraph buildZeroOneCFA(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha, AnalysisScope scope,
|
||||
boolean testPAtoString) throws IllegalArgumentException, CancelException {
|
||||
StopwatchGC S = null;
|
||||
if (CHECK_FOOTPRINT) {
|
||||
|
@ -132,7 +132,7 @@ public class CallGraphTestUtil {
|
|||
return cg;
|
||||
}
|
||||
|
||||
public static CallGraph buildZeroContainerCFA(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha,
|
||||
public static CallGraph buildZeroContainerCFA(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha,
|
||||
AnalysisScope scope) throws IllegalArgumentException, CancelException {
|
||||
StopwatchGC S = null;
|
||||
if (CHECK_FOOTPRINT) {
|
||||
|
@ -150,7 +150,7 @@ public class CallGraphTestUtil {
|
|||
return cg;
|
||||
}
|
||||
|
||||
public static CallGraph buildZeroOneContainerCFA(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha,
|
||||
public static CallGraph buildZeroOneContainerCFA(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha,
|
||||
AnalysisScope scope) throws IllegalArgumentException, CancelException {
|
||||
StopwatchGC S = null;
|
||||
if (CHECK_FOOTPRINT) {
|
||||
|
|
|
@ -20,12 +20,12 @@ import org.junit.Test;
|
|||
|
||||
import com.ibm.wala.analysis.reflection.java7.MethodHandles;
|
||||
import com.ibm.wala.core.tests.shrike.DynamicCallGraphTestBase;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.cfa.DelegatingSSAContextInterpreter;
|
||||
|
@ -56,7 +56,7 @@ public class Java7CallGraphTest extends DynamicCallGraphTestBase {
|
|||
ClassHierarchy cha = ClassHierarchyFactory.make(scope);
|
||||
Iterable<Entrypoint> entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, "Lpack/ocamljavaMain");
|
||||
AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints);
|
||||
AnalysisCache cache = new AnalysisCacheImpl();
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl();
|
||||
|
||||
SSAPropagationCallGraphBuilder builder = Util.makeZeroOneContainerCFABuilder(options, cache, cha, scope);
|
||||
|
||||
|
|
|
@ -26,7 +26,6 @@ import com.ibm.wala.classLoader.IMethod;
|
|||
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
|
||||
import com.ibm.wala.core.tests.util.TestConstants;
|
||||
import com.ibm.wala.core.tests.util.WalaTestCase;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
@ -34,6 +33,7 @@ import com.ibm.wala.ipa.callgraph.CGNode;
|
|||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchy;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||
|
@ -63,7 +63,7 @@ public class NullPointerExceptionInterTest extends WalaTestCase {
|
|||
|
||||
private static CallGraph cg;
|
||||
|
||||
private static AnalysisCache cache;
|
||||
private static IAnalysisCacheView cache;
|
||||
|
||||
@BeforeClass
|
||||
public static void beforeClass() throws Exception {
|
||||
|
|
|
@ -10,10 +10,8 @@
|
|||
*******************************************************************************/
|
||||
package com.ibm.wala.core.tests.cfg.exc.intra;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.Assert;
|
||||
|
@ -38,7 +36,6 @@ import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
|||
import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
|
||||
import com.ibm.wala.ssa.IR;
|
||||
import com.ibm.wala.ssa.ISSABasicBlock;
|
||||
import com.ibm.wala.ssa.SSACFG;
|
||||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.ssa.SSAReturnInstruction;
|
||||
import com.ibm.wala.ssa.analysis.IExplodedBasicBlock;
|
||||
|
|
|
@ -56,7 +56,6 @@ import com.ibm.wala.demandpa.alg.statemachine.StateMachineFactory;
|
|||
import com.ibm.wala.demandpa.flowgraph.IFlowLabel;
|
||||
import com.ibm.wala.demandpa.util.MemoryAccessMap;
|
||||
import com.ibm.wala.demandpa.util.PABasedMemoryAccessMap;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
@ -64,6 +63,7 @@ import com.ibm.wala.ipa.callgraph.CGNode;
|
|||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.HeapModel;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
|
||||
|
@ -235,7 +235,7 @@ public abstract class AbstractPtrTest {
|
|||
Iterable<Entrypoint> entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha, mainClass);
|
||||
AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints);
|
||||
|
||||
final AnalysisCache analysisCache = new AnalysisCacheImpl();
|
||||
final IAnalysisCacheView analysisCache = new AnalysisCacheImpl();
|
||||
CallGraphBuilder cgBuilder = Util.makeZeroCFABuilder(options, analysisCache, cha, scope);
|
||||
final CallGraph cg = cgBuilder.makeCallGraph(options, null);
|
||||
// System.err.println(cg.toString());
|
||||
|
|
|
@ -16,7 +16,6 @@ import com.ibm.wala.analysis.exceptionanalysis.ExceptionAnalysis;
|
|||
import com.ibm.wala.analysis.exceptionanalysis.ExceptionAnalysis2EdgeFilter;
|
||||
import com.ibm.wala.cfg.ControlFlowGraph;
|
||||
import com.ibm.wala.core.tests.util.TestConstants;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
@ -25,6 +24,7 @@ import com.ibm.wala.ipa.callgraph.CallGraph;
|
|||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphBuilderCancelException;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis;
|
||||
|
@ -81,7 +81,7 @@ public class ExceptionAnalysis2EdgeFilterTest {
|
|||
options.getSSAOptions().setPiNodePolicy(new AllIntegerDueToBranchePiPolicy());
|
||||
|
||||
ReferenceCleanser.registerClassHierarchy(cha);
|
||||
AnalysisCache cache = new AnalysisCacheImpl();
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl();
|
||||
ReferenceCleanser.registerCache(cache);
|
||||
CallGraphBuilder builder = Util.makeZeroCFABuilder(options, cache, cha, scope);
|
||||
cg = builder.makeCallGraph(options, null);
|
||||
|
|
|
@ -18,7 +18,6 @@ import com.ibm.wala.analysis.exceptionanalysis.ExceptionAnalysis;
|
|||
import com.ibm.wala.analysis.exceptionanalysis.IntraproceduralExceptionAnalysis;
|
||||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
import com.ibm.wala.core.tests.util.TestConstants;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
@ -27,6 +26,7 @@ import com.ibm.wala.ipa.callgraph.CallGraph;
|
|||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphBuilderCancelException;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis;
|
||||
|
@ -75,7 +75,7 @@ public class ExceptionAnalysisTest {
|
|||
options.getSSAOptions().setPiNodePolicy(new AllIntegerDueToBranchePiPolicy());
|
||||
|
||||
ReferenceCleanser.registerClassHierarchy(cha);
|
||||
AnalysisCache cache = new AnalysisCacheImpl();
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl();
|
||||
ReferenceCleanser.registerCache(cache);
|
||||
CallGraphBuilder builder = Util.makeZeroCFABuilder(options, cache, cha, scope);
|
||||
cg = builder.makeCallGraph(options, null);
|
||||
|
|
|
@ -19,7 +19,6 @@ import com.ibm.wala.cfg.ControlFlowGraph;
|
|||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.classLoader.Language;
|
||||
import com.ibm.wala.core.tests.util.WalaTestCase;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Everywhere;
|
||||
|
@ -68,9 +67,9 @@ public class CFGTest extends WalaTestCase {
|
|||
Assertions.UNREACHABLE("could not resolve " + mr);
|
||||
}
|
||||
AnalysisOptions options = new AnalysisOptions();
|
||||
AnalysisCache cache = makeAnalysisCache();
|
||||
options.getSSAOptions().setPiNodePolicy(SSAOptions.getAllBuiltInPiNodes());
|
||||
IR ir = cache.getSSACache().findOrCreateIR(m, Everywhere.EVERYWHERE, options.getSSAOptions());
|
||||
IAnalysisCacheView cache = makeAnalysisCache(options.getSSAOptions());
|
||||
IR ir = cache.getIR(m, Everywhere.EVERYWHERE);
|
||||
|
||||
ControlFlowGraph<SSAInstruction, ISSABasicBlock> cfg = ir.getControlFlowGraph();
|
||||
try {
|
||||
|
@ -112,9 +111,9 @@ public class CFGTest extends WalaTestCase {
|
|||
MethodReference mr = StringStuff.makeMethodReference("hello.Hello.main([Ljava/lang/String;)V");
|
||||
|
||||
IMethod m = cha.resolveMethod(mr);
|
||||
AnalysisCache cache = makeAnalysisCache();
|
||||
IAnalysisCacheView cache = makeAnalysisCache();
|
||||
IR irBefore = cache.getIR(m);
|
||||
cache.getSSACache().wipe();
|
||||
cache.clear();
|
||||
IR irAfter = cache.getIR(m);
|
||||
for (int i = 0; i < irBefore.getInstructions().length; i++) {
|
||||
System.out.println(irBefore.getInstructions()[i]);
|
||||
|
|
|
@ -18,9 +18,9 @@ import org.junit.Test;
|
|||
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.core.tests.util.WalaTestCase;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Everywhere;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
|
@ -61,12 +61,12 @@ public class DeterministicIRTest extends WalaTestCase {
|
|||
* @param method
|
||||
*/
|
||||
private IR doMethod(MethodReference method) {
|
||||
AnalysisCache cache = makeAnalysisCache();
|
||||
IAnalysisCacheView cache = makeAnalysisCache();
|
||||
Assert.assertNotNull("method not found", method);
|
||||
IMethod imethod = cha.resolveMethod(method);
|
||||
Assert.assertNotNull("imethod not found", imethod);
|
||||
IR ir1 = cache.getIRFactory().makeIR(imethod, Everywhere.EVERYWHERE, options.getSSAOptions());
|
||||
cache.getSSACache().wipe();
|
||||
cache.clear();
|
||||
|
||||
checkNotAllNull(ir1.getInstructions());
|
||||
checkNoneNull(ir1.iterateAllInstructions());
|
||||
|
@ -79,7 +79,7 @@ public class DeterministicIRTest extends WalaTestCase {
|
|||
}
|
||||
|
||||
IR ir2 = cache.getIRFactory().makeIR(imethod, Everywhere.EVERYWHERE, options.getSSAOptions());
|
||||
cache.getSSACache().wipe();
|
||||
cache.clear();
|
||||
|
||||
try {
|
||||
GraphIntegrity.check(ir2.getControlFlowGraph());
|
||||
|
|
|
@ -21,10 +21,10 @@ import com.ibm.wala.classLoader.IClass;
|
|||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.core.tests.util.TestConstants;
|
||||
import com.ibm.wala.core.tests.util.WalaTestCase;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Everywhere;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchy;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||
|
@ -57,8 +57,6 @@ public class LocalNamesTest extends WalaTestCase {
|
|||
|
||||
private static AnalysisOptions options;
|
||||
|
||||
private static AnalysisCache cache;
|
||||
|
||||
public static void main(String[] args) {
|
||||
justThisTest(LocalNamesTest.class);
|
||||
}
|
||||
|
@ -73,7 +71,6 @@ public class LocalNamesTest extends WalaTestCase {
|
|||
(new FileProvider()).getFile("J2SEClassHierarchyExclusions.txt"), MY_CLASSLOADER);
|
||||
|
||||
options = new AnalysisOptions(scope, null);
|
||||
cache = new AnalysisCacheImpl();
|
||||
ClassLoaderFactory factory = new ClassLoaderFactoryImpl(scope.getExclusions());
|
||||
|
||||
try {
|
||||
|
@ -93,7 +90,6 @@ public class LocalNamesTest extends WalaTestCase {
|
|||
scope = null;
|
||||
cha = null;
|
||||
options = null;
|
||||
cache = null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -113,7 +109,10 @@ public class LocalNamesTest extends WalaTestCase {
|
|||
|
||||
AnalysisOptions options = new AnalysisOptions();
|
||||
options.getSSAOptions().setPiNodePolicy(SSAOptions.getAllBuiltInPiNodes());
|
||||
IR ir = cache.getSSACache().findOrCreateIR(m, Everywhere.EVERYWHERE, options.getSSAOptions());
|
||||
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl(options.getSSAOptions());
|
||||
|
||||
IR ir = cache.getIR(m, Everywhere.EVERYWHERE);
|
||||
|
||||
for (int offsetIndex = 0; offsetIndex < ir.getInstructions().length; offsetIndex++) {
|
||||
SSAInstruction instr = ir.getInstructions()[offsetIndex];
|
||||
|
@ -141,6 +140,7 @@ public class LocalNamesTest extends WalaTestCase {
|
|||
Assert.assertNotNull("method not found", mref);
|
||||
IMethod imethod = cha.resolveMethod(mref);
|
||||
Assert.assertNotNull("imethod not found", imethod);
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl(options.getSSAOptions());
|
||||
IR ir = cache.getIRFactory().makeIR(imethod, Everywhere.EVERYWHERE, options.getSSAOptions());
|
||||
options.getSSAOptions().setPiNodePolicy(save);
|
||||
|
||||
|
@ -170,6 +170,7 @@ public class LocalNamesTest extends WalaTestCase {
|
|||
Assert.assertNotNull("method not found", mref);
|
||||
IMethod imethod = cha.resolveMethod(mref);
|
||||
Assert.assertNotNull("imethod not found", imethod);
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl(options.getSSAOptions());
|
||||
IR ir = cache.getIRFactory().makeIR(imethod, Everywhere.EVERYWHERE, options.getSSAOptions());
|
||||
options.getSSAOptions().setPiNodePolicy(save);
|
||||
|
||||
|
|
|
@ -19,12 +19,13 @@ import org.junit.runner.JUnitCore;
|
|||
|
||||
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
|
||||
import com.ibm.wala.core.tests.ir.AnnotationTest;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.ssa.SSAOptions;
|
||||
import com.ibm.wala.util.config.AnalysisScopeReader;
|
||||
import com.ibm.wala.util.heapTrace.HeapTracer;
|
||||
import com.ibm.wala.util.io.FileProvider;
|
||||
|
@ -67,8 +68,12 @@ public abstract class WalaTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
protected AnalysisCache makeAnalysisCache() {
|
||||
return new AnalysisCacheImpl();
|
||||
protected IAnalysisCacheView makeAnalysisCache() {
|
||||
return makeAnalysisCache(SSAOptions.defaultOptions());
|
||||
}
|
||||
|
||||
protected IAnalysisCacheView makeAnalysisCache(SSAOptions ssaOptions) {
|
||||
return new AnalysisCacheImpl(ssaOptions);
|
||||
}
|
||||
|
||||
public static IClassHierarchy makeCHA() throws IOException, ClassHierarchyException {
|
||||
|
|
|
@ -14,10 +14,10 @@ import java.io.IOException;
|
|||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Everywhere;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchy;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||
|
@ -68,16 +68,16 @@ public class ConstructAllIRs {
|
|||
|
||||
// register class hierarchy and AnalysisCache with the reference cleanser, so that their soft references are appropriately wiped
|
||||
ReferenceCleanser.registerClassHierarchy(cha);
|
||||
AnalysisCache cache = new AnalysisCacheImpl();
|
||||
ReferenceCleanser.registerCache(cache);
|
||||
AnalysisOptions options = new AnalysisOptions();
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl(options.getSSAOptions());
|
||||
ReferenceCleanser.registerCache(cache);
|
||||
|
||||
System.out.print("building IRs...");
|
||||
for (IClass klass : cha) {
|
||||
for (IMethod method : klass.getDeclaredMethods()) {
|
||||
wipeSoftCaches();
|
||||
// construct an IR; it will be cached
|
||||
cache.getSSACache().findOrCreateIR(method, Everywhere.EVERYWHERE, options.getSSAOptions());
|
||||
cache.getIR(method, Everywhere.EVERYWHERE);
|
||||
}
|
||||
}
|
||||
System.out.println("done");
|
||||
|
|
|
@ -24,7 +24,6 @@ import com.ibm.wala.classLoader.IField;
|
|||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.classLoader.JarFileModule;
|
||||
import com.ibm.wala.client.AbstractAnalysisEngine;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
|
|
|
@ -18,10 +18,10 @@ import com.ibm.wala.cfg.cdg.ControlDependenceGraph;
|
|||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
|
||||
import com.ibm.wala.examples.properties.WalaExamplesProperties;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Everywhere;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchy;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
|
||||
|
@ -101,8 +101,8 @@ public class PDFControlDependenceGraph {
|
|||
}
|
||||
AnalysisOptions options = new AnalysisOptions();
|
||||
options.getSSAOptions().setPiNodePolicy(SSAOptions.getAllBuiltInPiNodes());
|
||||
AnalysisCache cache = new AnalysisCacheImpl();
|
||||
IR ir = cache.getSSACache().findOrCreateIR(m, Everywhere.EVERYWHERE, options.getSSAOptions() );
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl(options.getSSAOptions());
|
||||
IR ir = cache.getIR(m, Everywhere.EVERYWHERE );
|
||||
|
||||
if (ir == null) {
|
||||
Assertions.UNREACHABLE("Null IR for " + m);
|
||||
|
|
|
@ -17,10 +17,10 @@ import java.util.Properties;
|
|||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.core.tests.callGraph.CallGraphTestUtil;
|
||||
import com.ibm.wala.examples.properties.WalaExamplesProperties;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Everywhere;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchy;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
|
||||
|
@ -96,10 +96,10 @@ public class PDFWalaIR {
|
|||
options.getSSAOptions().setPiNodePolicy(SSAOptions.getAllBuiltInPiNodes());
|
||||
|
||||
// Create an object which caches IRs and related information, reconstructing them lazily on demand.
|
||||
AnalysisCache cache = new AnalysisCacheImpl();
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl(options.getSSAOptions());
|
||||
|
||||
// Build the IR and cache it.
|
||||
IR ir = cache.getSSACache().findOrCreateIR(m, Everywhere.EVERYWHERE, options.getSSAOptions());
|
||||
IR ir = cache.getIR(m, Everywhere.EVERYWHERE);
|
||||
|
||||
if (ir == null) {
|
||||
Assertions.UNREACHABLE("Null IR for " + m);
|
||||
|
|
|
@ -18,7 +18,6 @@ import java.util.Properties;
|
|||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
@ -27,6 +26,7 @@ import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
|||
import com.ibm.wala.ipa.callgraph.CallGraphBuilderCancelException;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphStats;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.DefaultEntrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyException;
|
||||
|
@ -80,7 +80,7 @@ public class ScopeFileCallGraph {
|
|||
options.setEntrypoints(entrypoints);
|
||||
// you can dial down reflection handling if you like
|
||||
// options.setReflectionOptions(ReflectionOptions.NONE);
|
||||
AnalysisCache cache = new AnalysisCacheImpl();
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl();
|
||||
// other builders can be constructed with different Util methods
|
||||
CallGraphBuilder builder = Util.makeZeroOneContainerCFABuilder(options, cache, cha, scope);
|
||||
// CallGraphBuilder builder = Util.makeNCFABuilder(2, options, cache, cha, scope);
|
||||
|
|
|
@ -27,7 +27,6 @@ import com.ibm.wala.classLoader.IClass;
|
|||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.classLoader.SyntheticMethod;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter;
|
||||
|
|
|
@ -32,7 +32,6 @@ import com.ibm.wala.classLoader.IClass;
|
|||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.classLoader.SyntheticMethod;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.Context;
|
||||
|
|
|
@ -16,7 +16,6 @@ import com.ibm.wala.cfg.ControlFlowGraph;
|
|||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
|
|
|
@ -21,7 +21,6 @@ import com.ibm.wala.classLoader.ClassLoaderFactory;
|
|||
import com.ibm.wala.classLoader.ClassLoaderFactoryImpl;
|
||||
import com.ibm.wala.classLoader.JarFileModule;
|
||||
import com.ibm.wala.classLoader.Module;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
|
|
@ -24,7 +24,7 @@ import com.ibm.wala.util.ref.ReferenceCleanser;
|
|||
*
|
||||
* Someday this should maybe go away?
|
||||
*/
|
||||
public class AnalysisCache implements IAnalysisCacheView {
|
||||
class AnalysisCache implements IAnalysisCacheView {
|
||||
private final IRFactory<IMethod> irFactory;
|
||||
|
||||
private final SSACache ssaCache;
|
||||
|
@ -89,4 +89,9 @@ public class AnalysisCache implements IAnalysisCacheView {
|
|||
}
|
||||
return ssaCache.findOrCreateDU(ir, Everywhere.EVERYWHERE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
ssaCache.wipe();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,6 +23,10 @@ public class AnalysisCacheImpl extends AnalysisCache {
|
|||
super(irFactory, ssaOptions, new SSACache(irFactory, new AuxiliaryCache(), new AuxiliaryCache()));
|
||||
}
|
||||
|
||||
public AnalysisCacheImpl(SSAOptions ssaOptions) {
|
||||
this(new DefaultIRFactory(), ssaOptions);
|
||||
}
|
||||
|
||||
public AnalysisCacheImpl(IRFactory<IMethod> irFactory) {
|
||||
this(irFactory, new AnalysisOptions().getSSAOptions());
|
||||
}
|
||||
|
|
|
@ -35,4 +35,6 @@ public interface IAnalysisCacheView {
|
|||
|
||||
IR getIR(IMethod method, Context context);
|
||||
|
||||
void clear();
|
||||
|
||||
}
|
|
@ -29,7 +29,6 @@ import com.ibm.wala.ipa.cha.IClassHierarchy;
|
|||
import com.ibm.wala.shrikeBT.BytecodeConstants;
|
||||
import com.ibm.wala.ssa.DefUse;
|
||||
import com.ibm.wala.ssa.IR;
|
||||
import com.ibm.wala.ssa.IRView;
|
||||
import com.ibm.wala.ssa.ISSABasicBlock;
|
||||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
|
|
|
@ -20,7 +20,6 @@ import java.util.Set;
|
|||
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
|
@ -317,7 +316,7 @@ public class Util {
|
|||
* @param cha governing class hierarchy
|
||||
* @param scope representation of the analysis scope
|
||||
*/
|
||||
public static CallGraphBuilder makeRTABuilder(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha,
|
||||
public static CallGraphBuilder makeRTABuilder(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha,
|
||||
AnalysisScope scope) {
|
||||
|
||||
addDefaultSelectors(options, cha);
|
||||
|
@ -365,7 +364,7 @@ public class Util {
|
|||
* @param cha governing class hierarchy
|
||||
* @param scope representation of the analysis scope
|
||||
*/
|
||||
public static SSAPropagationCallGraphBuilder makeZeroOneCFABuilder(AnalysisOptions options, AnalysisCache cache,
|
||||
public static SSAPropagationCallGraphBuilder makeZeroOneCFABuilder(AnalysisOptions options, IAnalysisCacheView cache,
|
||||
IClassHierarchy cha, AnalysisScope scope) {
|
||||
return makeZeroOneCFABuilder(options, cache, cha, scope, null, null);
|
||||
}
|
||||
|
@ -379,7 +378,7 @@ public class Util {
|
|||
* @return a 0-1-CFA Call Graph Builder.
|
||||
* @throws IllegalArgumentException if options is null
|
||||
*/
|
||||
public static SSAPropagationCallGraphBuilder makeVanillaZeroOneCFABuilder(AnalysisOptions options, AnalysisCache cache,
|
||||
public static SSAPropagationCallGraphBuilder makeVanillaZeroOneCFABuilder(AnalysisOptions options, IAnalysisCacheView analysisCache,
|
||||
IClassHierarchy cha, AnalysisScope scope, ContextSelector customSelector, SSAContextInterpreter customInterpreter) {
|
||||
|
||||
if (options == null) {
|
||||
|
@ -388,7 +387,7 @@ public class Util {
|
|||
addDefaultSelectors(options, cha);
|
||||
addDefaultBypassLogic(options, scope, Util.class.getClassLoader(), cha);
|
||||
|
||||
return ZeroXCFABuilder.make(cha, options, cache, customSelector, customInterpreter, ZeroXInstanceKeys.ALLOCATIONS | ZeroXInstanceKeys.CONSTANT_SPECIFIC);
|
||||
return ZeroXCFABuilder.make(cha, options, analysisCache, customSelector, customInterpreter, ZeroXInstanceKeys.ALLOCATIONS | ZeroXInstanceKeys.CONSTANT_SPECIFIC);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -398,9 +397,9 @@ public class Util {
|
|||
* @param cha governing class hierarchy
|
||||
* @param scope representation of the analysis scope
|
||||
*/
|
||||
public static SSAPropagationCallGraphBuilder makeVanillaZeroOneCFABuilder(AnalysisOptions options, AnalysisCache cache,
|
||||
public static SSAPropagationCallGraphBuilder makeVanillaZeroOneCFABuilder(AnalysisOptions options, IAnalysisCacheView analysisCache,
|
||||
IClassHierarchy cha, AnalysisScope scope) {
|
||||
return makeVanillaZeroOneCFABuilder(options, cache, cha, scope, null, null);
|
||||
return makeVanillaZeroOneCFABuilder(options, analysisCache, cha, scope, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -412,7 +411,7 @@ public class Util {
|
|||
* @return a 0-1-CFA Call Graph Builder.
|
||||
* @throws IllegalArgumentException if options is null
|
||||
*/
|
||||
public static SSAPropagationCallGraphBuilder makeZeroOneCFABuilder(AnalysisOptions options, AnalysisCache cache,
|
||||
public static SSAPropagationCallGraphBuilder makeZeroOneCFABuilder(AnalysisOptions options, IAnalysisCacheView cache,
|
||||
IClassHierarchy cha, AnalysisScope scope, ContextSelector customSelector, SSAContextInterpreter customInterpreter) {
|
||||
|
||||
if (options == null) {
|
||||
|
@ -432,7 +431,7 @@ public class Util {
|
|||
* @return a 0-CFA Call Graph Builder augmented with extra logic for containers
|
||||
* @throws IllegalArgumentException if options is null
|
||||
*/
|
||||
public static SSAPropagationCallGraphBuilder makeZeroContainerCFABuilder(AnalysisOptions options, AnalysisCache cache,
|
||||
public static SSAPropagationCallGraphBuilder makeZeroContainerCFABuilder(AnalysisOptions options, IAnalysisCacheView cache,
|
||||
IClassHierarchy cha, AnalysisScope scope) {
|
||||
|
||||
if (options == null) {
|
||||
|
@ -453,12 +452,12 @@ public class Util {
|
|||
* @return a 0-1-CFA Call Graph Builder augmented with extra logic for containers
|
||||
* @throws IllegalArgumentException if options is null
|
||||
*/
|
||||
public static SSAPropagationCallGraphBuilder makeZeroOneContainerCFABuilder(AnalysisOptions options, AnalysisCache cache,
|
||||
public static SSAPropagationCallGraphBuilder makeZeroOneContainerCFABuilder(AnalysisOptions options, IAnalysisCacheView cache,
|
||||
IClassHierarchy cha, AnalysisScope scope) {
|
||||
return makeZeroOneContainerCFABuilder(options, cache, cha, scope, null, null);
|
||||
}
|
||||
|
||||
public static SSAPropagationCallGraphBuilder makeZeroOneContainerCFABuilder(AnalysisOptions options, AnalysisCache cache,
|
||||
public static SSAPropagationCallGraphBuilder makeZeroOneContainerCFABuilder(AnalysisOptions options, IAnalysisCacheView cache,
|
||||
IClassHierarchy cha, AnalysisScope scope, ContextSelector appSelector, SSAContextInterpreter appInterpreter) {
|
||||
|
||||
if (options == null) {
|
||||
|
@ -476,7 +475,7 @@ public class Util {
|
|||
* with call-string length limited to n, and a context-sensitive
|
||||
* allocation-site-based heap abstraction.
|
||||
*/
|
||||
public static SSAPropagationCallGraphBuilder makeNCFABuilder(int n, AnalysisOptions options, AnalysisCache cache,
|
||||
public static SSAPropagationCallGraphBuilder makeNCFABuilder(int n, AnalysisOptions options, IAnalysisCacheView cache,
|
||||
IClassHierarchy cha, AnalysisScope scope) {
|
||||
if (options == null) {
|
||||
throw new IllegalArgumentException("options is null");
|
||||
|
@ -499,7 +498,7 @@ public class Util {
|
|||
* allocation-site-based heap abstraction. Standard optimizations in the heap
|
||||
* abstraction like smushing of strings are disabled.
|
||||
*/
|
||||
public static SSAPropagationCallGraphBuilder makeVanillaNCFABuilder(int n, AnalysisOptions options, AnalysisCache cache,
|
||||
public static SSAPropagationCallGraphBuilder makeVanillaNCFABuilder(int n, AnalysisOptions options, IAnalysisCacheView cache,
|
||||
IClassHierarchy cha, AnalysisScope scope) {
|
||||
if (options == null) {
|
||||
throw new IllegalArgumentException("options is null");
|
||||
|
@ -522,7 +521,7 @@ public class Util {
|
|||
* @return a 0-1-CFA Call Graph Builder augmented with extra logic for containers
|
||||
* @throws IllegalArgumentException if options is null
|
||||
*/
|
||||
public static SSAPropagationCallGraphBuilder makeVanillaZeroOneContainerCFABuilder(AnalysisOptions options, AnalysisCache cache,
|
||||
public static SSAPropagationCallGraphBuilder makeVanillaZeroOneContainerCFABuilder(AnalysisOptions options, IAnalysisCacheView cache,
|
||||
IClassHierarchy cha, AnalysisScope scope) {
|
||||
|
||||
if (options == null) {
|
||||
|
|
|
@ -23,7 +23,6 @@ import com.ibm.wala.classLoader.Language;
|
|||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.classLoader.SyntheticClass;
|
||||
import com.ibm.wala.fixpoint.UnaryOperator;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
|
|
|
@ -30,7 +30,6 @@ import com.ibm.wala.classLoader.IMethod;
|
|||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.classLoader.ProgramCounter;
|
||||
import com.ibm.wala.fixpoint.AbstractOperator;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.ContextKey;
|
||||
|
@ -45,7 +44,6 @@ import com.ibm.wala.ipa.cha.IClassHierarchy;
|
|||
import com.ibm.wala.shrikeBT.ConditionalBranchInstruction;
|
||||
import com.ibm.wala.shrikeBT.IInvokeInstruction;
|
||||
import com.ibm.wala.ssa.DefUse;
|
||||
import com.ibm.wala.ssa.IR;
|
||||
import com.ibm.wala.ssa.IRView;
|
||||
import com.ibm.wala.ssa.ISSABasicBlock;
|
||||
import com.ibm.wala.ssa.SSAAbstractInvokeInstruction;
|
||||
|
|
|
@ -12,7 +12,6 @@ package com.ibm.wala.ipa.callgraph.propagation.cfa;
|
|||
|
||||
import com.ibm.wala.cfg.ControlFlowGraph;
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
|
|
|
@ -17,7 +17,6 @@ import com.ibm.wala.cfg.ControlFlowGraph;
|
|||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
package com.ibm.wala.ipa.callgraph.propagation.cfa;
|
||||
|
||||
import com.ibm.wala.analysis.reflection.ReflectionContextInterpreter;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
|
@ -67,7 +66,7 @@ public class ZeroXCFABuilder extends SSAPropagationCallGraphBuilder {
|
|||
* @throws IllegalArgumentException if options is null
|
||||
* @throws IllegalArgumentException if xmlFiles == null
|
||||
*/
|
||||
public static SSAPropagationCallGraphBuilder make(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha,
|
||||
public static SSAPropagationCallGraphBuilder make(AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha,
|
||||
ClassLoader cl, AnalysisScope scope, String[] xmlFiles, byte instancePolicy) throws IllegalArgumentException {
|
||||
|
||||
if (xmlFiles == null) {
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
*******************************************************************************/
|
||||
package com.ibm.wala.ipa.callgraph.propagation.cfa;
|
||||
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.DelegatingContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
|
@ -29,7 +29,7 @@ public class ZeroXContainerCFABuilder extends ZeroXCFABuilder {
|
|||
* @param appContextInterpreter application-specific logic to interpret a method in context
|
||||
* @throws IllegalArgumentException if options is null
|
||||
*/
|
||||
public ZeroXContainerCFABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache,
|
||||
public ZeroXContainerCFABuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache,
|
||||
ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter, int instancePolicy) {
|
||||
|
||||
super(cha, options, cache, appContextSelector, appContextInterpreter, instancePolicy);
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
package com.ibm.wala.ipa.callgraph.propagation.cfa;
|
||||
|
||||
import com.ibm.wala.analysis.reflection.ReflectionContextInterpreter;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.DefaultContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.impl.DelegatingContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.ClassBasedInstanceKeys;
|
||||
|
@ -28,7 +28,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy;
|
|||
*/
|
||||
public class nCFABuilder extends SSAPropagationCallGraphBuilder {
|
||||
|
||||
public nCFABuilder(int n, IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, ContextSelector appContextSelector,
|
||||
public nCFABuilder(int n, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, ContextSelector appContextSelector,
|
||||
SSAContextInterpreter appContextInterpreter) {
|
||||
|
||||
super(cha, options, cache, new DefaultPointerKeyFactory());
|
||||
|
|
|
@ -20,10 +20,10 @@ import com.ibm.wala.classLoader.IClass;
|
|||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.fixpoint.UnaryOperator;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.DefaultContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.impl.DelegatingContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Everywhere;
|
||||
|
@ -97,7 +97,7 @@ public abstract class AbstractRTABuilder extends PropagationCallGraphBuilder {
|
|||
TypeReference.findOrCreate(ClassLoaderReference.Primordial, "Ljava/lang/ExceptionInInitializerError"),
|
||||
TypeReference.findOrCreate(ClassLoaderReference.Primordial, "Ljava/lang/NullPointerException") };
|
||||
|
||||
protected AbstractRTABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache,
|
||||
protected AbstractRTABuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache,
|
||||
ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter) {
|
||||
super(cha, options, cache, new DefaultPointerKeyFactory());
|
||||
setInstanceKeys(new ClassBasedInstanceKeys(options, cha));
|
||||
|
|
|
@ -19,10 +19,10 @@ import com.ibm.wala.classLoader.IMethod;
|
|||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.fixpoint.IntSetVariable;
|
||||
import com.ibm.wala.fixpoint.UnaryOperator;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph.ExplicitNode;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
|
||||
|
@ -41,7 +41,7 @@ import com.ibm.wala.util.intset.MutableIntSet;
|
|||
*/
|
||||
public class BasicRTABuilder extends AbstractRTABuilder {
|
||||
|
||||
public BasicRTABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, ContextSelector contextSelector,
|
||||
public BasicRTABuilder(IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache, ContextSelector contextSelector,
|
||||
SSAContextInterpreter contextInterpreter) {
|
||||
super(cha, options, cache, contextSelector, contextInterpreter);
|
||||
}
|
||||
|
|
|
@ -16,7 +16,6 @@ import java.util.Iterator;
|
|||
import com.ibm.wala.classLoader.CodeScanner;
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.cha.ContextInsensitiveCHAContextInterpreter;
|
||||
|
|
|
@ -16,7 +16,6 @@ import java.util.Iterator;
|
|||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
|
|
|
@ -19,9 +19,9 @@ import com.ibm.wala.classLoader.FieldImpl;
|
|||
import com.ibm.wala.classLoader.IBytecodeMethod;
|
||||
import com.ibm.wala.classLoader.ShrikeCTMethod;
|
||||
import com.ibm.wala.classLoader.ShrikeClass;
|
||||
import com.ibm.wala.shrikeCT.AnnotationsReader.AnnotationAttribute;
|
||||
import com.ibm.wala.shrikeCT.InvalidClassFileException;
|
||||
import com.ibm.wala.shrikeCT.TypeAnnotationsReader;
|
||||
import com.ibm.wala.shrikeCT.AnnotationsReader.AnnotationAttribute;
|
||||
import com.ibm.wala.shrikeCT.TypeAnnotationsReader.TargetInfo;
|
||||
import com.ibm.wala.shrikeCT.TypeAnnotationsReader.TargetType;
|
||||
import com.ibm.wala.shrikeCT.TypeAnnotationsReader.TypeAnnotationAttribute;
|
||||
|
|
|
@ -17,7 +17,8 @@ import com.ibm.wala.classLoader.IClass;
|
|||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.classLoader.ShrikeCTMethod;
|
||||
import com.ibm.wala.classLoader.ShrikeClass;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
|
||||
/**
|
||||
|
@ -33,7 +34,7 @@ public class ReferenceCleanser {
|
|||
|
||||
private static WeakReference<IClassHierarchy> cha;
|
||||
|
||||
private static WeakReference<AnalysisCache> cache;
|
||||
private static WeakReference<AnalysisCacheImpl> cache;
|
||||
|
||||
public static void registerClassHierarchy(IClassHierarchy cha) {
|
||||
ReferenceCleanser.cha = new WeakReference<IClassHierarchy>(cha);
|
||||
|
@ -47,12 +48,14 @@ public class ReferenceCleanser {
|
|||
return result;
|
||||
}
|
||||
|
||||
public static void registerCache(AnalysisCache cache) {
|
||||
ReferenceCleanser.cache = new WeakReference<AnalysisCache>(cache);
|
||||
public static void registerCache(IAnalysisCacheView cache) {
|
||||
if (cache instanceof AnalysisCacheImpl) {
|
||||
ReferenceCleanser.cache = new WeakReference<AnalysisCacheImpl>((AnalysisCacheImpl) cache);
|
||||
}
|
||||
}
|
||||
|
||||
private static AnalysisCache getAnalysisCache() {
|
||||
AnalysisCache result = null;
|
||||
private static AnalysisCacheImpl getAnalysisCache() {
|
||||
AnalysisCacheImpl result = null;
|
||||
if (cache != null) {
|
||||
result = cache.get();
|
||||
}
|
||||
|
@ -67,7 +70,7 @@ public class ReferenceCleanser {
|
|||
if (occupancy < OCCUPANCY_TRIGGER) {
|
||||
return;
|
||||
}
|
||||
AnalysisCache cache = getAnalysisCache();
|
||||
AnalysisCacheImpl cache = getAnalysisCache();
|
||||
if (cache != null) {
|
||||
cache.getSSACache().wipe();
|
||||
}
|
||||
|
|
|
@ -28,7 +28,6 @@ import com.ibm.wala.core.tests.shrike.DynamicCallGraphTestBase;
|
|||
import com.ibm.wala.dalvik.classLoader.DexIRFactory;
|
||||
import com.ibm.wala.dalvik.util.AndroidEntryPointLocator;
|
||||
import com.ibm.wala.dalvik.util.AndroidEntryPointLocator.LocatorFlags;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions.ReflectionOptions;
|
||||
|
@ -134,7 +133,7 @@ public class DalvikCallGraphTestBase extends DynamicCallGraphTestBase {
|
|||
|
||||
final IClassHierarchy cha = ClassHierarchyFactory.make(scope);
|
||||
|
||||
AnalysisCache cache = new AnalysisCacheImpl(new DexIRFactory());
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl(new DexIRFactory());
|
||||
|
||||
List<? extends Entrypoint> es = getEntrypoints(cha);
|
||||
|
||||
|
@ -176,7 +175,7 @@ public class DalvikCallGraphTestBase extends DynamicCallGraphTestBase {
|
|||
|
||||
Iterable<Entrypoint> entrypoints = Util.makeMainEntrypoints(scope, cha, mainClassName);
|
||||
|
||||
AnalysisCache cache = new AnalysisCacheImpl(new DexIRFactory());
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl(new DexIRFactory());
|
||||
|
||||
AnalysisOptions options = new AnalysisOptions(scope, entrypoints);
|
||||
|
||||
|
|
|
@ -54,27 +54,24 @@ import com.ibm.wala.cfg.ControlFlowGraph;
|
|||
import com.ibm.wala.classLoader.CallSiteReference;
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.classLoader.NewSiteReference;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter;
|
||||
import com.ibm.wala.ssa.DefUse;
|
||||
import com.ibm.wala.ssa.IR;
|
||||
import com.ibm.wala.ssa.IRView;
|
||||
import com.ibm.wala.ssa.ISSABasicBlock;
|
||||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.ssa.SSAOptions;
|
||||
import com.ibm.wala.types.FieldReference;
|
||||
|
||||
public class DexIContextInterpreter implements SSAContextInterpreter {
|
||||
|
||||
public DexIContextInterpreter(SSAOptions options, AnalysisCache cache)
|
||||
public DexIContextInterpreter(IAnalysisCacheView cache)
|
||||
{
|
||||
this.options = options;
|
||||
this.cache = cache;
|
||||
}
|
||||
|
||||
private final SSAOptions options;
|
||||
private final AnalysisCache cache;
|
||||
private final IAnalysisCacheView cache;
|
||||
|
||||
|
||||
public boolean understands(CGNode node) {
|
||||
|
@ -116,7 +113,7 @@ public class DexIContextInterpreter implements SSAContextInterpreter {
|
|||
|
||||
public IR getIR(CGNode node) {
|
||||
// new Exception("getting IR for method "+node.getMethod().getReference().toString()).printStackTrace();
|
||||
return cache.getSSACache().findOrCreateIR(node.getMethod(), node.getContext(), options);
|
||||
return cache.getIR(node.getMethod(), node.getContext());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -125,7 +122,7 @@ public class DexIContextInterpreter implements SSAContextInterpreter {
|
|||
}
|
||||
|
||||
public DefUse getDU(CGNode node) {
|
||||
return cache.getSSACache().findOrCreateDU(getIR(node), node.getContext());
|
||||
return cache.getDefUse(getIR(node));
|
||||
// return new DefUse(getIR(node));
|
||||
}
|
||||
|
||||
|
|
|
@ -65,7 +65,6 @@ import com.ibm.wala.types.TypeName;
|
|||
import com.ibm.wala.types.TypeReference;
|
||||
import com.ibm.wala.util.CancelException;
|
||||
import com.ibm.wala.util.ssa.ParameterAccessor;
|
||||
import com.ibm.wala.util.ssa.ParameterAccessor.Parameter;
|
||||
import com.ibm.wala.util.ssa.SSAValue;
|
||||
import com.ibm.wala.util.ssa.SSAValueManager;
|
||||
import com.ibm.wala.util.ssa.TypeSafeInstructionFactory;
|
||||
|
|
|
@ -47,9 +47,9 @@
|
|||
package com.ibm.wala.dalvik.ipa.callgraph.propagation.cfa;
|
||||
|
||||
import com.ibm.wala.dalvik.ipa.callgraph.impl.DexExplicitCallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.InstanceKeyFactory;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter;
|
||||
|
@ -67,7 +67,7 @@ public class DexSSAPropagationCallGraphBuilder extends
|
|||
|
||||
|
||||
public DexSSAPropagationCallGraphBuilder(IClassHierarchy cha,
|
||||
AnalysisOptions options, AnalysisCache cache,
|
||||
AnalysisOptions options, IAnalysisCacheView cache,
|
||||
ContextSelector appContextSelector,
|
||||
SSAContextInterpreter appContextInterpreter, InstanceKeyFactory instanceKeys) {
|
||||
super(cha, options, cache, new DefaultPointerKeyFactory());
|
||||
|
|
|
@ -61,7 +61,6 @@ import com.ibm.wala.demandpa.alg.statemachine.StateMachineFactory;
|
|||
import com.ibm.wala.demandpa.flowgraph.IFlowLabel;
|
||||
import com.ibm.wala.demandpa.util.MemoryAccessMap;
|
||||
import com.ibm.wala.demandpa.util.SimpleMemoryAccessMap;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
@ -71,6 +70,7 @@ import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
|||
import com.ibm.wala.ipa.callgraph.CallGraphBuilderCancelException;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphStats;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.HeapModel;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.InstanceKey;
|
||||
|
@ -186,7 +186,7 @@ public class DemandCastChecker {
|
|||
throws IllegalArgumentException, CancelException {
|
||||
CallGraph retCG = null;
|
||||
PointerAnalysis retPA = null;
|
||||
final AnalysisCache cache = new AnalysisCacheImpl();
|
||||
final IAnalysisCacheView cache = new AnalysisCacheImpl();
|
||||
CallGraphBuilder builder;
|
||||
if (CHEAP_CG) {
|
||||
builder = Util.makeZeroCFABuilder(options, cache, cha, scope);
|
||||
|
|
|
@ -53,7 +53,6 @@ import com.ibm.wala.ide.util.EclipseProjectPath;
|
|||
import com.ibm.wala.ide.util.EclipseProjectPath.AnalysisScopeType;
|
||||
import com.ibm.wala.ide.util.JavaEclipseProjectPath;
|
||||
import com.ibm.wala.ide.util.JdtUtil;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
|
|
@ -42,7 +42,6 @@ import com.ibm.wala.classLoader.ClassLoaderFactory;
|
|||
import com.ibm.wala.classLoader.IMethod;
|
||||
import com.ibm.wala.ide.client.EclipseProjectSourceAnalysisEngine;
|
||||
import com.ibm.wala.ide.util.JavaScriptEclipseProjectPath;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
|
|
@ -18,7 +18,6 @@ import com.ibm.wala.core.tests.util.TestConstants;
|
|||
import com.ibm.wala.dataflow.IFDS.TabulationResult;
|
||||
import com.ibm.wala.examples.analysis.dataflow.ContextSensitiveReachingDefs;
|
||||
import com.ibm.wala.ide.ui.IFDSExplorer;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
|
@ -27,6 +26,7 @@ import com.ibm.wala.ipa.callgraph.CallGraph;
|
|||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphBuilderCancelException;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
import com.ibm.wala.ipa.cfg.BasicBlockInContext;
|
||||
import com.ibm.wala.ipa.cha.ClassHierarchyFactory;
|
||||
|
@ -59,7 +59,7 @@ public class IFDSExplorerExample {
|
|||
Iterable<Entrypoint> entrypoints = com.ibm.wala.ipa.callgraph.impl.Util.makeMainEntrypoints(scope, cha,
|
||||
"Ldataflow/StaticDataflow");
|
||||
AnalysisOptions options = CallGraphTestUtil.makeAnalysisOptions(scope, entrypoints);
|
||||
AnalysisCache cache = new AnalysisCacheImpl();
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl();
|
||||
CallGraphBuilder builder = Util.makeZeroOneCFABuilder(options, cache, cha, scope);
|
||||
System.out.println("building CG");
|
||||
CallGraph cg = builder.makeCallGraph(options, null);
|
||||
|
|
|
@ -21,7 +21,6 @@ import org.eclipse.core.runtime.IPath;
|
|||
|
||||
import com.ibm.wala.client.AbstractAnalysisEngine;
|
||||
import com.ibm.wala.ide.util.EclipseProjectPath;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraphBuilder;
|
||||
|
|
|
@ -65,12 +65,13 @@ import com.google.common.collect.Lists;
|
|||
import com.google.common.collect.Queues;
|
||||
import com.ibm.wala.classLoader.IClass;
|
||||
import com.ibm.wala.dalvik.util.AndroidAnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.ClassTargetSelector;
|
||||
import com.ibm.wala.ipa.callgraph.ContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
|
||||
import com.ibm.wala.ipa.callgraph.MethodTargetSelector;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Util;
|
||||
import com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter;
|
||||
|
@ -154,7 +155,7 @@ public class AndroidAnalysisContext {
|
|||
}
|
||||
|
||||
public static SSAPropagationCallGraphBuilder makeVanillaZeroOneCFABuilder(
|
||||
AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha,
|
||||
AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha,
|
||||
AnalysisScope scope, ContextSelector customSelector,
|
||||
SSAContextInterpreter customInterpreter,
|
||||
InputStream summariesStream, MethodSummary extraSummary) {
|
||||
|
@ -192,12 +193,12 @@ public class AndroidAnalysisContext {
|
|||
* TODO: move
|
||||
*/
|
||||
public static SSAPropagationCallGraphBuilder makeZeroCFABuilder(
|
||||
AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha,
|
||||
AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha,
|
||||
AnalysisScope scope, ContextSelector customSelector,
|
||||
SSAContextInterpreter customInterpreter,
|
||||
InputStream summariesStream, MethodSummary extraSummary) {
|
||||
List<InputStream> arrayList, MethodSummary extraSummary) {
|
||||
return makeZeroCFABuilder(options, cache, cha, scope,
|
||||
customSelector, customInterpreter, Lists.newArrayList(summariesStream),
|
||||
customSelector, customInterpreter, Lists.newArrayList(arrayList),
|
||||
extraSummary);
|
||||
}
|
||||
|
||||
|
@ -219,7 +220,7 @@ public class AndroidAnalysisContext {
|
|||
* TODO: move
|
||||
*/
|
||||
public static SSAPropagationCallGraphBuilder makeZeroCFABuilder(
|
||||
AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha,
|
||||
AnalysisOptions options, IAnalysisCacheView cache, IClassHierarchy cha,
|
||||
AnalysisScope scope, ContextSelector customSelector,
|
||||
SSAContextInterpreter customInterpreter,
|
||||
Collection<InputStream> summariesStreams, MethodSummary extraSummary) {
|
||||
|
|
|
@ -70,13 +70,13 @@ import com.ibm.wala.classLoader.IMethod;
|
|||
import com.ibm.wala.dalvik.classLoader.DexIRFactory;
|
||||
import com.ibm.wala.dataflow.IFDS.ICFGSupergraph;
|
||||
import com.ibm.wala.dataflow.IFDS.ISupergraph;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCache;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisCacheImpl;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisOptions;
|
||||
import com.ibm.wala.ipa.callgraph.AnalysisScope;
|
||||
import com.ibm.wala.ipa.callgraph.CGNode;
|
||||
import com.ibm.wala.ipa.callgraph.CallGraph;
|
||||
import com.ibm.wala.ipa.callgraph.Entrypoint;
|
||||
import com.ibm.wala.ipa.callgraph.IAnalysisCacheView;
|
||||
import com.ibm.wala.ipa.callgraph.impl.DefaultContextSelector;
|
||||
import com.ibm.wala.ipa.callgraph.impl.Everywhere;
|
||||
import com.ibm.wala.ipa.callgraph.impl.PartialCallGraph;
|
||||
|
@ -145,7 +145,7 @@ public class CGAnalysisContext<E extends ISSABasicBlock> {
|
|||
}
|
||||
analysisOptions.setReflectionOptions(options.getReflectionOptions());
|
||||
|
||||
AnalysisCache cache = new AnalysisCacheImpl((IRFactory<IMethod>) new DexIRFactory());
|
||||
IAnalysisCacheView cache = new AnalysisCacheImpl((IRFactory<IMethod>) new DexIRFactory());
|
||||
|
||||
SSAPropagationCallGraphBuilder cgb;
|
||||
|
||||
|
|
Loading…
Reference in New Issue