diff options
-rw-r--r-- | lib/CodeGen/RegisterClassInfo.cpp | 3 | ||||
-rw-r--r-- | lib/CodeGen/RegisterClassInfo.h | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/lib/CodeGen/RegisterClassInfo.cpp b/lib/CodeGen/RegisterClassInfo.cpp index 2d56ec3341..9b106815ef 100644 --- a/lib/CodeGen/RegisterClassInfo.cpp +++ b/lib/CodeGen/RegisterClassInfo.cpp @@ -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) diff --git a/lib/CodeGen/RegisterClassInfo.h b/lib/CodeGen/RegisterClassInfo.h index 1ac040833b..e41ae9e8da 100644 --- a/lib/CodeGen/RegisterClassInfo.h +++ b/lib/CodeGen/RegisterClassInfo.h @@ -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; |