diff options
author | Tanya Lattner <tonic@nondot.org> | 2004-05-24 06:11:51 +0000 |
---|---|---|
committer | Tanya Lattner <tonic@nondot.org> | 2004-05-24 06:11:51 +0000 |
commit | a578cb7a65662415a0321caf6cffe2fb526fe5e6 (patch) | |
tree | 0b12b15b873a688b138d00a1e03d373c5b17088b /llvm/lib/CodeGen/MachineFunction.cpp | |
parent | a0390ec7f9c040a0e90b30368d42ca078fa3efaf (diff) | |
download | llvm-a578cb7a65662415a0321caf6cffe2fb526fe5e6.zip llvm-a578cb7a65662415a0321caf6cffe2fb526fe5e6.tar.gz llvm-a578cb7a65662415a0321caf6cffe2fb526fe5e6.tar.bz2 |
Added MachineFunction parent* to MachineBasicBlock. Customized ilist template
to set the parent when a MachineBasicBlock is added to a MachineFunction.
llvm-svn: 13716
Diffstat (limited to 'llvm/lib/CodeGen/MachineFunction.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineFunction.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineFunction.cpp b/llvm/lib/CodeGen/MachineFunction.cpp index f0b0637..a3e9211 100644 --- a/llvm/lib/CodeGen/MachineFunction.cpp +++ b/llvm/lib/CodeGen/MachineFunction.cpp @@ -24,6 +24,8 @@ #include "llvm/Target/TargetFrameInfo.h" #include "llvm/Function.h" #include "llvm/iOther.h" +#include "Support/LeakDetector.h" + using namespace llvm; static AnnotationID MF_AID( @@ -84,6 +86,22 @@ FunctionPass *llvm::createMachineCodeDeleter() { //===---------------------------------------------------------------------===// // MachineFunction implementation //===---------------------------------------------------------------------===// +MachineBasicBlock* ilist_traits<MachineBasicBlock>::createNode() +{ + MachineBasicBlock* dummy = new MachineBasicBlock(); + LeakDetector::removeGarbageObject(dummy); + return dummy; +} + +void ilist_traits<MachineBasicBlock>::transferNodesFromList( + iplist<MachineBasicBlock, ilist_traits<MachineBasicBlock> >& toList, + ilist_iterator<MachineBasicBlock> first, + ilist_iterator<MachineBasicBlock> last) +{ + if (parent != toList.parent) + for (; first != last; ++first) + first->Parent = toList.parent; +} MachineFunction::MachineFunction(const Function *F, const TargetMachine &TM) @@ -92,6 +110,7 @@ MachineFunction::MachineFunction(const Function *F, MFInfo = new MachineFunctionInfo(*this); FrameInfo = new MachineFrameInfo(); ConstantPool = new MachineConstantPool(); + BasicBlocks.parent = this; } MachineFunction::~MachineFunction() { |