public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 00/30] Rename movmem pattern to cpymem
@ 2019-06-25 20:23 acsawdey
  2019-06-25 20:24 ` [PATCH 04/30] Changes to arc acsawdey
                   ` (29 more replies)
  0 siblings, 30 replies; 47+ messages in thread
From: acsawdey @ 2019-06-25 20:23 UTC (permalink / raw)
  To: gcc-patches
  Cc: segher, wschmidt, dje.gcc, acsawdey, rguenther, jakub, matz,
	richard.earnshaw, rth, gnu, nickc, chertykov, jzhang918,
	bernds_cb1, aoliva, james.bowman, law, ubizjak, sebastien, eager,
	mfortune, jasonwucj, dave.anglin, ni1d, jimw, uweigand, olegendo,
	davem, matt, ebotcazou, augustine.sterling, hubicka

From: Aaron Sawdey <acsawdey@linux.ibm.com>

As we discussed on gcc-list back in mid-May, this is the first set of patches
to unscramble things so we can have sensible inline expansion of both memcpy()
and memmove().

This patch renames the movmem optab entry and all uses of it to cpymem to 
reflect the fact that this pattern is used to expand memcpy() and expects
that the source and destination blocks do not overlap.

I have split this out into the machine independent piece and the changes for
each target directory to make review easier. The patches will all need to be
committed 

I changed the pattern names in the .md files and also functions that used
"movmem" in the function name to keep everything consistent. I did not 
change function names like "*_block_move_*". 

A couple targets have support functions with the name movmem in libgcc
but I did not change any of that because I wasn't sure if that was going
to cause backward/forward compatibility issues.

Bootstrap/regtest passes on i386, x86_64, aarch64, and ppc64le.

Using Segher's cross compile build scripts I was able to build a
cross-compiler and use it to build the linux kernel on the following
targets:

alpha arc arm64 armhf arm csky h8300 i386 ia64 m68k microblaze mips64
nds32 openrisc parisc64 parisc powerpc64le powerpc64 riscv32 riscv64
s390 sh sparc64 sparc x86_64 xtensa

On these targets I was able to build a cross-compiler but could not
build the linux kernel because of unrelated errors or because linux
did not support that target:

avr blackfin c6x frv ft32 lm32 m32r mcore mips nios2 pdp11 powerpc rx
vax visium

OK for trunk?

Thanks!
    Aaron
    


Aaron Sawdey (30):
  Changes to machine independent code
  Changes for aarch64
  Changes for alpha
  Changes to arc
  Changes to arm
  Changes to avr
  Changes to bfin
  Changes to c6x
  Changes to frv
  Changes to ft32
  Changes to h8300
  Changes to i386
  Changes to lm32
  Changes to m32c
  Changes to m32r
  Changes to mcore
  Changes to microblaze
  Changes to mips
  Changes to nds32
  Changes to pa
  Changes to pdp11
  Changes to riscv
  Changes to rs6000
  Changes to rx
  Changes to s390
  Changes to sh
  Changes to sparc
  Changes to vax
  Changes to visium
  Changes to xtensa

 gcc/builtins.c                               |  2 +-
 gcc/config/aarch64/aarch64-protos.h          |  4 ++--
 gcc/config/aarch64/aarch64.c                 |  4 ++--
 gcc/config/aarch64/aarch64.h                 |  2 +-
 gcc/config/aarch64/aarch64.md                |  6 ++---
 gcc/config/alpha/alpha.h                     |  2 +-
 gcc/config/alpha/alpha.md                    |  6 ++---
 gcc/config/arc/arc-protos.h                  |  2 +-
 gcc/config/arc/arc.c                         |  6 ++---
 gcc/config/arc/arc.h                         |  2 +-
 gcc/config/arc/arc.md                        |  4 ++--
 gcc/config/arm/arm-protos.h                  |  6 ++---
 gcc/config/arm/arm.c                         | 18 +++++++-------
 gcc/config/arm/arm.md                        |  8 +++----
 gcc/config/arm/thumb1.md                     |  4 ++--
 gcc/config/avr/avr-protos.h                  |  4 ++--
 gcc/config/avr/avr.c                         | 14 +++++------
 gcc/config/avr/avr.md                        | 32 ++++++++++++-------------
 gcc/config/bfin/bfin-protos.h                |  2 +-
 gcc/config/bfin/bfin.c                       | 12 +++++-----
 gcc/config/bfin/bfin.h                       |  2 +-
 gcc/config/bfin/bfin.md                      |  4 ++--
 gcc/config/c6x/c6x-protos.h                  |  2 +-
 gcc/config/c6x/c6x.c                         |  4 ++--
 gcc/config/c6x/c6x.md                        |  4 ++--
 gcc/config/frv/frv.md                        |  2 +-
 gcc/config/ft32/ft32.md                      |  2 +-
 gcc/config/h8300/h8300.md                    |  4 ++--
 gcc/config/i386/i386-expand.c                | 36 ++++++++++++++--------------
 gcc/config/i386/i386-protos.h                |  2 +-
 gcc/config/i386/i386.h                       |  2 +-
 gcc/config/i386/i386.md                      |  6 ++---
 gcc/config/lm32/lm32.md                      |  2 +-
 gcc/config/m32c/blkmov.md                    | 12 +++++-----
 gcc/config/m32c/m32c-protos.h                |  2 +-
 gcc/config/m32c/m32c.c                       | 10 ++++----
 gcc/config/m32r/m32r.c                       |  4 ++--
 gcc/config/m32r/m32r.md                      |  4 ++--
 gcc/config/mcore/mcore.md                    |  2 +-
 gcc/config/microblaze/microblaze.c           |  2 +-
 gcc/config/microblaze/microblaze.md          |  2 +-
 gcc/config/mips/mips.c                       | 10 ++++----
 gcc/config/mips/mips.h                       | 10 ++++----
 gcc/config/mips/mips.md                      |  2 +-
 gcc/config/nds32/nds32-memory-manipulation.c | 30 +++++++++++------------
 gcc/config/nds32/nds32-multiple.md           |  4 ++--
 gcc/config/nds32/nds32-protos.h              |  2 +-
 gcc/config/pa/pa.c                           |  6 ++---
 gcc/config/pa/pa.md                          | 14 +++++------
 gcc/config/pdp11/pdp11.md                    | 16 ++++++-------
 gcc/config/riscv/riscv.c                     |  2 +-
 gcc/config/riscv/riscv.h                     |  8 +++----
 gcc/config/riscv/riscv.md                    |  2 +-
 gcc/config/rs6000/rs6000.md                  |  2 +-
 gcc/config/rx/rx.md                          | 12 +++++-----
 gcc/config/s390/s390-protos.h                |  2 +-
 gcc/config/s390/s390.c                       | 18 +++++++-------
 gcc/config/s390/s390.md                      | 16 ++++++-------
 gcc/config/sh/sh.md                          |  2 +-
 gcc/config/sparc/sparc.h                     |  2 +-
 gcc/config/vax/vax-protos.h                  |  1 -
 gcc/config/vax/vax.h                         |  2 +-
 gcc/config/vax/vax.md                        |  8 +++----
 gcc/config/visium/visium.h                   |  4 ++--
 gcc/config/visium/visium.md                  |  2 +-
 gcc/config/xtensa/xtensa.md                  |  2 +-
 gcc/defaults.h                               |  6 ++---
 gcc/expr.c                                   | 10 ++++----
 gcc/optabs.def                               |  2 +-
 gcc/targhooks.c                              |  6 ++---
 70 files changed, 226 insertions(+), 227 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2019-07-01 11:30 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-25 20:23 [PATCH 00/30] Rename movmem pattern to cpymem acsawdey
