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!

llvm-svn: 4337
This commit is contained in:
Chris Lattner
2002-10-28 05:30:46 +00:00
parent e1a3de779e
commit 8c63b6897d
5 changed files with 69 additions and 44 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
//===---------------------------------------------------------------------===//