Displaying 1 result from an estimated 1 matches for "visitatomicrmwinst".
2020 Feb 10
3
atomic ops are optimized with incorrect semantics .
Hi All,
With the "https://gcc.godbolt.org/z/yBYTrd" case .
the atomic is converted to non atomic ops for x86 like
from
xchg dword ptr [100], eax
to
mov dword ptr [100], 1
the pass is responsible for this tranformation was instCombine
i.e InstCombiner::visitAtomicRMWInst
which converts the IR like
%0 = atomicrmw xchg i32* inttoptr (i64 100 to i32*), i32 1 monotonic
to
store atomic i32 1, i32* inttoptr (i64 100 to i32*) monotonic, align 4
which is valid for relax(monotonic) and release ordering as per the code
out there.
we think that,its the inst lowering issu...