changes
authorbdemsky <bdemsky>
Thu, 12 Apr 2007 14:47:53 +0000 (14:47 +0000)
committerbdemsky <bdemsky>
Thu, 12 Apr 2007 14:47:53 +0000 (14:47 +0000)
Robust/src/IR/Flat/BuildFlat.java
Robust/src/IR/TaskDescriptor.java
Robust/src/IR/Tree/TagExpressionList.java

index f57306350287b724e7ed51070bb090a794574dbd..088e9c2e0239d639ddfcbc4c9ac8aba0aaf2510d 100644 (file)
@@ -42,7 +42,11 @@ public class BuildFlat {
        FlatMethod fm=new FlatMethod(td, ffan);
 
        for(int i=0;i<td.numParameters();i++) {
-           fm.addParameterTemp(getTempforVar(td.getParameter(i)));
+           VarDescriptor paramvd=td.getParameter(i);
+           fm.addParameterTemp(getTempforVar(paramvd));
+           //Don't need to get temps for tag variables
+           //If they are used, this will be done automatically
+           //If they aren't we won't pass them in
        }
 
        /* Flatten Vector of Flag Effects */
index 2e3d2deb84f99091885a6f75bad280d0644b9cb9..2478d217ce9c9175fa1ed04f0731d7ee159746c6 100644 (file)
@@ -52,12 +52,13 @@ public class TaskDescriptor extends Descriptor {
            tagstable.put(vd, tel);
            for(int i=0;i<tel.numTags();i++) {
                TagVarDescriptor tvd=new TagVarDescriptor(new TagDescriptor(tel.getType(i)), tel.getName(i));
-               if (!(paramtable.getFromSameScope(tel.getName(i)) instanceof TagVarDescriptor))
+               if (paramtable.getFromSameScope(tel.getName(i))==null) {
+                   paramtable.add(tvd);
+               } else if (!(((paramtable.getFromSameScope(tel.getName(i)) instanceof TagVarDescriptor)&&paramtable.getFromSameScope(tel.getName(i))).equals(tvd))) 
                    throw new Error("Parameter "+paramname+" already defined");
-               paramtable.add(tvd);
            }
        }
-
+       
        if (paramtable.getFromSameScope(paramname)!=null) {
            throw new Error("Parameter "+paramname+" already defined");
        }
index 44c031196c5d36d25ddab0dc8bbc1af4192f906c..77eb9670bb6770703b2e11e8571b396e892c16cb 100644 (file)
@@ -1,13 +1,16 @@
 package IR.Tree;
 import java.util.Vector;
+import IR.Flat.TempDescriptor;
 
 public class TagExpressionList {
     Vector names;
     Vector types;
+    Vector temps;
 
     public TagExpressionList() {
        names=new Vector();
        types=new Vector();
+       temps=new Vector();
     }
     
     public void addTag(String type, String name) {