diff options
author | Chris Lattner <sabre@nondot.org> | 2004-07-01 06:02:27 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-07-01 06:02:27 +0000 |
commit | 449af59c7ef6ae9f9977fe1e9fdbd145a7b0c811 (patch) | |
tree | 2a6aae382c2b3af765cf596809fa4550d0426594 /llvm/lib/CodeGen/MachineBasicBlock.cpp | |
parent | a47455dbd32681da7f6b4f6ca2ed357fbcb3f834 (diff) | |
download | bcm5719-llvm-449af59c7ef6ae9f9977fe1e9fdbd145a7b0c811.tar.gz bcm5719-llvm-449af59c7ef6ae9f9977fe1e9fdbd145a7b0c811.zip |
Change MBB autonumber a bit to get the reverse mapping as well as a forward
mapping
llvm-svn: 14521
Diffstat (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineBasicBlock.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/llvm/lib/CodeGen/MachineBasicBlock.cpp b/llvm/lib/CodeGen/MachineBasicBlock.cpp index f4ef3ee21e3..a8a64dba516 100644 --- a/llvm/lib/CodeGen/MachineBasicBlock.cpp +++ b/llvm/lib/CodeGen/MachineBasicBlock.cpp @@ -29,27 +29,23 @@ MachineBasicBlock::~MachineBasicBlock() { // MBBs start out as #-1. When a MBB is added to a MachineFunction, it // gets the next available unique MBB number. If it is removed from a // MachineFunction, it goes back to being #-1. -void ilist_traits<MachineBasicBlock>::addNodeToList (MachineBasicBlock* N) -{ +void ilist_traits<MachineBasicBlock>::addNodeToList(MachineBasicBlock* N) { assert(N->Parent == 0 && "machine instruction already in a basic block"); N->Parent = Parent; - N->Number = Parent->getNextMBBNumber(); + N->Number = Parent->addToMBBNumbering(N); LeakDetector::removeGarbageObject(N); - - } -void ilist_traits<MachineBasicBlock>::removeNodeFromList (MachineBasicBlock* N) -{ +void ilist_traits<MachineBasicBlock>::removeNodeFromList(MachineBasicBlock* N) { assert(N->Parent != 0 && "machine instruction not in a basic block"); - N->Parent = 0; + N->Parent->removeFromMBBNumbering(N->Number); N->Number = -1; + N->Parent = 0; LeakDetector::addGarbageObject(N); } -MachineInstr* ilist_traits<MachineInstr>::createNode() -{ +MachineInstr* ilist_traits<MachineInstr>::createNode() { MachineInstr* dummy = new MachineInstr(0, 0); LeakDetector::removeGarbageObject(dummy); return dummy; |