From: Aaron Sawdey <[email protected]>
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