[all-commits] [llvm/llvm-project] 9cc98e: [AArch64] Add soft-float ABI (#74460)

ostannard via All-commits all-commits at lists.llvm.org
Thu Feb 15 04:39:28 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9cc98e336980f00cbafcbed8841344e6ac472bdc
      https://github.com/llvm/llvm-project/commit/9cc98e336980f00cbafcbed8841344e6ac472bdc
  Author: ostannard <oliver.stannard at arm.com>
  Date:   2024-02-15 (Thu, 15 Feb 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticCommonKinds.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/TargetInfo.h
    M clang/lib/Basic/TargetInfo.cpp
    M clang/lib/Basic/Targets.cpp
    M clang/lib/Basic/Targets/AArch64.cpp
    M clang/lib/Basic/Targets/AArch64.h
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/lib/CodeGen/TargetInfo.h
    M clang/lib/CodeGen/Targets/AArch64.cpp
    M clang/lib/Sema/Sema.cpp
    A clang/test/CodeGen/aarch64-soft-float-abi.c
    M clang/test/CodeGen/attr-target-clones-aarch64.c
    A clang/test/Driver/aarch64-soft-float-abi.c
    M clang/test/Preprocessor/aarch64-target-features.c
    A clang/test/Sema/aarch64-soft-float-abi.c
    A llvm/test/CodeGen/AArch64/soft-float-abi.ll

  Log Message:
  -----------
  [AArch64] Add soft-float ABI (#74460)

This adds support for the AArch64 soft-float ABI. The specification for
this ABI was added by https://github.com/ARM-software/abi-aa/pull/232.

Because all existing AArch64 hardware has floating-point hardware, we
expect this to be a niche option, only used for embedded systems on
R-profile systems. We are going to document that SysV-like systems
should only ever use the base (hard-float) PCS variant:
https://github.com/ARM-software/abi-aa/pull/233. For that reason, I've
not added an option to select the ABI independently of the FPU hardware,
instead the new ABI is enabled iff the target architecture does not have
an FPU.

For testing, I have run this through an ABI fuzzer, but since this is
the first implementation it can only test for internal consistency
(callers and callees agree on the PCS), not for conformance to the ABI
spec.




More information about the All-commits mailing list