[all-commits] [llvm/llvm-project] 28730b: [AArch64] Prevent spilling between ldxr/stxr pairs

LemonBoy via All-commits all-commits at lists.llvm.org
Tue Jun 8 21:24:33 PDT 2021


  Branch: refs/heads/release/12.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 28730bc82ac00125d1f5894464294583abf786ef
      https://github.com/llvm/llvm-project/commit/28730bc82ac00125d1f5894464294583abf786ef
  Author: LemonBoy <thatlemon at gmail.com>
  Date:   2021-06-08 (Tue, 08 Jun 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/atomicrmw-O0.ll
    M llvm/test/Transforms/AtomicExpand/AArch64/expand-atomicrmw-xchg-fp.ll

  Log Message:
  -----------
  [AArch64] Prevent spilling between ldxr/stxr pairs

Apply the same logic used to check if CMPXCHG nodes should be expanded
at -O0: the register allocator may end up spilling some register in
between the atomic load/store pairs, breaking the atomicity and possibly
stalling the execution.

Fixes PR48017

Reviewed By: efriedman

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

(cherry picked from commit 4751cadcca45984d7671e594ce95aed8fe030bf1)




More information about the All-commits mailing list