From: bdemsky Date: Thu, 10 Jan 2008 01:30:21 +0000 (+0000) Subject: changes X-Git-Tag: preEdgeChange~314 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7ce00745bb86bfafab03151c682b6935dfecdb76;p=IRC.git changes --- diff --git a/Robust/src/Analysis/TaskStateAnalysis/ObjWrapper.java b/Robust/src/Analysis/TaskStateAnalysis/ObjWrapper.java index 3fe4b458..913b45b7 100644 --- a/Robust/src/Analysis/TaskStateAnalysis/ObjWrapper.java +++ b/Robust/src/Analysis/TaskStateAnalysis/ObjWrapper.java @@ -5,12 +5,15 @@ import IR.Flat.*; import java.util.*; public class ObjWrapper implements Wrapper{ - FlagState fs; - Vector tags; + Flagstate initfs; + HashSet fs; + HashSet tags; public ObjWrapper(FlagState fs) { - this.fs=fs; - tags=new Vector(); + this.initfs=fs; + this.fs=new HashSet(); + this.fs.add(fs); + tags=new HashSet(); } } diff --git a/Robust/src/Analysis/TaskStateAnalysis/TaskTagAnalysis.java b/Robust/src/Analysis/TaskStateAnalysis/TaskTagAnalysis.java index f83c2588..f8e2e54b 100644 --- a/Robust/src/Analysis/TaskStateAnalysis/TaskTagAnalysis.java +++ b/Robust/src/Analysis/TaskStateAnalysis/TaskTagAnalysis.java @@ -35,7 +35,6 @@ public class TaskTagAnalysis { private void doAnalysis() { toprocess.add(createInitialState()); - while(!toprocess.isEmpty()) { TagState ts=toprocess.iterator().next(); toprocess.remove(ts); @@ -128,19 +127,34 @@ public class TaskTagAnalysis { } private void processFlatFlag(FlatFlagActionNode fn, Hashtable table) { - + } private void processFlatCall(FlatCall fc, Hashtable table) { - + //Do nothing for now } private void processFlatReturnNode(FlatReturnNode fr, Hashtable table) { } - private boolean equivalent(Hashtable table1, Hashtable table2) { - + private boolean equivalent(Hashtable table1, Hashtable table2) { + Hashtable emap=new Hashtable; + for(Iterator tmpit=table1.keySet().iterator();tmpit.hasNext();) { + TempDescriptor tmp=tmpit.next(); + if (table2.containsKey(tmp)) { + emap.put(table1.get(tmp), table2.get(tmp)); + } else return false; + } + for(Iterator tmpit=table2.keySet().iterator();tmpit.hasNext();) { + TempDescriptor tmp=tmpit.next(); + if (table1.containsKey(tmp)) { + emap.put(table1.get(tmp), table2.get(tmp)); + } else return false; + } + + for + } private void doAnalysis(TaskBinding tb) { @@ -155,7 +169,7 @@ public class TaskTagAnalysis { FlatNode fn=tovisit.iterator().next(); tovisit.remove(fn); visited.add(fn); - Hashtable table=computeInitialState(wtable, fn); + Hashtable table=computeInitialState(wtable, fn); switch(fn.kind()) { case FKind.FlatFlagActionNode: processFlatFlag((FlatFlagActionNode)fn, table);