[all-commits] [llvm/llvm-project] 5ef432: [IR] Remove volatile from nosync (#194391)
Nikita Popov via All-commits
all-commits at lists.llvm.org
Mon May 4 00:53:46 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 5ef4320eed7c2a9598dcc89cde47c926ddf6b5cf
https://github.com/llvm/llvm-project/commit/5ef4320eed7c2a9598dcc89cde47c926ddf6b5cf
Author: Nikita Popov <npopov at redhat.com>
Date: 2026-05-04 (Mon, 04 May 2026)
Changed paths:
M clang/test/CodeGen/linux-kernel-struct-union-initializer.c
M clang/test/CodeGen/linux-kernel-struct-union-initializer2.c
M clang/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl
M clang/test/CodeGenOpenCL/cl20-device-side-enqueue-attributes.cl
M clang/test/CodeGenOpenCL/convergent.cl
M llvm/docs/LangRef.rst
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/Transforms/IPO/Attributor.h
M llvm/lib/Transforms/IPO/Attributor.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
M llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll
M llvm/test/CodeGen/AMDGPU/addrspacecast-constantexpr.ll
M llvm/test/CodeGen/AMDGPU/amdgpu-attributor-min-agpr-alloc.ll
M llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa-memcpy.ll
M llvm/test/Instrumentation/HWAddressSanitizer/RISCV/alloca.ll
M llvm/test/Instrumentation/HWAddressSanitizer/alloca.ll
M llvm/test/Instrumentation/MemorySanitizer/msan-pass-second-run.ll
M llvm/test/Instrumentation/TypeSanitizer/alloca-only.ll
M llvm/test/Instrumentation/TypeSanitizer/byval.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
M llvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll
M llvm/test/Transforms/Attributor/convergent.ll
M llvm/test/Transforms/Attributor/dereferenceable-2-inseltpoison.ll
M llvm/test/Transforms/Attributor/dereferenceable-2.ll
M llvm/test/Transforms/Attributor/heap_to_stack.ll
M llvm/test/Transforms/Attributor/liveness.ll
M llvm/test/Transforms/Attributor/lowerheap.ll
M llvm/test/Transforms/Attributor/nocapture-1.ll
M llvm/test/Transforms/Attributor/norecurse.ll
M llvm/test/Transforms/Attributor/nosync.ll
M llvm/test/Transforms/Attributor/readattrs.ll
M llvm/test/Transforms/Attributor/reduced/clear_cached_analysis_for_deleted_functions.ll
M llvm/test/Transforms/Attributor/reduced/missed_cached_entry_for_intra_reachability.ll
M llvm/test/Transforms/Attributor/undefined_behavior.ll
M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
M llvm/test/Transforms/Attributor/value-simplify-reachability.ll
M llvm/test/Transforms/Attributor/value-simplify.ll
M llvm/test/Transforms/ExpandVariadics/intrinsics.ll
M llvm/test/Transforms/FunctionAttrs/initializes.ll
M llvm/test/Transforms/FunctionAttrs/nocapture.ll
M llvm/test/Transforms/FunctionAttrs/nofpclass.ll
M llvm/test/Transforms/FunctionAttrs/norecurse.ll
M llvm/test/Transforms/FunctionAttrs/nosync.ll
M llvm/test/Transforms/FunctionAttrs/readattrs.ll
M llvm/test/Transforms/FunctionAttrs/writeonly.ll
M llvm/test/Transforms/GlobalOpt/ctor-memset.ll
M llvm/test/Transforms/GlobalOpt/pr54572.ll
M llvm/test/Transforms/HipStdPar/global-var-indirection.ll
M llvm/test/Transforms/InstCombine/stpncpy-1.ll
M llvm/test/Transforms/InstCombine/strncpy-1.ll
M llvm/test/Transforms/InstCombine/strncpy-3.ll
M llvm/test/Transforms/InstCombine/struct-assign-tbaa-2.ll
M llvm/test/Transforms/InstCombine/struct-assign-tbaa-new.ll
M llvm/test/Transforms/InstCombine/struct-assign-tbaa.ll
M llvm/test/Transforms/LoopIdiom/RISCV/memset-pattern.ll
M llvm/test/Transforms/LoopIdiom/basic.ll
M llvm/test/Transforms/LoopIdiom/memset-pattern-tbaa.ll
M llvm/test/Transforms/LoopIdiom/struct_pattern.ll
M llvm/test/Transforms/LoopIdiom/unroll-custom-dl.ll
M llvm/test/Transforms/LoopIdiom/unroll.ll
M llvm/test/Transforms/ObjCARC/nested.ll
M llvm/test/Transforms/PreISelIntrinsicLowering/X86/memcpy-inline-non-constant-len.ll
M llvm/test/Transforms/PreISelIntrinsicLowering/X86/memset-inline-non-constant-len.ll
M llvm/test/Transforms/PreISelIntrinsicLowering/X86/memset-pattern.ll
M llvm/test/Transforms/SROA/dbg-inline.ll
M llvm/test/Transforms/SROA/phi-gep.ll
M llvm/test/Transforms/SROA/select-gep.ll
M llvm/test/Transforms/SROA/slice-width.ll
M llvm/test/Transforms/SROA/tbaa-struct2.ll
Log Message:
-----------
[IR] Remove volatile from nosync (#194391)
Volatile operations are explicitly specified as not synchronizing...
> This is not Java’s “volatile” and has no cross-thread synchronization
behavior.
... and LLVM does not model them as being synchronizing anywhere, except
the definition of this attribute, which is largely unused outside the
Attributor.
The ordering requirements of volatile operations are already fully
encoded in their memory effects (unlike what is the case for
stronger-than-monotonic atomics).
Clarify that "nosync" is specifically in the sense of
"synchronizes-with" (rather than just any cross-thread communication)
and remove volatile operations from the definition.
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