[all-commits] [llvm/llvm-project] 3cfd0c: [SPIRV][RFC] Rework / extend support for memory sc...
Alex Voicu via All-commits
all-commits at lists.llvm.org
Tue Sep 24 16:45:18 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 3cfd0c0d36975504099034ce11f4df07c5a7eba7
https://github.com/llvm/llvm-project/commit/3cfd0c0d36975504099034ce11f4df07c5a7eba7
Author: Alex Voicu <alexandru.voicu at amd.com>
Date: 2024-09-25 (Wed, 25 Sep 2024)
Changed paths:
M clang/lib/Basic/Targets/SPIR.h
M clang/lib/CodeGen/CGAtomic.cpp
M clang/lib/CodeGen/Targets/SPIR.cpp
M clang/test/CodeGen/scoped-atomic-ops.c
A clang/test/CodeGenOpenCL/atomic-builtins-default-to-device-scope.cl
M clang/test/Sema/scoped-atomic-ops.c
M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
M llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.cpp
M llvm/lib/Target/SPIRV/SPIRVUtils.h
M llvm/test/CodeGen/SPIRV/AtomicCompareExchange.ll
M llvm/test/CodeGen/SPIRV/atomicrmw.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_add/atomicrmw_faddfsub_double.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_add/atomicrmw_faddfsub_float.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_add/atomicrmw_faddfsub_half.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_min_max/atomicrmw_fminfmax_double.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_min_max/atomicrmw_fminfmax_float.ll
M llvm/test/CodeGen/SPIRV/extensions/SPV_EXT_shader_atomic_float_min_max/atomicrmw_fminfmax_half.ll
M llvm/test/CodeGen/SPIRV/fence.ll
M llvm/test/CodeGen/SPIRV/instructions/atomic-ptr.ll
M llvm/test/CodeGen/SPIRV/instructions/atomic.ll
M llvm/test/CodeGen/SPIRV/instructions/atomic_acqrel.ll
M llvm/test/CodeGen/SPIRV/instructions/atomic_seq.ll
A llvm/test/CodeGen/SPIRV/scoped_atomicrmw.ll
Log Message:
-----------
[SPIRV][RFC] Rework / extend support for memory scopes (#106429)
This change adds support for correctly lowering the `__scoped` Clang
builtins, and corresponding scoped LLVM instructions. These were
previously unconditionally lowered to Device scope, which is possibly incorrect.
Furthermore, the default / implicit scope is changed from Device (an
OpenCL assumption) to AllSvmDevices (aka System), since the SPIR-V BE is not
OpenCL specific / can ingest IR coming from other language front-ends. OpenCL
defaulting to Device scope is now reflected in the front-end handling of atomic
ops, which seems preferable.
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