diff options
author | Vasileios Porpodas <vporpodas@google.com> | 2022-12-13 13:22:04 -0800 |
---|---|---|
committer | Vasileios Porpodas <vporpodas@google.com> | 2022-12-14 10:45:47 -0800 |
commit | 7b684119abc7d94bad47ec0b97b35598fac412d3 (patch) | |
tree | 0dd8c31f4ed8f2fb6e6e1d1e183d5a45d3df3c14 /llvm/lib/IR/Function.cpp | |
parent | 9408164254d26d5305fe4e0267b668c41c1266ed (diff) | |
download | llvm-7b684119abc7d94bad47ec0b97b35598fac412d3.zip llvm-7b684119abc7d94bad47ec0b97b35598fac412d3.tar.gz llvm-7b684119abc7d94bad47ec0b97b35598fac412d3.tar.bz2 |
[IR] Adds Function::splice() member functions
This is part of a series of patches that aim at making Function::getBasicBlockList() private.
Differential Revision: https://reviews.llvm.org/D139982
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 //===----------------------------------------------------------------------===// |