Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34428 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng
2007-02-19 21:49:54 +00:00
parent d1b2c5b34d
commit b371f457b0
23 changed files with 334 additions and 104 deletions

View File

@ -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);