[PATCH] D91157: [AArch64] Out-of-line atomics (-moutline-atomics) implementation.

Pavel Iliin via Phabricator via llvm-commits llvm-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 llvm-commits mailing list