soot.jimple.spark.solver
Class PropAlias

java.lang.Object
  extended by soot.jimple.spark.solver.Propagator
      extended by soot.jimple.spark.solver.PropAlias

public final class PropAlias
extends Propagator

Propagates points-to sets along pointer assignment graph using a relevant aliases.

Author:
Ondrej Lhotak

Field Summary
protected  MultiMap aliasEdges
           
protected  Set<VarNode> aliasWorkList
           
protected  Set<FieldRefNode> fieldRefWorkList
           
protected  MultiMap fieldToBase
           
protected  LargeNumberedMap loadSets
           
protected  OnFlyCallGraph ofcg
           
protected  Set<FieldRefNode> outFieldRefWorkList
           
protected  PAG pag
           
protected  Set<VarNode> varNodeWorkList
           
 
Constructor Summary
PropAlias(PAG pag)
           
 
Method Summary
protected  PointsToSetInternal getP2Set(FieldRefNode n)
           
protected  boolean handleAllocNode(AllocNode src)
          Propagates new points-to information of node src to all its successors.
protected  boolean handleVarNode(VarNode src)
          Propagates new points-to information of node src to all its successors.
protected  PointsToSetInternal makeP2Set(FieldRefNode n)
           
 void propagate()
          Actually does the propagation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

varNodeWorkList

protected final Set<VarNode> varNodeWorkList

aliasWorkList

protected Set<VarNode> aliasWorkList

fieldRefWorkList

protected Set<FieldRefNode> fieldRefWorkList

outFieldRefWorkList

protected Set<FieldRefNode> outFieldRefWorkList

pag

protected PAG pag

fieldToBase

protected MultiMap fieldToBase

aliasEdges

protected MultiMap aliasEdges

loadSets

protected LargeNumberedMap loadSets

ofcg

protected OnFlyCallGraph ofcg
Constructor Detail

PropAlias

public PropAlias(PAG pag)
Method Detail

propagate

public final void propagate()
Actually does the propagation.

Specified by:
propagate in class Propagator

handleAllocNode

protected final boolean handleAllocNode(AllocNode src)
Propagates new points-to information of node src to all its successors.


handleVarNode

protected final boolean handleVarNode(VarNode src)
Propagates new points-to information of node src to all its successors.


makeP2Set

protected final PointsToSetInternal makeP2Set(FieldRefNode n)

getP2Set

protected final PointsToSetInternal getP2Set(FieldRefNode n)