IR: Add BasicBlock::insertInto()
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Fri, 1 Aug 2014 21:22:04 +0000 (21:22 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Fri, 1 Aug 2014 21:22:04 +0000 (21:22 +0000)
commit865919d60d0cd05f97f5762b505b0c3b92aeedf7
tree3c4d94c6ddc0179973753bde0bab217e85840116
parentf1499548d035908facd0e169e3f7e1b624c41ba4
IR: Add BasicBlock::insertInto()

Although unlinked `BasicBlock`s can be created, there's currently no way
to insert them into `Function`s after the fact.  In particular,
`moveAfter()` and `moveBefore()` require that the basic block is already
linked.

Extract the logic for initially linking a `BasicBlock` out of the
constructor and into a member function that can be used for lazy
insertion.

  - Asserts that the basic block is currently unlinked.
  - Matches the logic of the constructor.
  - Changed the constructor to use it since the logic matches.

This is needed in a follow-up commit for PR5680.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214563 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/BasicBlock.h
lib/IR/BasicBlock.cpp