Just use a SmallVector.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 2 Jun 2011 22:22:43 +0000 (22:22 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 2 Jun 2011 22:22:43 +0000 (22:22 +0000)
I was confused whether new uint8_t[] would zero-initialize the returned
array, and it seems that so is gcc-4.0.

This should fix the test failures on darwin 9.

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

lib/CodeGen/RegisterClassInfo.cpp
lib/CodeGen/RegisterClassInfo.h

index 2d56ec3341b215ba57fa4b8d0243691e8a809f1a..9b106815ef06d420b9dd1a6a128798ba34332e1c 100644 (file)
@@ -39,7 +39,8 @@ void RegisterClassInfo::runOnMachineFunction(const MachineFunction &mf) {
   if (Update || CSR != CalleeSaved) {
     // Build a CSRNum map. Every CSR alias gets an entry pointing to the last
     // overlapping CSR.
-    CSRNum.reset(new uint8_t[TRI->getNumRegs()]());
+    CSRNum.clear();
+    CSRNum.resize(TRI->getNumRegs(), 0);
     for (unsigned N = 0; unsigned Reg = CSR[N]; ++N)
       for (const unsigned *AS = TRI->getOverlaps(Reg);
            unsigned Alias = *AS; ++AS)
index 1ac040833ba37fb49680f83ecafeecfa20a6b79b..e41ae9e8dab4b39f3c754db16a6c6acce45a709b 100644 (file)
@@ -51,7 +51,7 @@ class RegisterClassInfo {
   const unsigned *CalleeSaved;
 
   // Map register number to CalleeSaved index + 1;
-  OwningArrayPtr<uint8_t> CSRNum;
+  SmallVector<uint8_t, 4> CSRNum;
 
   // Reserved registers in the current MF.
   BitVector Reserved;