[PATCH] D91157: [AArch64] Out-of-line atomics (-moutline-atomics) implementation.
Pavel Iliin via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Nov 11 15:36:55 PST 2020
ilinpv marked 10 inline comments as done.
ilinpv added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:15653
+ // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0493r1.pdf
+ // (2) low level libgcc and compiler-rt support implemented by:
+ // min/max outline atomics helpers
----------------
jyknight wrote:
> So, hold on -- AArch64 has umin/umax/smin/smax instructions, but libgcc and compiler-rt don't have helpers for those? That seems to be a remarkably unfortunate state of affairs.
>
> Can you fix that, by implementing those functions in the compiler-rt patch, and submitting the same to libgcc?
Yes, agree, initially I was going to add min/max helpers to both compiler-rt and libgcc. But the point is that gcc is not generating LSE min/max at all. So these helpers would be untested and become rotten. There is no reason for gcc community to support unused code. Hopefully after <atomic> maximum/minimum proposal approval I can easily add the helpers to libcc and compiler-rt and enable [U]Min/[U]Max RWM atomics expansion in LLVM.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91157/new/
https://reviews.llvm.org/D91157
More information about the cfe-commits
mailing list