diff options
author | Jeremy Morse <jeremy.morse@sony.com> | 2024-02-29 15:27:32 +0000 |
---|---|---|
committer | Jeremy Morse <jeremy.morse@sony.com> | 2024-02-29 16:39:09 +0000 |
commit | 3fda50d3915b2163a54a37b602be7783a89dd808 (patch) | |
tree | db02ee8d9c1402e6023ce3ce8b7b771c0a6634ae /llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp | |
parent | 9491aecd235da9674150fe56bd0f29c3a22472c4 (diff) | |
download | llvm-3fda50d3915b2163a54a37b602be7783a89dd808.zip llvm-3fda50d3915b2163a54a37b602be7783a89dd808.tar.gz llvm-3fda50d3915b2163a54a37b602be7783a89dd808.tar.bz2 |
[NFC][RemoveDIs] Bulk update utilities to insert with iterators
As part of the RemoveDIs project we need LLVM to insert instructions using
iterators wherever possible, so that the iterators can carry a bit of
debug-info. This commit implements some of that by updating the contents of
llvm/lib/Transforms/Utils to always use iterator-versions of instruction
constructors.
There are two general flavours of update:
* Almost all call-sites just call getIterator on an instruction
* Several make use of an existing iterator (scenarios where the code is
actually significant for debug-info)
The underlying logic is that any call to getFirstInsertionPt or similar
APIs that identify the start of a block need to have that iterator passed
directly to the insertion function, without being converted to a bare
Instruction pointer along the way.
I've also switched DemotePHIToStack to take an optional iterator: it needs
to take an iterator, and having a no-insert-location behaviour appears to
be important. The constructors for ICmpInst and FCmpInst have been updated
too. They're the only instructions that take block _references_ rather than
pointers for certain calls, and a future patch is going to make use of
default-null block insertion locations.
All of this should be NFC.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp b/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp index 26b8c79..c7b88d3 100644 --- a/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp +++ b/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp @@ -522,7 +522,7 @@ llvm::UnrollAndJamLoop(Loop *L, unsigned Count, unsigned TripCount, // unconditional one to this one BranchInst *SubTerm = cast<BranchInst>(SubLoopBlocksLast[It - 1]->getTerminator()); - BranchInst::Create(SubLoopBlocksFirst[It], SubTerm); + BranchInst::Create(SubLoopBlocksFirst[It], SubTerm->getIterator()); SubTerm->eraseFromParent(); SubLoopBlocksFirst[It]->replacePhiUsesWith(ForeBlocksLast[It], @@ -535,7 +535,7 @@ llvm::UnrollAndJamLoop(Loop *L, unsigned Count, unsigned TripCount, // Aft blocks successors and phis BranchInst *AftTerm = cast<BranchInst>(AftBlocksLast.back()->getTerminator()); if (CompletelyUnroll) { - BranchInst::Create(LoopExit, AftTerm); + BranchInst::Create(LoopExit, AftTerm->getIterator()); AftTerm->eraseFromParent(); } else { AftTerm->setSuccessor(!ContinueOnTrue, ForeBlocksFirst[0]); @@ -550,7 +550,7 @@ llvm::UnrollAndJamLoop(Loop *L, unsigned Count, unsigned TripCount, // unconditional one to this one BranchInst *AftTerm = cast<BranchInst>(AftBlocksLast[It - 1]->getTerminator()); - BranchInst::Create(AftBlocksFirst[It], AftTerm); + BranchInst::Create(AftBlocksFirst[It], AftTerm->getIterator()); AftTerm->eraseFromParent(); AftBlocksFirst[It]->replacePhiUsesWith(SubLoopBlocksLast[It], |