[llvm] [llvm][AArch64] Avoid iterating off the beginning of a BB in a backward scan (PR #217752)
Victor Campos via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 21 00:46:06 PDT 2026
================
@@ -327,15 +327,17 @@ void AArch64PointerAuthImpl::authenticateLR(
int64_t Offset = -ArgumentStackToRestore;
SmallVector<MachineInstr *, 2> SPMods;
if (ArgumentStackToRestore > 0) {
- for (auto I = MBBI; I->getFlag(MachineInstr::FrameDestroy); --I) {
- if ((I->getOpcode() == AArch64::ADDXri ||
- I->getOpcode() == AArch64::SUBXri) &&
- I->getOperand(0).getReg() == AArch64::SP &&
- I->getOperand(1).getReg() == AArch64::SP) {
- SPMods.push_back(&*I);
- int64_t Imm = I->getOperand(2).getImm()
- << AArch64_AM::getShiftValue(I->getOperand(3).getImm());
- Offset += I->getOpcode() == AArch64::ADDXri ? Imm : -Imm;
+ for (MachineInstr &MI : reverse(make_range(MBB.begin(), MBBI))) {
----------------
vhscampos wrote:
This new for loop seems to skip `MBBI`. Is this intentional?
https://github.com/llvm/llvm-project/pull/217752
More information about the llvm-commits
mailing list