[all-commits] [llvm/llvm-project] b856e7: Set MaxAtomicSizeInBitsSupported for remaining tar...

James Y Knight via All-commits all-commits at lists.llvm.org
Mon Jan 8 19:34:43 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b856e77b2df212d740bfedc984572d812d07ecc8
      https://github.com/llvm/llvm-project/commit/b856e77b2df212d740bfedc984572d812d07ecc8
  Author: James Y Knight <jyknight at google.com>
  Date:   2024-01-08 (Mon, 08 Jan 2024)

  Changed paths:
    M llvm/lib/Target/ARC/ARCISelLowering.cpp
    M llvm/lib/Target/ARC/ARCTargetMachine.cpp
    M llvm/lib/Target/BPF/BPFISelLowering.cpp
    M llvm/lib/Target/BPF/BPFTargetMachine.cpp
    M llvm/lib/Target/Lanai/LanaiISelLowering.cpp
    M llvm/lib/Target/Lanai/LanaiTargetMachine.cpp
    M llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
    M llvm/lib/Target/MSP430/MSP430TargetMachine.cpp
    M llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
    A llvm/test/CodeGen/ARC/atomic-oversize.ll
    A llvm/test/CodeGen/BPF/atomic-oversize.ll
    A llvm/test/CodeGen/Lanai/atomic-oversize.ll
    A llvm/test/CodeGen/MSP430/atomic-oversize.ll
    M llvm/test/CodeGen/NVPTX/atomicrmw-expand.ll

  Log Message:
  -----------
  Set MaxAtomicSizeInBitsSupported for remaining targets. (#75703)

Targets affected:

- NVPTX and BPF: set to 64 bits.
- ARC, Lanai, and MSP430: set to 0 (they don't implement atomics).

Those which didn't yet add AtomicExpandPass to their pass pipeline now
do so.

This will result in larger atomic operations getting expanded to
`__atomic_*` libcalls via AtomicExpandPass. On all these targets, this
now matches what Clang already does in the frontend.

The only targets which do not configure AtomicExpandPass now are:
- DirectX and SPIRV: they aren't normal backends.
- AVR: a single-cpu architecture with no privileged/user divide, which
could implement all atomics by disabling/enabling interrupts, regardless
of size/alignment. Will be addressed by future work.




More information about the All-commits mailing list