[all-commits] [llvm/llvm-project] b577ec: [AtomicExpandPass][AArch64] Promote xchg with floa...

LemonBoy via All-commits all-commits at lists.llvm.org
Fri May 28 23:57:41 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b577ec495698c585837db3893c5662d3aa0aab87
      https://github.com/llvm/llvm-project/commit/b577ec495698c585837db3893c5662d3aa0aab87
  Author: LemonBoy <thatlemon at gmail.com>
  Date:   2021-05-29 (Sat, 29 May 2021)

  Changed paths:
    M llvm/lib/CodeGen/AtomicExpandPass.cpp
    A llvm/test/CodeGen/AArch64/atomicrmw-xchg-fp.ll
    M llvm/test/CodeGen/X86/atomicf128.ll
    M llvm/test/Transforms/AtomicExpand/AArch64/expand-atomicrmw-xchg-fp.ll
    M llvm/test/Transforms/AtomicExpand/X86/expand-atomic-xchg-fp.ll

  Log Message:
  -----------
  [AtomicExpandPass][AArch64] Promote xchg with floating-point types to integer ones

Follow the same strategy used for atomic loads/stores by converting the operands to equally-sized integer types.
This change prevents the atomic expansion pass from generating illegal LL/SC pairs when targeting AArch64: `expand-atomicrmw-xchg-fp.ll` would previously instantiate intrinsics such as `llvm.aarch64.ldaxr.p0f32` that cannot be lowered.

Reviewed By: efriedma

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




More information about the All-commits mailing list