move functionality to Flag node
authorbdemsky <bdemsky>
Tue, 10 Apr 2007 23:22:56 +0000 (23:22 +0000)
committerbdemsky <bdemsky>
Tue, 10 Apr 2007 23:22:56 +0000 (23:22 +0000)
Robust/src/IR/Flat/BuildFlat.java
Robust/src/IR/Flat/FlatFlagActionNode.java
Robust/src/IR/Flat/FlatTagActionNode.java [deleted file]
Robust/src/IR/TagVarDescriptor.java

index f487915ee77360b9e0842270f669ad2b47745bdf..a20080a304db1f7b702d9ab8a9abce4d445980ad 100644 (file)
@@ -38,6 +38,7 @@ public class BuildFlat {
        FlatNode fn=flattenBlockNode(bn).getBegin();
        FlatFlagActionNode ffan=new FlatFlagActionNode(FlatFlagActionNode.PRE);
        ffan.addNext(fn);
+
        FlatMethod fm=new FlatMethod(td, ffan);
 
        for(int i=0;i<td.numParameters();i++) {
index f546517bff97f9135be7dfd414f5befc7535a56f..da0f761f203209a0d906925ad81a0bc90bef3f71 100644 (file)
@@ -1,11 +1,14 @@
 package IR.Flat;
 import IR.FlagDescriptor;
+import IR.TagVarDescriptor;
 import java.util.Hashtable;
 import java.util.HashSet;
 import java.util.Iterator;
 
 public class FlatFlagActionNode extends FlatNode {
     Hashtable tempflagpairs; 
+    Hashtable temptagpairs; 
+
     int taskexit;
     public static final int NEWOBJECT=0;
     public static final int PRE=1;
@@ -14,6 +17,7 @@ public class FlatFlagActionNode extends FlatNode {
 
     public FlatFlagActionNode(int taskexit) {
        tempflagpairs=new Hashtable();
+       temptagpairs=new Hashtable();
        this.taskexit=taskexit;
     }
 
@@ -29,6 +33,14 @@ public class FlatFlagActionNode extends FlatNode {
        tempflagpairs.put(tfp, new Boolean(status));
     }
 
+    public void addTagAction(TempDescriptor td, TagVarDescriptor tvd, boolean status) {
+       TempTagPair ttp=new TempTagPair(td,tvd);
+       if (temptagpairs.containsKey(ttp)) {
+           throw new Error("Temp/Tag combination used twice: "+ttp);
+       }
+       temptagpairs.put(ttp, new Boolean(status));
+    }
+
     public int kind() {
         return FKind.FlatFlagActionNode;
     }
@@ -39,10 +51,18 @@ public class FlatFlagActionNode extends FlatNode {
        return tempflagpairs.keySet().iterator();
     }
 
+    public Iterator getTempTagPairs() {
+       return temptagpairs.keySet().iterator();
+    }
+
     public boolean getFlagChange(TempFlagPair tfp) {
        return ((Boolean)tempflagpairs.get(tfp)).booleanValue();
     }
 
+    public boolean getTagChange(TempTagPair ttp) {
+       return ((Boolean)temptagpairs.get(ttp)).booleanValue();
+    }
+
     public TempDescriptor [] readsTemps() {
         if (tempflagpairs.size()==0)
             return new TempDescriptor [0];
@@ -52,6 +72,10 @@ public class FlatFlagActionNode extends FlatNode {
                TempFlagPair tfp=(TempFlagPair)it.next();
                temps.add(tfp.getTemp());
            }
+           for(Iterator it=temptagpairs.keySet().iterator();it.hasNext();) {
+               TempTagPair ttp=(TempTagPair)it.next();
+               temps.add(ttp.getTemp());
+           }
             return (TempDescriptor[]) temps.toArray(new TempDescriptor [temps.size()]);
        }
     }
diff --git a/Robust/src/IR/Flat/FlatTagActionNode.java b/Robust/src/IR/Flat/FlatTagActionNode.java
deleted file mode 100644 (file)
index 95afd20..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-package IR.Flat;
-import IR.TagVarDescriptor;
-import java.util.Hashtable;
-import java.util.HashSet;
-import java.util.Iterator;
-
-public class FlatTagActionNode extends FlatNode {
-    Hashtable temptagpairs; 
-    int taskexit;
-    public static final int NEWOBJECT=0;
-    public static final int PRE=1;
-    public static final int TASKEXIT=2;
-
-
-    public FlatTagActionNode(int taskexit) {
-       temptagpairs=new Hashtable();
-       this.taskexit=taskexit;
-    }
-
-    public int getTaskType() {
-       return taskexit;
-    }
-
-    public void addTagAction(TempDescriptor td, TagVarDescriptor tvd, boolean status) {
-       TempTagPair ttp=new TempTagPair(td,tvd);
-       if (temptagpairs.containsKey(ttp)) {
-           throw new Error("Temp/Tag combination used twice: "+ttp);
-       }
-       temptagpairs.put(ttp, new Boolean(status));
-    }
-
-    public int kind() {
-        return FKind.FlatTagActionNode;
-    }
-    
-    /** This method returns an iterator over the Temp/Tag pairs. */
-    
-    public Iterator getTempTagPairs() {
-       return temptagpairs.keySet().iterator();
-    }
-
-    public boolean getTagChange(TempTagPair ttp) {
-       return ((Boolean)temptagpairs.get(ttp)).booleanValue();
-    }
-
-    public TempDescriptor [] readsTemps() {
-        if (temptagpairs.size()==0)
-            return new TempDescriptor [0];
-        else {
-           HashSet temps=new HashSet();
-           for(Iterator it=temptagpairs.keySet().iterator();it.hasNext();) {
-               TempTagPair ttp=(TempTagPair)it.next();
-               temps.add(ttp.getTemp());
-           }
-            return (TempDescriptor[]) temps.toArray(new TempDescriptor [temps.size()]);
-       }
-    }
-
-    public String toString() {
-       return "FlatTagActionNode";
-    }
-}
index 5e4613a2f318263cf853a5033fa6d87d9a408da5..4a0f2f9a8828c637fab1645cc16f35f127f17dfe 100644 (file)
@@ -36,7 +36,7 @@ public class TagVarDescriptor extends Descriptor {
     }
 
     public int hashCode() {
-       return identifier.hashCode()^td.hashcode();
+       return identifier.hashCode()^td.hashCode();
     }
 
     public String toString() {