[all-commits] [llvm/llvm-project] c56892: [SystemZ] Properly support 16 byte atomic int/fp t...
Jonas Paulsson via All-commits
all-commits at lists.llvm.org
Tue Dec 5 08:17:36 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c568927f3e2e7d9804ea74ecbf11c16c014ddcbc
https://github.com/llvm/llvm-project/commit/c568927f3e2e7d9804ea74ecbf11c16c014ddcbc
Author: Jonas Paulsson <paulson1 at linux.ibm.com>
Date: 2023-12-05 (Tue, 05 Dec 2023)
Changed paths:
M clang/lib/Basic/Targets/SystemZ.h
A clang/test/CodeGen/SystemZ/atomic_is_lock_free.c
A clang/test/CodeGen/SystemZ/gnu-atomic-builtins-i128-16Al.c
A clang/test/CodeGen/SystemZ/gnu-atomic-builtins-i128-8Al.c
A clang/test/CodeGen/SystemZ/gnu-atomic-builtins-i16.c
A clang/test/CodeGen/SystemZ/gnu-atomic-builtins-i32.c
A clang/test/CodeGen/SystemZ/gnu-atomic-builtins-i64.c
A clang/test/CodeGen/SystemZ/gnu-atomic-builtins-i8.c
M llvm/lib/Target/SystemZ/SystemZISelLowering.cpp
M llvm/test/CodeGen/SystemZ/atomicrmw-ops-i128.ll
M llvm/test/CodeGen/SystemZ/atomicrmw-xchg-07.ll
Log Message:
-----------
[SystemZ] Properly support 16 byte atomic int/fp types and ops. (#73134)
- Clang FE now has MaxAtomicPromoteWidth / MaxAtomicInlineWidth set to 128, and now produces IR
instead of calls to __atomic instrinsics for 16 bytes as well.
- Atomic __int128 (and long double) variables are now aligned to 16 bytes by default (like gcc 14).
- AtomicExpand pass now expands 16 byte operations as well.
- tests for __atomic builtins for all integer widths, and __atomic_is_lock_free with friends.
- TODO: AtomicExpand pass handles with this patch expansion of i128 atomicrmw:s. As a next step
smaller integer types should also be possible to handle this way instead of by the backend.
More information about the All-commits
mailing list