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++) {
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;
public FlatFlagActionNode(int taskexit) {
tempflagpairs=new Hashtable();
+ temptagpairs=new Hashtable();
this.taskexit=taskexit;
}
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;
}
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];
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()]);
}
}
+++ /dev/null
-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";
- }
-}
}
public int hashCode() {
- return identifier.hashCode()^td.hashcode();
+ return identifier.hashCode()^td.hashCode();
}
public String toString() {