This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, AArch64 v2 00/11] LSE atomics out-of-line


Ping.

On 10/2/18 9:19 AM, Richard Henderson wrote:
> Changes since v1:
>   * Use config/t-slibgcc-libgcc instead of gcc.c changes.
>   * Some style fixes.
>   * Ifdefs to work with old glibc.
> 
>   * Force TImode registers into even regnos.
>     Required by CASP, allowed by the ABI, and is seen as the
>     simplier solution than adding two new register classes.
> 
>   * Use match_dup instead of matching constraints for CAS{P}.
>     Matching constraints result in lots of extraneous moves
>     for TImode, and keeping the expander interface the same
>     for non-TImode simplifies the code.
> 
> 
> r~
> 
> 
> Richard Henderson (11):
>   aarch64: Simplify LSE cas generation
>   aarch64: Improve cas generation
>   aarch64: Improve swp generation
>   aarch64: Improve atomic-op lse generation
>   aarch64: Emit LSE st<op> instructions
>   Add visibility to libfunc constructors
>   aarch64: Add out-of-line functions for LSE atomics
>   aarch64: Implement -matomic-ool
>   aarch64: Force TImode values into even registers
>   aarch64: Implement TImode compare-and-swap
>   Enable -matomic-ool by default
> 
>  gcc/config/aarch64/aarch64-protos.h           |  20 +-
>  gcc/optabs-libfuncs.h                         |   2 +
>  gcc/common/config/aarch64/aarch64-common.c    |   6 +-
>  gcc/config/aarch64/aarch64.c                  | 494 +++++++-------
>  gcc/optabs-libfuncs.c                         |  26 +-
>  .../atomic-comp-swap-release-acquire.c        |   2 +-
>  .../gcc.target/aarch64/atomic-inst-ldadd.c    |  18 +-
>  .../gcc.target/aarch64/atomic-inst-ldlogic.c  |  54 +-
>  .../gcc.target/aarch64/atomic-op-acq_rel.c    |   2 +-
>  .../gcc.target/aarch64/atomic-op-acquire.c    |   2 +-
>  .../gcc.target/aarch64/atomic-op-char.c       |   2 +-
>  .../gcc.target/aarch64/atomic-op-consume.c    |   2 +-
>  .../gcc.target/aarch64/atomic-op-imm.c        |   2 +-
>  .../gcc.target/aarch64/atomic-op-int.c        |   2 +-
>  .../gcc.target/aarch64/atomic-op-long.c       |   2 +-
>  .../gcc.target/aarch64/atomic-op-relaxed.c    |   2 +-
>  .../gcc.target/aarch64/atomic-op-release.c    |   2 +-
>  .../gcc.target/aarch64/atomic-op-seq_cst.c    |   2 +-
>  .../gcc.target/aarch64/atomic-op-short.c      |   2 +-
>  .../aarch64/atomic_cmp_exchange_zero_reg_1.c  |   2 +-
>  .../atomic_cmp_exchange_zero_strong_1.c       |   2 +-
>  .../gcc.target/aarch64/sync-comp-swap.c       |   2 +-
>  .../gcc.target/aarch64/sync-op-acquire.c      |   2 +-
>  .../gcc.target/aarch64/sync-op-full.c         |   2 +-
>  libgcc/config/aarch64/lse.c                   | 282 ++++++++
>  gcc/config/aarch64/aarch64.opt                |   4 +
>  gcc/config/aarch64/atomics.md                 | 608 ++++++++++--------
>  gcc/config/aarch64/iterators.md               |   8 +-
>  gcc/config/aarch64/predicates.md              |  12 +
>  gcc/doc/invoke.texi                           |  14 +-
>  libgcc/config.host                            |   4 +
>  libgcc/config/aarch64/t-lse                   |  48 ++
>  32 files changed, 1058 insertions(+), 576 deletions(-)
>  create mode 100644 libgcc/config/aarch64/lse.c
>  create mode 100644 libgcc/config/aarch64/t-lse
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]