changes
authorbdemsky <bdemsky>
Thu, 3 Mar 2011 02:08:11 +0000 (02:08 +0000)
committerbdemsky <bdemsky>
Thu, 3 Mar 2011 02:08:11 +0000 (02:08 +0000)
Robust/src/Analysis/Pointer/Pointer.java

index 8aa7c7ab8f48520b5c59e06e8f3484b47b1ced46..ceca50bd3ace2691875b64ad857e8eb9b8ff64fd 100644 (file)
@@ -63,14 +63,19 @@ public class Pointer {
       PPoint ppoint=delta.getBlock();
       BBlock bblock=ppoint.getBBlock();
       Vector<FlatNode> nodes=bblock.nodes();
+      int startindex=0;
+      if (ppoint.getIndex()==-1) {
+       //Build base graph for entrance to this basic block
+       delta=applyInitDelta(delta, bblock);
+      } else {
+       startindex=ppoint.getIndex()+1;
+       delta=applyCallDelta(delta, bblock);
+      }
 
-      //Build base graph for entrance to this basic block
-      delta=applyInitDelta(delta, bblock);
       Graph graph=bbgraphMap.get(bblock);
-
       Graph nodeGraph=null;
       //Compute delta at exit of each node
-      for(int i=0; i<nodes.size();i++) {
+      for(int i=startindex; i<nodes.size();i++) {
        FlatNode currNode=nodes.get(i);
        if (!graphMap.containsKey(currNode)) {
          graphMap.put(currNode, new Graph(graph));
@@ -562,6 +567,17 @@ public class Pointer {
     return delta;
   }
 
+  Delta applyCallDelta(Delta delta, BBlock bblock) {
+    Vector<FlatNode> nodes=bblock.nodes();
+    PPoint ppoint=delta.getBlock();
+    FlatCall fcall=(FlatCall)nodes.get(ppoint.getIndex());
+    Graph graph=graphMap.get(fcall);
+    
+
+
+    return null;
+  }
+
   void applyDiffs(Graph graph, Delta delta) {
     applyDiffs(graph, delta, false);
   }