[llvm] [AArch64] Fix pairing different types of registers when computing CSRs. (PR #66642)

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 26 13:34:13 PDT 2023


kyulee-com wrote:

Thanks for finding and fixing this issue!
Can you share some numbers on why this specialization is worth rather than bailing out since it's actually trying to handle the case where CSRs are not pairable (although the helper function names/checks are named after a pair)?
I also have a few questions on this approach:
 - How is CFI unwind info generated? Is it still valid? I'm not sure how it works with the compact unwind where CSRs are expects to be paired in order (without skipping one).
 - I saw `xzr` is handled at last after skipping a missing CSR. However, saving/restoring `xzr` is unnecessary, strictly speaking. Should we align the helper name that refelects `xzr` (although it's no-op) or should we use a single load/store as opposed to a pair load/store for the last element?

https://github.com/llvm/llvm-project/pull/66642


More information about the llvm-commits mailing list