[llvm-commits] CVS: poolalloc/lib/PoolAllocate/PoolAllocate.cpp

Chris Lattner lattner at cs.uiuc.edu
Mon Nov 10 14:05:03 PST 2003


Changes in directory poolalloc/lib/PoolAllocate:

PoolAllocate.cpp updated: 1.41 -> 1.42

---
Log message:

Oops, only delete poolfrees which are not in live blocks


---
Diffs of the changes:  (+5 -2)

Index: poolalloc/lib/PoolAllocate/PoolAllocate.cpp
diff -u poolalloc/lib/PoolAllocate/PoolAllocate.cpp:1.41 poolalloc/lib/PoolAllocate/PoolAllocate.cpp:1.42
--- poolalloc/lib/PoolAllocate/PoolAllocate.cpp:1.41	Mon Nov 10 13:52:23 2003
+++ poolalloc/lib/PoolAllocate/PoolAllocate.cpp	Mon Nov 10 14:04:39 2003
@@ -742,7 +742,10 @@
     std::set<std::pair<AllocaInst*, CallInst*> >::iterator PFI =
       PoolFrees.lower_bound(std::make_pair(PD, (CallInst*)0));
     if (PFI != PoolFrees.end() && PFI->first < PD) ++PFI;
-    for (; PFI != PoolFrees.end() && PFI->first == PD; )
-      DeleteIfIsPoolFree((PFI++)->second, PD, PoolFrees);
+    for (; PFI != PoolFrees.end() && PFI->first == PD; ) {
+      CallInst *PoolFree = (PFI++)->second;
+      if (!LiveBlocks.count(PoolFree->getParent()))
+        DeleteIfIsPoolFree(PoolFree, PD, PoolFrees);
+    }
   }
 }





More information about the llvm-commits mailing list