diff options
-rw-r--r-- | include/llvm/CodeGen/MachineBasicBlock.h | 10 | ||||
-rw-r--r-- | lib/CodeGen/MachineBasicBlock.cpp | 10 |
2 files changed, 14 insertions, 6 deletions
diff --git a/include/llvm/CodeGen/MachineBasicBlock.h b/include/llvm/CodeGen/MachineBasicBlock.h index 9399d56b76..44cab9e9e3 100644 --- a/include/llvm/CodeGen/MachineBasicBlock.h +++ b/include/llvm/CodeGen/MachineBasicBlock.h @@ -19,11 +19,11 @@ #include <iosfwd> namespace llvm { + class MachineFunction; // ilist_traits template <> -class ilist_traits<MachineInstr> -{ +class ilist_traits<MachineInstr> { // this is only set by the MachineBasicBlock owning the ilist friend class MachineBasicBlock; MachineBasicBlock* parent; @@ -70,7 +70,11 @@ public: /// corresponded to originally. /// const BasicBlock *getBasicBlock() const { return BB; } - + + /// getParent - Return the MachineFunction containing this basic block. + /// + const MachineFunction *getParent() const; + typedef ilist<MachineInstr>::iterator iterator; typedef ilist<MachineInstr>::const_iterator const_iterator; typedef std::reverse_iterator<const_iterator> const_reverse_iterator; diff --git a/lib/CodeGen/MachineBasicBlock.cpp b/lib/CodeGen/MachineBasicBlock.cpp index 9360693186..9d65453edf 100644 --- a/lib/CodeGen/MachineBasicBlock.cpp +++ b/lib/CodeGen/MachineBasicBlock.cpp @@ -12,15 +12,19 @@ //===----------------------------------------------------------------------===// #include "llvm/CodeGen/MachineBasicBlock.h" - #include "llvm/BasicBlock.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/MachineInstr.h" #include "Support/LeakDetector.h" -#include <iostream> - using namespace llvm; +const MachineFunction *MachineBasicBlock::getParent() const { + // Get the parent by getting the Function parent of the basic block, and + // getting the MachineFunction from it. + return &MachineFunction::get(getBasicBlock()->getParent()); +} + + MachineInstr* ilist_traits<MachineInstr>::createNode() { MachineInstr* dummy = new MachineInstr(0, 0); |