[all-commits] [llvm/llvm-project] 452efb: [AArch64] Fix LDR/STR folding causing memtag failu...

Oliver Stannard via All-commits all-commits at lists.llvm.org
Fri Dec 6 05:07:59 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 452efb35df641bac80a901c867ddfdd4de6ad2f4
      https://github.com/llvm/llvm-project/commit/452efb35df641bac80a901c867ddfdd4de6ad2f4
  Author: Oliver Stannard <oliver.stannard at arm.com>
  Date:   2024-12-06 (Fri, 06 Dec 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
    A llvm/test/CodeGen/AArch64/memtag-merge-writeback.mir

  Log Message:
  -----------
  [AArch64] Fix LDR/STR folding causing memtag failures (#118821)

When generating code with sanitize_memtag, we make use of the fact that
the sp+imm forms of many load and store instructions are not
tag-checked, so we can use SP directly instead of needing a register
holding the tagged pointer. However, this isn't true for the writeback
versions of the instructions, so we can't fold ADDs and SUBs into them
in AArch64LoadStoreOptimizer. This would be possible in cases where the
loads/stores only access untagged stack slots, but that information
isn't easily available after frame index elimination.



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