Hashtable extern_flags;
Queue<FlagState> toprocess;
TagAnalysis taganalysis;
+ Hashtable cdtorootnodes;
TypeUtil typeutil;
this.state=state;
this.typeutil=new TypeUtil(state);
this.taganalysis=taganalysis;
-
+
}
/** Builds a table of flags for each class in the Bristlecone program.
public void taskAnalysis() throws java.io.IOException {
flagstates=new Hashtable();
Hashtable<FlagState,FlagState> sourcenodes;
-
+ cdtorootnodes=new Hashtable();
getFlagsfromClasses();
//Debug block
flagstates.put(cd,new Hashtable<FlagState,FlagState>());
+ cdtorootnodes.put(cd,new Vector());
}
fsstartup=fsstartup.setFlag(fd[0],true);
fsstartup.setAsSourceNode();
+ ((Vector)cdtorootnodes.get(startupobject)).add(fsstartup);
sourcenodes.put(fsstartup,fsstartup);
toprocess.add(fsstartup);
for(Iterator fsit=newstates.iterator();fsit.hasNext();) {
FlagState fsnew=(FlagState) fsit.next();
fsnew.setAsSourceNode();
+ fsnew.addAllocatingTask(td);
+ ((Vector)cdtorootnodes.get(cd)).add(fsnew);
if (! ((Hashtable<FlagState,FlagState>)flagstates.get(fsnew.getClassDescriptor())).containsKey(fsnew)) {
((Hashtable<FlagState,FlagState>)flagstates.get(fsnew.getClassDescriptor())).put(fsnew, fsnew);
}
}
+ public Vector getRootNodes(ClassDescriptor cd){
+ return (Vector)cdtorootnodes.get(cd);
+ }
}