From: Aaron Sawdey <acsaw...@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