Add a MachineBasicBlock::getParent() method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11622 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-02-19 16:13:54 +00:00
parent 1d29a6d6c7
commit 5e61fa9519
2 changed files with 14 additions and 6 deletions

View File

@ -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;

View File

@ -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);