aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/CodeGen/MachineBasicBlock.h10
-rw-r--r--lib/CodeGen/MachineBasicBlock.cpp10
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);