[all-commits] [llvm/llvm-project] 4d7df4: [AArch64] Out-of-line atomics (-moutline-atomics) ...

Pavel Iliin via All-commits all-commits at lists.llvm.org
Fri Nov 20 05:30:41 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 4d7df43ffdb460dddb2877a886f75f45c3fee188
      https://github.com/llvm/llvm-project/commit/4d7df43ffdb460dddb2877a886f75f45c3fee188
  Author: Pavel Iliin <Pavel.Iliin at arm.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

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

  Log Message:
  -----------
  [AArch64] Out-of-line atomics (-moutline-atomics) implementation.

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.

Differential Revision: https://reviews.llvm.org/D91157




More information about the All-commits mailing list