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

Pavel Iliin via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 10 05:56:48 PST 2020


ilinpv created this revision.
ilinpv added reviewers: jyknight, eli.friedman.
Herald added subscribers: llvm-commits, cfe-commits, dexonsmith, dang, danielkiss, jfb, hiraditya, kristof.beyls.
Herald added projects: clang, LLVM.
ilinpv requested review of this revision.

This patch implements out of line atomics for LSE deployment
mechanism. Details how it works can be found in llvm/docs/Atomics.rst
Options -moutline-atomics and -mno-outline-atomics to enable and disable it
were added to clang driver. This is clang and llvm part of out-of-line atomics
interface, library part is already supported by libgcc. Compiler-rt
support is provided in separate patch.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D91157

Files:
  clang/include/clang/Basic/DiagnosticDriverKinds.td
  clang/include/clang/Driver/Options.td
  clang/lib/Driver/ToolChains/Clang.cpp
  llvm/docs/Atomics.rst
  llvm/include/llvm/CodeGen/RuntimeLibcalls.h
  llvm/include/llvm/IR/RuntimeLibcalls.def
  llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
  llvm/lib/CodeGen/TargetLoweringBase.cpp
  llvm/lib/Target/AArch64/AArch64.td
  llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
  llvm/lib/Target/AArch64/AArch64Subtarget.h
  llvm/test/CodeGen/AArch64/arm64-atomic-128.ll
  llvm/test/CodeGen/AArch64/arm64-atomic.ll
  llvm/test/CodeGen/AArch64/arm64_32-atomics.ll
  llvm/test/CodeGen/AArch64/atomic-ops-lse.ll
  llvm/test/CodeGen/AArch64/atomic-ops-not-barriers.ll
  llvm/test/CodeGen/AArch64/atomic-ops.ll
  llvm/test/CodeGen/AArch64/cmpxchg-O0.ll
  llvm/test/CodeGen/AArch64/cmpxchg-idioms.ll
  llvm/test/CodeGen/AArch64/cmpxchg-lse-even-regs.ll
  llvm/test/Transforms/AtomicExpand/AArch64/expand-atomicrmw-xchg-fp.ll



More information about the cfe-commits mailing list