diff options
author | James Y Knight <jyknight@google.com> | 2024-01-08 22:34:28 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-08 22:34:28 -0500 |
commit | b856e77b2df212d740bfedc984572d812d07ecc8 (patch) | |
tree | d449a3276a76f3e642ab4993d42d9e6181126714 /llvm/lib/CodeGen/BasicBlockSections.cpp | |
parent | 96c4f1034cc3a93dafa9f8541548249deb813b78 (diff) | |
download | llvm-b856e77b2df212d740bfedc984572d812d07ecc8.zip llvm-b856e77b2df212d740bfedc984572d812d07ecc8.tar.gz llvm-b856e77b2df212d740bfedc984572d812d07ecc8.tar.bz2 |
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.
Diffstat (limited to 'llvm/lib/CodeGen/BasicBlockSections.cpp')
0 files changed, 0 insertions, 0 deletions