Class DemandRefinementPointsTo.PointsToComputer

    • Method Detail

      • getComputedP2Set

        public java.util.Collection<InstanceKeyAndState> getComputedP2Set​(PointerKeyAndState queried)
        get a points-to set that has already been computed via some previous call to compute(); does _not_ do any fresh demand-driven computation.
      • compute

        protected void compute()
      • worklistLoop

        protected void worklistLoop()
      • matchingPToQueried

        protected java.util.Collection<PointerKeyAndState> matchingPToQueried​(PointerKeyAndState curPkAndState,
                                                                              PointerKey predPk,
                                                                              IFlowLabel label)
        Parameters:
        label - the label of the edge from curPk to predPk (must be barred)
        Returns:
        those PointerKeyAndStates whose points-to sets have been queried, such that the PointerKey is predPk, and transitioning from its state on label.bar() yields the state of curPkAndState
      • addToTrackedPToWorklist

        protected void addToTrackedPToWorklist​(PointerKeyAndState pkAndState)
      • calleeSubGraphMissingAndShouldNotBeAdded

        protected boolean calleeSubGraphMissingAndShouldNotBeAdded​(boolean addGraphs,
                                                                   CGNode callee,
                                                                   PointerKeyAndState pkAndState)
        when doing backward interprocedural propagation, is it true that we should not add a graph representation for a callee _and_ that the subgraph for the callee is missing?
        Parameters:
        addGraphs - whether graphs should always be added
      • handleTrackedPointsToWorklist

        public void handleTrackedPointsToWorklist()
      • makePassOverFieldStmts

        public void makePassOverFieldStmts()
      • findOrCreate

        protected <K> com.ibm.wala.util.intset.MutableIntSet findOrCreate​(java.util.Map<K,​com.ibm.wala.util.intset.MutableIntSet> M,
                                                                          K key)
      • find

        protected <K> com.ibm.wala.util.intset.MutableIntSet find​(java.util.Map<K,​com.ibm.wala.util.intset.MutableIntSet> M,
                                                                  K key)
      • handleTrackedPred

        protected boolean handleTrackedPred​(com.ibm.wala.util.intset.MutableIntSet curTrackedSet,
                                            PointerKeyAndState predPkAndState,
                                            IFlowLabel label)
        Handle a predecessor when processing some tracked locations
        Parameters:
        curTrackedSet - the tracked locations
        predPkAndState - the predecessor