- Add new ctor to BasicBlock to allow insertion before any BB, not just at

the end of the function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3934 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-09-26 05:03:22 +00:00
parent 5cf816b09e
commit 0a1a874d1f

View File

@ -67,6 +67,26 @@ BasicBlock::BasicBlock(const std::string &name, Function *Parent)
Parent->getBasicBlockList().push_back(this);
}
/// BasicBlock ctor - If the InsertBefore parameter is specified, the basic
/// block is automatically inserted right before the specified block.
///
BasicBlock::BasicBlock(const std::string &Name, BasicBlock *InsertBefore)
: Value(Type::LabelTy, Value::BasicBlockVal, Name) {
// Initialize the instlist...
InstList.setItemParent(this);
// Make sure that we get added to a function
LeakDetector::addGarbageObject(this);
if (InsertBefore) {
assert(InsertBefore->getParent() &&
"Cannot insert block before another block that is not embedded into"
" a function yet!");
InsertBefore->getParent()->getBasicBlockList().insert(InsertBefore, this);
}
}
BasicBlock::~BasicBlock() {
dropAllReferences();
InstList.clear();