beginning of points-to analysis
[IRC.git] / Robust / src / Analysis / Pointer / Delta.java
1 package Analysis.Pointer;
2 import java.util.*;
3 import Analysis.Pointer.AllocFactory.AllocNode;
4 import Analysis.Pointer.BasicBlock.BBlock;
5 import IR.Flat.*;
6
7 public class Delta {
8   HashMap<AllocNode, Vector<Edge>> heapedgeremove;
9   HashMap<TempDescriptor, Vector<Edge>> varedgeremove;
10   HashMap<AllocNode, Vector<Edge>> heapedgeadd;
11   HashMap<TempDescriptor, Vector<Edge>> varedgeadd;
12
13   boolean init;
14   BBlock block;
15
16   public Delta(BBlock block, boolean init) {
17     this.heapedgeadd=new HashMap<AllocNode, Vector<Edge>>();
18     this.varedgeadd=new HashMap<TempDescriptor, Vector<Edge>>();
19     this.heapedgeremove=new HashMap<AllocNode, Vector<Edge>>();
20     this.varedgeremove=new HashMap<TempDescriptor, Vector<Edge>>();
21     this.init=init;
22     this.block=block;
23   }
24
25   public void addHeapEdge(AllocNode node, Edge e) {
26     if (!heapedgeadd.containsKey(node))
27       heapedgeadd.put(node, new Vector<Edge>());
28     heapedgeadd.get(node).add(e);
29   }
30
31   public void addVarEdge(TempDescriptor tmp, Edge e) {
32     if (!varedgeadd.containsKey(tmp))
33       varedgeadd.put(tmp, new Vector<Edge>());
34     varedgeadd.get(tmp).add(e);
35   }
36
37   public void setBlock(BBlock block) {
38     this.block=block;
39   }
40
41   public BBlock getBlock() {
42     return block;
43   }
44
45   public boolean getInit() {
46     return init;
47   }
48 }