[all-commits] [llvm/llvm-project] 9221f3: [RISCV] Support RISCV Atomics ABI attributes (#84597)

Paul Kirth via All-commits all-commits at lists.llvm.org
Thu Apr 25 16:21:14 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 9221f3af8f832d990be986c05d964ad37e5a2356
      https://github.com/llvm/llvm-project/commit/9221f3af8f832d990be986c05d964ad37e5a2356
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2024-04-25 (Thu, 25 Apr 2024)

  Changed paths:
    M lld/ELF/Arch/RISCV.cpp
    M lld/test/ELF/riscv-attributes.s
    M llvm/include/llvm/Support/RISCVAttributeParser.h
    M llvm/include/llvm/Support/RISCVAttributes.h
    M llvm/lib/Support/RISCVAttributeParser.cpp
    M llvm/lib/Support/RISCVAttributes.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp
    M llvm/test/CodeGen/RISCV/attributes.ll
    M llvm/test/MC/RISCV/attribute.s
    M llvm/test/MC/RISCV/invalid-attribute.s

  Log Message:
  -----------
  [RISCV] Support RISCV Atomics ABI attributes (#84597)

This patch adds support for the `atomic_abi` attribute, specifid in

https://github.com/riscv-non-isa/riscv-elf-psabi-doc/blob/master/riscv-elf.adoc#tag_riscv_atomic_abi-14-uleb128version.

The atomics_abi tag merging is conducted as follows:

- UNKNOWN is safe to merge with all other values.
- A6C is compatible with A6S, and results in the A6C ABI.
- A6C is incompatible with A7, and results in an error.
- A6S and A7 are compatible, and merging results in the A7 ABI.

Note: the A7 is not yet supported in either LLVM or in any current
hardware,
and is therefore ommited from attribute generation in
RISCVTargetStreamer.



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