[all-commits] [llvm/llvm-project] 986517: [AArch64] Add -mlr-for-calls-only to replace the n...

Amara Emerson via All-commits all-commits at lists.llvm.org
Wed Jul 10 15:17:12 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9865171e24961d9ae85d7183d5f52c44b82a9c58
      https://github.com/llvm/llvm-project/commit/9865171e24961d9ae85d7183d5f52c44b82a9c58
  Author: Amara Emerson <amara at apple.com>
  Date:   2024-07-10 (Wed, 10 Jul 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    A clang/include/clang/Driver/aarch64-mlr-for-calls-only.c
    M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
    M llvm/lib/Target/AArch64/AArch64Features.td
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    M llvm/test/CodeGen/AArch64/arm64-platform-reg.ll
    M llvm/test/CodeGen/AArch64/framelayout-sve.mir
    A llvm/test/CodeGen/AArch64/lr-reserved-for-ra-live-in.ll

  Log Message:
  -----------
  [AArch64] Add -mlr-for-calls-only to replace the now removed -ffixed-x30 flag. (#98073)

This re-introduces the effective behaviour that was reverted in
7ad481e76c9bee5b9895ebfa0fdb52f31cb7de77.

This time we're not using the same mechanism, exposing another
reservation feature
that prevents only regalloc from using the register, but not for other
required uses
like ABIs.

This also fixes a consequent issue with reserving LR, which is that
frame lowering
was only adding live-in flags for non-reserved regs. This would cause
issues later
since the outliner needs accurate flags to determine when LR needs to be
preserved.

rdar://131313095



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