#include "Support/ilist"
class TerminatorInst;
-class MachineCodeForBasicBlock;
template <class _Term, class _BB> class SuccIterator; // Successor Iterator
template <class _Ptr, class _USE_iterator> class PredIterator;
typedef iplist<Instruction> InstListType;
private :
InstListType InstList;
- MachineCodeForBasicBlock* machineInstrVec;
BasicBlock *Prev, *Next; // Next and Prev links for our intrusive linked list
void setParent(Function *parent) { InstList.setParent(parent); }
TerminatorInst *getTerminator();
const TerminatorInst *const getTerminator() const;
- // Machine code accessor...
- inline MachineCodeForBasicBlock& getMachineInstrVec() const {
- return *machineInstrVec;
- }
-
// Provide a scoped predecessor and successor iterator
typedef PredIterator<BasicBlock, Value::use_iterator> pred_iterator;
typedef PredIterator<const BasicBlock,
#include "llvm/Constant.h"
#include "llvm/iPHINode.h"
#include "llvm/SymbolTable.h"
-#include "llvm/CodeGen/MachineInstr.h"
#include "SymbolTableListTraitsImpl.h"
#include <algorithm>
BasicBlock::BasicBlock(const std::string &name, Function *Parent)
- : Value(Type::LabelTy, Value::BasicBlockVal, name),
- machineInstrVec(new MachineCodeForBasicBlock) {
+ : Value(Type::LabelTy, Value::BasicBlockVal, name) {
// Initialize the instlist...
InstList.setItemParent(this);
BasicBlock::~BasicBlock() {
dropAllReferences();
InstList.clear();
- delete machineInstrVec;
}
// Specialize setName to take care of symbol table majik