[all-commits] [llvm/llvm-project] 0df1a5: [AArch64][FastISel] Fallback on atomic stlr/cas wi...

Ahmed Bougacha via All-commits all-commits at lists.llvm.org
Thu May 8 14:29:47 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0df1a52852f570fb72c25f88f94f9b51e4689f1d
      https://github.com/llvm/llvm-project/commit/0df1a52852f570fb72c25f88f94f9b51e4689f1d
  Author: Ahmed Bougacha <ahmed at bougacha.org>
  Date:   2025-05-08 (Thu, 08 May 2025)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64FastISel.cpp
    A llvm/test/CodeGen/AArch64/fast-isel-atomic-fallback.ll

  Log Message:
  -----------
  [AArch64][FastISel] Fallback on atomic stlr/cas with non-reg operands. (#133987)

This has been a latent bug for almost 10 years, but is relatively hard
to trigger, needing an address operand that isn't handled by
getRegForValue (in the test here, constexpr casts). When that happens,
it returns 0, which FastISel happily uses as a register operand, all the
way to asm, where we either get a crash on an invalid register, or a
silently corrupt instruction.

Unfortunately, FastISel is still enabled at -O0 for at least
ILP32/arm64_32.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list