Class WorklistBasedOptimisticCallgraphBuilder


  • public class WorklistBasedOptimisticCallgraphBuilder
    extends FieldBasedCallGraphBuilder
    Optimistic call graph builder that propagates inter-procedural data flow iteratively as call edges are discovered. Slower, but potentially more sound than PessimisticCallGraphBuilder.

    This variant uses a worklist algorithm, generally making it scale better than OptimisticCallgraphBuilder, which repeatedly runs the pessimistic algorithm.

    • Field Detail

      • ITERATION_CUTOFF

        public int ITERATION_CUTOFF
        The maximum number of iterations to perform.
    • Constructor Detail

      • WorklistBasedOptimisticCallgraphBuilder

        public WorklistBasedOptimisticCallgraphBuilder​(com.ibm.wala.ipa.cha.IClassHierarchy cha,
                                                       com.ibm.wala.ipa.callgraph.AnalysisOptions options,
                                                       com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache,
                                                       boolean supportFullPointerAnalysis,
                                                       int bound)
    • Method Detail

      • processPendingReflectiveCallWorklist

        public void processPendingReflectiveCallWorklist​(FlowGraph flowgraph,
                                                         java.util.Map<Vertex,​java.util.Set<FuncVertex>> pendingReflectiveCallWorklist,
                                                         java.util.Map<VarVertex,​com.ibm.wala.util.collections.Pair<JavaScriptInvoke,​java.lang.Boolean>> reflectiveCalleeVertices,
                                                         java.util.Set<Vertex> worklist)