It helps to deallocate memory as well as allocate it. =] This actually
authorChandler Carruth <chandlerc@gmail.com>
Mon, 14 Nov 2011 10:57:23 +0000 (10:57 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Mon, 14 Nov 2011 10:57:23 +0000 (10:57 +0000)
cleans up all the chains allocated during the processing of each
function so that for very large inputs we don't just grow memory usage
without bound.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144533 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/MachineBlockPlacement.cpp

index 412d0b1fab627e0780e8c4c6ff172d8fbc424d85..304f16717ba1889fc886d7bd46bd35f72a120807 100644 (file)
@@ -766,6 +766,7 @@ bool MachineBlockPlacement::runOnMachineFunction(MachineFunction &F) {
   AlignLoops(F);
 
   BlockToChain.clear();
+  ChainAllocator.DestroyAll();
 
   // We always return true as we have no way to track whether the final order
   // differs from the original order.