diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-01-17 00:35:26 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-01-17 00:35:26 +0000 |
commit | dc5b4c57d728fd37627810f6937c5f746e831413 (patch) | |
tree | fd2a6c8c1a56c42ec4dc20b797a2e0e27da78ce4 | |
parent | d8583eb993319f633fe9a5c5b23bc4e6fe8c20db (diff) | |
download | llvm-dc5b4c57d728fd37627810f6937c5f746e831413.zip llvm-dc5b4c57d728fd37627810f6937c5f746e831413.tar.gz llvm-dc5b4c57d728fd37627810f6937c5f746e831413.tar.bz2 |
Replace std::vector<bool> with BitVector.
llvm-svn: 46104
-rw-r--r-- | llvm/lib/CodeGen/RegAllocLocal.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/RegAllocLocal.cpp b/llvm/lib/CodeGen/RegAllocLocal.cpp index 2941824..3654efd2 100644 --- a/llvm/lib/CodeGen/RegAllocLocal.cpp +++ b/llvm/lib/CodeGen/RegAllocLocal.cpp @@ -91,13 +91,15 @@ namespace { // scavenged. If a virtual register has simply been rematerialized, there // is no reason to spill it to memory when we need the register back. // - std::vector<bool> VirtRegModified; + BitVector VirtRegModified; void markVirtRegModified(unsigned Reg, bool Val = true) { assert(MRegisterInfo::isVirtualRegister(Reg) && "Illegal VirtReg!"); Reg -= MRegisterInfo::FirstVirtualRegister; - if (VirtRegModified.size() <= Reg) VirtRegModified.resize(Reg+1); - VirtRegModified[Reg] = Val; + if (Val) + VirtRegModified.set(Reg); + else + VirtRegModified.reset(Reg); } bool isVirtRegModified(unsigned Reg) const { @@ -819,7 +821,9 @@ bool RALocal::runOnMachineFunction(MachineFunction &Fn) { // initialize the virtual->physical register map to have a 'null' // mapping for all virtual registers - Virt2PhysRegMap.grow(MF->getRegInfo().getLastVirtReg()); + unsigned LastVirtReg = MF->getRegInfo().getLastVirtReg(); + Virt2PhysRegMap.grow(LastVirtReg); + VirtRegModified.resize(LastVirtReg-MRegisterInfo::FirstVirtualRegister); // Loop over all of the basic blocks, eliminating virtual register references for (MachineFunction::iterator MBB = Fn.begin(), MBBe = Fn.end(); |