[all-commits] [llvm/llvm-project] 44cdf7: [AtomicExpand] Merge cmpxchg success and failure o...
Eli Friedman via All-commits
all-commits at lists.llvm.org
Thu Jun 3 11:36:21 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 44cdf771fe12ca528403cec9e6a8438b5107133b
https://github.com/llvm/llvm-project/commit/44cdf771fe12ca528403cec9e6a8438b5107133b
Author: Eli Friedman <efriedma at quicinc.com>
Date: 2021-06-03 (Thu, 03 Jun 2021)
Changed paths:
M llvm/include/llvm/IR/Instructions.h
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic-128.ll
M llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
M llvm/test/CodeGen/PowerPC/atomics-regression.ll
M llvm/test/CodeGen/RISCV/atomic-cmpxchg.ll
Log Message:
-----------
[AtomicExpand] Merge cmpxchg success and failure ordering when appropriate.
If we're not emitting separate fences for the success/failure cases, we
need to pass the merged ordering to the target so it can emit the
correct instructions.
For the PowerPC testcase, we end up with extra fences, but that seems
like an improvement over missing fences. If someone wants to improve
that, the PowerPC backed could be taught to emit the fences after isel,
instead of depending on fences emitted by AtomicExpand.
Fixes https://bugs.llvm.org/show_bug.cgi?id=33332 .
Differential Revision: https://reviews.llvm.org/D103342
More information about the All-commits
mailing list