2019-06-25 20:24 ` [PATCH 04/30] Changes to arc acsawdey
2019-07-01 11:30   ` Andrew Burgess
2019-06-25 20:24 ` [PATCH 02/30] Changes for aarch64 acsawdey
2019-06-26  8:59   ` Richard Earnshaw (lists)
2019-06-25 20:24 ` [PATCH 03/30] Changes for alpha acsawdey
2019-06-25 20:25 ` [PATCH 05/30] Changes to arm acsawdey
2019-06-26  8:59   ` Richard Earnshaw
2019-06-25 20:25 ` [PATCH 06/30] Changes to avr acsawdey
2019-06-25 20:25 ` [PATCH 07/30] Changes to bfin acsawdey
2019-06-25 20:26 ` [PATCH 08/30] Changes to c6x acsawdey
2019-06-25 20:26 ` [PATCH 11/30] Changes to h8300 acsawdey
2019-06-25 20:26 ` [PATCH 10/30] Changes to ft32 acsawdey
2019-06-25 20:26 ` [PATCH 09/30] Changes to frv acsawdey
2019-06-25 20:27 ` [PATCH 12/30] Changes to i386 acsawdey
2019-06-26  7:57   ` Uros Bizjak
2019-06-25 20:28 ` [PATCH 01/30] Changes to machine independent code acsawdey
2019-06-25 21:43   ` Jeff Law
2019-06-26  8:37     ` Richard Sandiford
2019-06-26  8:58       ` Richard Earnshaw
2019-06-26 20:16     ` [PATCH 31/30] Update documentation for movmem to cpymem change Aaron Sawdey
2019-06-26 22:06       ` Jeff Law
2019-06-27 18:39     ` [PATCH 32/30] Document movmem/cpymem changes in gcc-10/changes.html Aaron Sawdey
2019-06-28 21:33       ` Jeff Law
2019-06-25 20:28 ` [PATCH 14/30] Changes to m32c acsawdey
2019-06-25 20:28 ` [PATCH 13/30] Changes to lm32 acsawdey
2019-06-25 20:29 ` [PATCH 15/30] Changes to m32r acsawdey
2019-06-25 20:29 ` [PATCH 16/30] Changes to mcore acsawdey
2019-06-25 20:30 ` [PATCH 17/30] Changes to microblaze acsawdey
2019-06-25 20:49   ` Michael Eager
2019-06-25 20:30 ` [PATCH 18/30] Changes to mips acsawdey
2019-06-25 20:31 ` [PATCH 19/30] Changes to nds32 acsawdey
2019-06-25 20:31 ` [PATCH 20/30] Changes to pa acsawdey
2019-06-25 20:32 ` [PATCH 21/30] Changes to pdp11 acsawdey
2019-06-27 14:19   ` Paul Koning
2019-06-25 20:37 ` [PATCH 22/30] Changes to riscv acsawdey
2019-06-25 20:38 ` [PATCH 24/30] Changes to rx acsawdey
2019-06-25 20:38 ` [PATCH 23/30] Changes to rs6000 acsawdey
2019-06-26 21:57   ` Segher Boessenkool
2019-06-25 20:39 ` [PATCH 25/30] Changes to s390 acsawdey
2019-06-25 20:39 ` [PATCH 26/30] Changes to sh acsawdey
2019-06-29  0:50   ` Oleg Endo
2019-06-25 20:40 ` [PATCH 28/30] Changes to vax acsawdey
2019-06-25 20:40 ` [PATCH 27/30] Changes to sparc acsawdey
2019-06-25 20:40 ` [PATCH 29/30] Changes to visium acsawdey
2019-06-25 20:41 ` [PATCH 30/30] Changes to xtensa acsawdey
2019-06-25 20:41   ` augustine.sterling

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).