diff options
Diffstat (limited to 'llvm/lib/IR/Function.cpp')
-rw-r--r-- | llvm/lib/IR/Function.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/IR/Function.cpp b/llvm/lib/IR/Function.cpp index 10bbdcf..949eb05 100644 --- a/llvm/lib/IR/Function.cpp +++ b/llvm/lib/IR/Function.cpp @@ -368,6 +368,18 @@ void Function::eraseFromParent() { getParent()->getFunctionList().erase(getIterator()); } +void Function::splice(Function::iterator ToIt, Function *FromF, + Function::iterator FromBeginIt, + Function::iterator FromEndIt) { +#ifdef EXPENSIVE_CHECKS + // Check that FromBeginIt is before FromEndIt. + auto FromFEnd = FromF->end(); + for (auto It = FromBeginIt; It != FromEndIt; ++It) + assert(It != FromBBEnd && "FromBeginIt not before FromEndIt!"); +#endif // EXPENSIVE_CHECKS + BasicBlocks.splice(ToIt, FromF->BasicBlocks, FromBeginIt, FromEndIt); +} + //===----------------------------------------------------------------------===// // Function Implementation //===----------------------------------------------------------------------===// |