Fixed variable dynamic source bookkeeping bug, regression test runs for single and...
[IRC.git] / Robust / src / Analysis / MLP / CodePlan.java
index 76a504044177e1871991f8134fcc643edc4f35d6..d5d398dddae626c2358f52e9c7d0129595c1bb54 100644 (file)
@@ -13,13 +13,15 @@ public class CodePlan {
   private Hashtable< VariableSourceToken, Set<TempDescriptor> > stall2copySet;
   private Set<TempDescriptor>                                   dynamicStallSet;
   private Hashtable<TempDescriptor, TempDescriptor>             dynAssign_lhs2rhs;
+  private Set<TempDescriptor>                                   dynAssign_lhs2curr;
   private FlatSESEEnterNode                                     currentSESE;
   
   public CodePlan( FlatSESEEnterNode fsen ) {
-    stall2copySet     = new Hashtable< VariableSourceToken, Set<TempDescriptor> >();
-    dynamicStallSet   = new HashSet<TempDescriptor>();
-    dynAssign_lhs2rhs = new Hashtable<TempDescriptor, TempDescriptor>();
-    currentSESE       = fsen;
+    stall2copySet      = new Hashtable< VariableSourceToken, Set<TempDescriptor> >();
+    dynamicStallSet    = new HashSet<TempDescriptor>();
+    dynAssign_lhs2rhs  = new Hashtable<TempDescriptor, TempDescriptor>();
+    dynAssign_lhs2curr = new HashSet<TempDescriptor>();
+    currentSESE        = fsen;
   }
 
   public FlatSESEEnterNode getCurrentSESE() {
@@ -63,39 +65,12 @@ public class CodePlan {
     return dynAssign_lhs2rhs;
   }
 
-  public boolean equals( Object o ) {
-    if( o == null ) {
-      return false;
-    }
-
-    if( !(o instanceof CodePlan) ) {
-      return false;
-    }
-
-    CodePlan cp = (CodePlan) o;
-
-    boolean copySetsEq = (stall2copySet.equals( cp.stall2copySet ));
-
-    boolean dynStallSetEq = (dynamicStallSet.equals( cp.dynamicStallSet ));
-
-    boolean dynAssignEq = (dynAssign_lhs2rhs.equals( cp.dynAssign_lhs2rhs ));
-        
-    return copySetsEq && dynStallSetEq && dynAssignEq;
+  public void addDynAssign( TempDescriptor lhs ) {
+    dynAssign_lhs2curr.add( lhs );
   }
 
-  public int hashCode() {
-
-    int copySetsHC = stall2copySet.hashCode();
-
-    int dynStallSetHC = dynamicStallSet.hashCode();
-
-    int dynAssignHC = dynAssign_lhs2rhs.hashCode();
-
-    int hash = 7;
-    hash = 31*hash + copySetsHC;
-    hash = 31*hash + dynStallSetHC;
-    hash = 31*hash + dynAssignHC;
-    return hash;
+  public Set<TempDescriptor> getDynAssignCurr() {
+    return dynAssign_lhs2curr;
   }
 
   public String toString() {
@@ -124,6 +99,10 @@ public class CodePlan {
       s += "[DYN ASSIGNS:"+dynAssign_lhs2rhs+"]";
     }
 
+    if( !dynAssign_lhs2curr.isEmpty() ) {
+      s += "[DYN ASS2CURR:"+dynAssign_lhs2curr+"]";
+    }
+
     return s;
   }
 }