Hashtable<TempDescriptor, Integer> nodetemptab=temptab.get(fn);
List<TempDescriptor> reads=Arrays.asList(fn.readsTemps());
- List<TempDescriptor> writes=Arrays.asList(fn.readsTemps());
+ List<TempDescriptor> writes=Arrays.asList(fn.writesTemps());
if (!isatomic&&fn.kind()==FKind.FlatAtomicExitNode
&&!nodetoconvs.containsKey(fn))
TempNodePair tnp2=new TempNodePair(tnp.getTemp());
tnp2.setNode(fn);
tempset.add(tnp2);
- }
+ } else
+ tempset.add(tnp);
} else
tempset.add(tnp);
}
atomictab.get(fn.getPrev(0)).intValue()>0) {
//sanity check
assert(fn.kind()==FKind.FlatAtomicExitNode);
-
//insert calls here...
Set<TempDescriptor> tempset=nodetoconvs.get(fn);
for(Iterator<TempDescriptor> tempit=tempset.iterator();tempit.hasNext();) {
if (thistype==null)
thistype=EITHER;
lb.setGlobalThis(thistype);
- } else
- lb.setGlobalThis(EITHER);//default value
+ }// else
+ // lb.setGlobalThis(EITHER);//default value
if (discovered.containsKey(lb))
lb=discovered.get(lb);
else throw new Error();
}
}
-
public void computeCallsFlags(MethodDescriptor md, LocalityBinding lb, Hashtable<FlatNode, Hashtable<TempDescriptor, Integer>> temptable, Hashtable<FlatNode, Integer> atomictable) {
FlatMethod fm=state.getMethodFlat(md);
HashSet<FlatNode> tovisit=new HashSet<FlatNode>();
if (isnative&&thistype.equals(GLOBAL))
throw new Error("Potential call to native method "+md+" on global objects:\n"+currlb.getExplanation());
lb.setGlobalThis(thistype);
- } else
- lb.setGlobalThis(EITHER);//default value
+ } //else
+ //lb.setGlobalThis(EITHER);//default value
//lb is built
if (!discovered.containsKey(lb)) {
}
private void printTEST(){
-
Enumeration e = safeexecution.keys();
while (e.hasMoreElements()) {
ClassDescriptor cdtemp=(ClassDescriptor)e.nextElement();
headers.println("extern struct classanalysiswrapper * classanalysiswrapperarray[];");
-
-
Iterator taskit=state.getTaskSymbolTable().getDescriptorsIterator();
while(taskit.hasNext()) {
TaskDescriptor td=(TaskDescriptor)taskit.next();
all: Parse/Sym.class Parse/Parser.class $(CLASSFILES) javadoc
wc:
- wc Interface/*.java Analysis/*/*.java IR/*.java IR/*/*.java Lex/*.java Util/*.java
+ wc Interface/*.java Analysis/*/*.java IR/*.java IR/*/*.java Lex/*.java Util/*.java ClassLibrary/*.java
wcrun:
wc Runtime/*.[c,h]
hashkey = (unsigned int)key % thisvar->size;
ptr = &thisvar->bucket[hashkey];
- while (*ptr) {
- if ((*ptr)->key == key) {
- (*ptr)->data=data;
- (*ptr)->data2=data2;
- return 1;
- }
- ptr = &((*ptr)->next);
- }
-
{
struct ObjectNode *node=RUNMALLOC(sizeof(struct ObjectNode));
node->data=data;