diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-02-19 21:49:54 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-02-19 21:49:54 +0000 |
commit | f7ed82da1011dc74cfbac0a65b7295ca0d4473d3 (patch) | |
tree | 61c2d44fc7362e01cd1ccf15fecb925b1ee359c8 /llvm/lib/CodeGen/MachineBasicBlock.cpp | |
parent | d5cfe7d0040ae9ca32c22bb388faa5503c123880 (diff) | |
download | llvm-f7ed82da1011dc74cfbac0a65b7295ca0d4473d3.zip llvm-f7ed82da1011dc74cfbac0a65b7295ca0d4473d3.tar.gz llvm-f7ed82da1011dc74cfbac0a65b7295ca0d4473d3.tar.bz2 |
Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.
llvm-svn: 34428
Diffstat (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineBasicBlock.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/MachineBasicBlock.cpp b/llvm/lib/CodeGen/MachineBasicBlock.cpp index d67159d..bef2502 100644 --- a/llvm/lib/CodeGen/MachineBasicBlock.cpp +++ b/llvm/lib/CodeGen/MachineBasicBlock.cpp @@ -118,7 +118,7 @@ void MachineBasicBlock::print(std::ostream &OS) const { const MRegisterInfo *MRI = MF->getTarget().getRegisterInfo(); if (livein_begin() != livein_end()) { OS << "Live Ins:"; - for (livein_iterator I = livein_begin(), E = livein_end(); I != E; ++I) + for (const_livein_iterator I = livein_begin(),E = livein_end(); I != E; ++I) OutputReg(OS, *I, MRI); OS << "\n"; } @@ -144,6 +144,12 @@ void MachineBasicBlock::print(std::ostream &OS) const { } } +void MachineBasicBlock::removeLiveIn(unsigned Reg) { + livein_iterator I = std::find(livein_begin(), livein_end(), Reg); + assert(I != livein_end() && "Not a live in!"); + LiveIns.erase(I); +} + void MachineBasicBlock::moveBefore(MachineBasicBlock *NewAfter) { MachineFunction::BasicBlockListType &BBList =getParent()->getBasicBlockList(); getParent()->getBasicBlockList().splice(NewAfter, BBList, this); |