Correct the allocation size for CCState's UsedRegs member, which
authorDan Gohman <gohman@apple.com>
Mon, 30 Jun 2008 20:25:31 +0000 (20:25 +0000)
committerDan Gohman <gohman@apple.com>
Mon, 30 Jun 2008 20:25:31 +0000 (20:25 +0000)
only needs one bit for each register. UsedRegs is a SmallVector
sized at 16, so this eliminates a heap allocation/free for every
call and return processed by Legalize on most targets.

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

lib/CodeGen/SelectionDAG/CallingConvLower.cpp

index 5dcf4ac92d4020b6973972904a2d4df716313d80..c9832ac46bad33679fdd7519bfcfceabd77c831b 100644 (file)
@@ -26,7 +26,7 @@ CCState::CCState(unsigned CC, bool isVarArg, const TargetMachine &tm,
   // No stack is used.
   StackOffset = 0;
   
-  UsedRegs.resize(TRI.getNumRegs());
+  UsedRegs.resize((TRI.getNumRegs()+31)/32);
 }
 
 // HandleByVal - Allocate a stack slot large enough to pass an argument by