diff options
author | Daniel Dunbar <daniel@zuster.org> | 2008-11-11 22:06:59 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2008-11-11 22:06:59 +0000 |
commit | 5e08ad3cc62ab94649959ae227a9a411a729bf49 (patch) | |
tree | 154e7e88d02d2c1297d95c3d4fb833cf91b2072f /lib/CodeGen | |
parent | f5bd45c8e6fa7519cdc17ec3ff4917e279c6a041 (diff) |
Change EmitBranch to always clear the insert point to clarify irgen
invariants.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59085 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/CGStmt.cpp | 3 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenFunction.h | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/CodeGen/CGStmt.cpp b/lib/CodeGen/CGStmt.cpp index f2088f416d..97a7a05768 100644 --- a/lib/CodeGen/CGStmt.cpp +++ b/lib/CodeGen/CGStmt.cpp @@ -168,11 +168,12 @@ void CodeGenFunction::EmitBranch(llvm::BasicBlock *Target) { // If the last block was an empty placeholder, remove it now. // TODO: cache and reuse these. CurBB->eraseFromParent(); - Builder.ClearInsertionPoint(); } else { // Otherwise, create a fall-through branch. Builder.CreateBr(Target); } + + Builder.ClearInsertionPoint(); } void CodeGenFunction::EmitDummyBlock() { diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h index d482086e1a..b833380e49 100644 --- a/lib/CodeGen/CodeGenFunction.h +++ b/lib/CodeGen/CodeGenFunction.h @@ -229,6 +229,10 @@ public: /// EmitBranch - Emit a branch to the specified basic block from the /// current insert block, taking care to avoid creation of branches /// from dummy blocks. + /// + /// This function clears the current insertion point. The caller + /// should follow calls to this function with calls to Emit*Block + /// prior to generation new code. void EmitBranch(llvm::BasicBlock *Block); /// EmitDummyBlock - Emit a new block which will never be branched |