[llvm-commits] [poolalloc] r117654 - /poolalloc/trunk/lib/PoolAllocate/PoolAllocate.cpp

John Criswell criswell at uiuc.edu
Fri Oct 29 09:02:42 PDT 2010


Author: criswell
Date: Fri Oct 29 11:02:42 2010
New Revision: 117654

URL: http://llvm.org/viewvc/llvm-project?rev=117654&view=rev
Log:
Do not add a DSNode to a DenseSet before trying to find DSNodes reachable from
it; this causes DSNode::markReachableNodes() to think it has visited the root
DSNode, and it never does the reachablility search.
This change fixes em3d and other programs which suffered pool mismatch errors
caused by poolalloc creating a local pool for a pool that was passed in.

Modified:
    poolalloc/trunk/lib/PoolAllocate/PoolAllocate.cpp

Modified: poolalloc/trunk/lib/PoolAllocate/PoolAllocate.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/PoolAllocate/PoolAllocate.cpp?rev=117654&r1=117653&r2=117654&view=diff
==============================================================================
--- poolalloc/trunk/lib/PoolAllocate/PoolAllocate.cpp (original)
+++ poolalloc/trunk/lib/PoolAllocate/PoolAllocate.cpp Fri Oct 29 11:02:42 2010
@@ -752,7 +752,6 @@
   DenseSet<const DSNode*> MarkedNodes;
   for (unsigned index = 0; index < RootNodes.size(); ++index) {
     if (DSNode * N = RootNodes[index].getNode()) {
-      MarkedNodes.insert (N);
       N->markReachableNodes(MarkedNodes);
     }
   }





More information about the llvm-commits mailing list