- if (fn.numPrev()>=1&&table.containsKey(fn.getPrev(0)))
- tab=new Hashtable<TempDescriptor, TempDescriptor>(table.get(fn.getPrev(0)));
- else
+ Set<TempDescriptor> liveset=livetemps.get(fn);
+
+ if (fn.numPrev()>=1&&table.containsKey(fn.getPrev(0))) {
+ tab=new Hashtable<TempDescriptor, TempDescriptor>();
+ for(Map.Entry<TempDescriptor, TempDescriptor> entry:table.get(fn.getPrev(0)).entrySet()) {
+ if (liveset.contains(entry.getKey())) {
+ tab.put(entry.getKey(), entry.getValue());
+ }
+ }
+ } else