diff options
Diffstat (limited to 'include/llvm/Support/IRBuilder.h')
-rw-r--r-- | include/llvm/Support/IRBuilder.h | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/include/llvm/Support/IRBuilder.h b/include/llvm/Support/IRBuilder.h index fe794c65ef..9fc29ef44e 100644 --- a/include/llvm/Support/IRBuilder.h +++ b/include/llvm/Support/IRBuilder.h @@ -42,19 +42,31 @@ namespace llvm { template <bool preserveNames=true, typename T = ConstantFolder> class IRBuilder{ BasicBlock *BB; BasicBlock::iterator InsertPt; - T Folder; LLVMContext &Context; + T Folder; public: - IRBuilder(LLVMContext &C, const T& F = T()) : - Folder(F), Context(C) { ClearInsertionPoint(); } + IRBuilder(LLVMContext &C, const T& F) : + Context(C), Folder(F) { ClearInsertionPoint(); } + + IRBuilder(LLVMContext &C) : Context(C), Folder(C) { ClearInsertionPoint(); } - explicit IRBuilder(BasicBlock *TheBB, const T& F = T()) - : Folder(F), Context(*TheBB->getParent()->getContext()) { + explicit IRBuilder(BasicBlock *TheBB, const T& F) + : Context(*TheBB->getParent()->getContext()), Folder(F) { SetInsertPoint(TheBB); } - IRBuilder(BasicBlock *TheBB, BasicBlock::iterator IP, const T& F = T()) - : Folder(F), Context(*TheBB->getParent()->getContext()) { + explicit IRBuilder(BasicBlock *TheBB) + : Context(*TheBB->getParent()->getContext()), Folder(Context) { + SetInsertPoint(TheBB); + } + + IRBuilder(BasicBlock *TheBB, BasicBlock::iterator IP, const T& F) + : Context(*TheBB->getParent()->getContext()), Folder(F) { + SetInsertPoint(TheBB, IP); + } + + IRBuilder(BasicBlock *TheBB, BasicBlock::iterator IP) + : Context(*TheBB->getParent()->getContext()), Folder(Context) { SetInsertPoint(TheBB, IP); } |