diff options
author | Jeremy Morse <jeremy.morse@sony.com> | 2023-12-13 14:04:35 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-13 14:04:35 +0000 |
commit | 4b64138ba485fd0fca69613e429e585ee4b67575 (patch) | |
tree | 35d5d8efcfe7660266ef6a85118c30268a0f551c /llvm/lib/Transforms/Utils/LoopRotationUtils.cpp | |
parent | 7f55d7de1a7511dcfaa37c9f1665bfd8aea5f764 (diff) | |
download | llvm-4b64138ba485fd0fca69613e429e585ee4b67575.zip llvm-4b64138ba485fd0fca69613e429e585ee4b67575.tar.gz llvm-4b64138ba485fd0fca69613e429e585ee4b67575.tar.bz2 |
[DebugInfo][RemoveDIs] Switch some insertion routines to use iterators (#75330)
As part of RemoveDIs, we need instruction insertion to be done with
iterators rather than instruction pointers, so that we can communicate
some debug-info facts about the position. This patch is an entirely
mechanical replacement of Instruction * with BasicBlock::iterator, plus
using insertBefore to insert some instructions because we don't have
iterator-taking constructors yet.
Sadly it's not NFC because it causes dbg.value intrinsics / their
DPValue equivalents to shift location.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopRotationUtils.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LoopRotationUtils.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp b/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp index 76280ed..504f443 100644 --- a/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp +++ b/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp @@ -708,12 +708,13 @@ bool LoopRotate::rotateLoop(Loop *L, bool SimplifiedLatch) { // as U1'' and U1' scopes will not be compatible wrt to the local restrict // Clone the llvm.experimental.noalias.decl again for the NewHeader. - Instruction *NewHeaderInsertionPoint = &(*NewHeader->getFirstNonPHI()); + BasicBlock::iterator NewHeaderInsertionPoint = + NewHeader->getFirstNonPHIIt(); for (NoAliasScopeDeclInst *NAD : NoAliasDeclInstructions) { LLVM_DEBUG(dbgs() << " Cloning llvm.experimental.noalias.scope.decl:" << *NAD << "\n"); Instruction *NewNAD = NAD->clone(); - NewNAD->insertBefore(NewHeaderInsertionPoint); + NewNAD->insertBefore(*NewHeader, NewHeaderInsertionPoint); } // Scopes must now be duplicated, once for OrigHeader and once for |