Change MachineBasicBlock's to not be Annotations, instead they are kept as

part of a linked list tracked by MachineFunction.  MachineBasicBlock::get
is now linear time instead of constant time, and thus is deprecated!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4337 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2002-10-28 05:30:46 +00:00
parent 07541a2711
commit d0aa0cdbc6
6 changed files with 79 additions and 48 deletions

View File

@ -72,6 +72,21 @@ Pass *createMachineCodeDestructionPass() {
}
// get - This deprecated static method returns the MachineBasicBlock object
// for the specified BasicBlock.
//
MachineBasicBlock& MachineBasicBlock::get(const BasicBlock *BB) {
const Function *F = BB->getParent();
MachineFunction &MF = MachineFunction::get(F);
for (MachineFunction::iterator I = MF.begin(), E = MF.end(); I != E; ++I)
if (I->getBasicBlock() == BB)
return *I;
assert(0 && "MachineBasicBlock object not found for specified block!");
return get(BB);
}
//===---------------------------------------------------------------------===//
// MachineFunction implementation
//===---------------------------------------------------------------------===//