bugs
authorbdemsky <bdemsky>
Wed, 26 Mar 2008 02:36:36 +0000 (02:36 +0000)
committerbdemsky <bdemsky>
Wed, 26 Mar 2008 02:36:36 +0000 (02:36 +0000)
Robust/src/Analysis/Prefetch/LoopExit.java

index d116741d92f13180160a0f7ffcd2f33583c0ea99..7876a2c3a40e8d54529d6ffe3c35408569a96d63 100644 (file)
@@ -40,6 +40,7 @@ public class LoopExit {
        
        while(!nodeset.isEmpty()) {
            FlatNode fn=nodeset.iterator().next();
+           nodeset.remove(fn);
            if (fn.kind()==FKind.FlatCondBranch&&((FlatCondBranch)fn).isLoopBranch()) {
                FlatCondBranch fcb=(FlatCondBranch)fn;
                loopbranchset.add(fcb);
@@ -49,7 +50,8 @@ public class LoopExit {
                propagateset(nodeset, table, fcb, fcb.getNext(1), null); 
                loopbranchset.add(fcb);
            } else if (fn.kind()==FKind.FlatReturnNode) {
-               exitset.addAll(table.get(fn));
+               if (table.containsKey(fn))
+                   exitset.addAll(table.get(fn));
            } else {
                for(int i=0;i<fn.numNext();i++)
                    propagateset(nodeset, table, fn, fn.getNext(i), null);