llvm-project/llvm/lib/IR
Duncan P. N. Exon Smith 17cbb97882 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.

llvm-svn: 214563
2014-08-01 21:22:04 +00:00
..
AsmWriter.cpp Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +00:00
AsmWriter.h IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
AttributeImpl.h Add a dereferenceable attribute 2014-07-18 15:51:28 +00:00
Attributes.cpp Add a dereferenceable attribute 2014-07-18 15:51:28 +00:00
AutoUpgrade.cpp Rename metadata llvm.loop.vectorize.unroll to llvm.loop.vectorize.interleave. 2014-07-21 23:11:03 +00:00
BasicBlock.cpp IR: Add BasicBlock::insertInto() 2014-08-01 21:22:04 +00:00
CMakeLists.txt IPO: Add use-list-order verifier 2014-07-25 14:49:26 +00:00
Comdat.cpp IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
ConstantFold.cpp IR: Fold away compares between GV GEPs and GVs 2014-07-04 22:05:26 +00:00
ConstantFold.h
ConstantRange.cpp [Modules] Move the ConstantRange class into the IR library. This is 2014-03-04 12:24:34 +00:00
Constants.cpp InstCombine: Don't turn -(x/INT_MIN) -> x/INT_MIN 2014-07-02 06:07:09 +00:00
ConstantsContext.h Try to fix the msvc build. 2014-04-29 23:37:02 +00:00
Core.cpp Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
DIBuilder.cpp Feedback on r214189, no functionality change. 2014-07-29 22:58:13 +00:00
DataLayout.cpp Revert "Introduce a string_ostream string builder facilty" 2014-06-26 22:52:05 +00:00
DebugInfo.cpp [Debug Info] remove DITrivialType and use null to represent unspecified param. 2014-07-29 18:20:39 +00:00
DebugLoc.cpp Add missing const specifier to a const method. 2014-06-05 14:32:15 +00:00
DiagnosticInfo.cpp Rename DiagnosticInfoOptimizationWarning to DiagnosticInfoOptimizationFailure 2014-07-18 19:36:04 +00:00
DiagnosticPrinter.cpp Report a warning when dropping outdated debug info metadata. 2014-01-16 01:51:12 +00:00
Dominators.cpp Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges." 2014-07-21 17:06:51 +00:00
Function.cpp Add a dereferenceable attribute 2014-07-18 15:51:28 +00:00
GCOV.cpp Update the MemoryBuffer API to use ErrorOr. 2014-07-06 17:43:13 +00:00
GVMaterializer.cpp [Layering] Move GVMaterializer.h into the IR library where its 2014-03-06 03:50:29 +00:00
Globals.cpp IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
IRBuilder.cpp Add scoped-noalias metadata 2014-07-24 14:25:39 +00:00
IRPrintingPasses.cpp Fix some misplaced spaces around 'override' 2014-05-24 20:19:40 +00:00
InlineAsm.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
Instruction.cpp IR: add "cmpxchg weak" variant to support permitted failure. 2014-06-13 14:24:07 +00:00
Instructions.cpp Add CreatePointerBitCastOrAddrSpaceCast to IRBuilder and co. 2014-07-14 17:24:35 +00:00
IntrinsicInst.cpp [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
LLVMBuild.txt
LLVMContext.cpp Add scoped-noalias metadata 2014-07-24 14:25:39 +00:00
LLVMContextImpl.cpp Remove LLVMContextImpl::optimizationRemarkEnabledFor. 2014-05-22 17:19:01 +00:00
LLVMContextImpl.h Remove LLVMContextImpl::optimizationRemarkEnabledFor. 2014-05-22 17:19:01 +00:00
LeakDetector.cpp [Modules] Move the LeakDetector header into the IR library where the 2014-03-04 12:46:06 +00:00
LeaksContext.h [C++] Use 'nullptr'. 2014-04-28 04:05:08 +00:00
LegacyPassManager.cpp Add C API for thread yielding callback. 2014-05-16 02:33:15 +00:00
MDBuilder.cpp Simplify and improve scoped-noalias metadata semantics 2014-07-25 15:50:02 +00:00
Makefile Actually update the CMake and Makefile builds correctly, and update the 2013-01-02 12:09:16 +00:00
Mangler.cpp [pr20127] Check for leading \1 in the Twine version of getNameWithPrefix. 2014-08-01 14:16:40 +00:00
Metadata.cpp Add scoped-noalias metadata 2014-07-24 14:25:39 +00:00
Module.cpp IR: cleanup Module::dropReferences 2014-07-03 16:12:55 +00:00
Pass.cpp Remove pimpl class from PassRegistry. 2014-06-12 16:06:51 +00:00
PassManager.cpp Remove unnecessary/redundant std::move 2014-07-16 17:09:21 +00:00
PassRegistry.cpp Remove pimpl class from PassRegistry. 2014-06-12 16:06:51 +00:00
SymbolTableListTraitsImpl.h [C++] Use 'nullptr'. 2014-04-28 04:05:08 +00:00
Type.cpp [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
TypeFinder.cpp TypeFinder: prefer iterative algorithm to keep stack usage low. 2013-10-16 04:10:06 +00:00
Use.cpp Fix some doc and comment typos 2014-04-09 14:47:27 +00:00
UseListOrder.cpp IR: Augment debug statements for use-list order 2014-07-29 01:09:46 +00:00
User.cpp Disable Visual C++ warning 4722 about aborting a destructor, 2014-03-25 08:42:49 +00:00
Value.cpp Handle AddrSpaceCast in stripAndAccumulateInBoundsConstantOffsets 2014-07-19 03:32:02 +00:00
ValueSymbolTable.cpp [Modules] Remove potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:02:50 +00:00
ValueTypes.cpp Add v4f16 to supported value types. 2013-10-03 03:29:21 +00:00
Verifier.cpp Revert "[C++11] Add predecessors(BasicBlock *) / successors(BasicBlock *) iterator ranges." 2014-07-21 17:06:51 +00:00
module.modulemap [modules] Add module maps for LLVM. These are not quite ready for prime-time 2014-05-21 02:46:14 +00:00