throw new Error("Incompatible with tasks!");
case FKind.FlatMethod:
+
+ case FKind.FlatOffsetNode:
+ //System.out.println("In FKind.FlatOffsetNode\n");
+ processOffsetNode((FlatOffsetNode)fn, currtable);
+ break;
+
default:
throw new Error();
}
for(int i=0; i<fc.numArgs(); i++) {
TempDescriptor arg=fc.getArg(i);
if(isnative&&(currtable.get(arg).equals(GLOBAL)||
- currtable.get(arg).equals(CONFLICT)))
+ currtable.get(arg).equals(CONFLICT))&& !(nodemd.getSymbol().equals("rangePrefetch"))) {
throw new Error("Potential call to native method "+md+" with global parameter:\n"+currlb.getExplanation());
+ }
lb.setGlobal(i,currtable.get(arg));
}
}
currtable.put(fon.getDest(), srcvalue);
}
+ void processOffsetNode(FlatOffsetNode fon, Hashtable<TempDescriptor, Integer> currtable) {
+ /* Just propagate value */
+ currtable.put(fon.getDst(), LOCAL);
+ }
+
void processCastNode(FlatCastNode fcn, Hashtable<TempDescriptor, Integer> currtable) {
currtable.put(fcn.getDst(), currtable.get(fcn.getSrc()));
}