[PATCH] D121929: [AArch64] Mark all instructions that read/write FPCR as doing so
Simon Tatham via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 18 03:28:01 PDT 2022
simon_tatham added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64FrameLowering.cpp:2225
return false;
- if (Reg2 == Reg1 + 1)
+ if (Reg2 == Reg1 + 1 || (Reg1 == AArch64::FP && Reg2 == AArch64::LR))
return false;
----------------
I don't know this code well, but just looking at this if statement in isolation, in the case where `Reg1==FP`, the previous version of the condition would have required `Reg2==LR`, whereas this one will accept either `Reg2==LR` //or// `Reg2=FPCR`.
Or is there some condition at the call sites which means nothing but GPRs will ever be passed to this function in the first place, so that the (FP,FPCR) pair will never trigger that false positive?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D121929/new/
https://reviews.llvm.org/D121929
More information about the llvm-commits
mailing list