mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 02:44:18 +08:00
33386d1421
When I was making a patch to rework TARGET_P8_VECTOR, I noticed that there are some redundant checks and dead code related to TARGET_DIRECT_MOVE, so I made this patch as one separated preparatory patch, it consists of: - Check either TARGET_DIRECT_MOVE or TARGET_P8_VECTOR only according to the context, rather than checking both of them since they are actually the same (TARGET_DIRECT_MOVE is defined as TARGET_P8_VECTOR). - Simplify TARGET_VSX && TARGET_DIRECT_MOVE as TARGET_DIRECT_MOVE since direct move ensures VSX enabled. - Replace some TARGET_POWERPC64 && TARGET_DIRECT_MOVE as TARGET_DIRECT_MOVE_64BIT to simplify it. - Remove some dead code guarded with TARGET_DIRECT_MOVE but the condition never holds here. gcc/ChangeLog: * config/rs6000/rs6000.cc (rs6000_option_override_internal): Simplify TARGET_P8_VECTOR && TARGET_DIRECT_MOVE as TARGET_P8_VECTOR. (rs6000_output_move_128bit): Simplify TARGET_VSX && TARGET_DIRECT_MOVE as TARGET_DIRECT_MOVE. * config/rs6000/rs6000.h (TARGET_XSCVDPSPN): Simplify conditions TARGET_DIRECT_MOVE || TARGET_P8_VECTOR as TARGET_P8_VECTOR. (TARGET_XSCVSPDPN): Likewise. (TARGET_DIRECT_MOVE_128): Simplify TARGET_DIRECT_MOVE && TARGET_POWERPC64 as TARGET_DIRECT_MOVE_64BIT. (TARGET_VEXTRACTUB): Likewise. (TARGET_DIRECT_MOVE_64BIT): Simplify TARGET_P8_VECTOR && TARGET_DIRECT_MOVE as TARGET_DIRECT_MOVE. * config/rs6000/rs6000.md (signbit<mode>2, @signbit<mode>2_dm, *signbit<mode>2_dm_mem, floatsi<mode>2_lfiwax, floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext, floatunssi<mode>2_lfiwzx, float<QHI:mode><SFDF:mode>2, *float<QHI:mode><SFDF:mode>2_internal, floatuns<QHI:mode><SFDF:mode>2, *floatuns<QHI:mode><SFDF:mode>2_internal, p8_mtvsrd_v16qidi2, p8_mtvsrd_df, p8_xxpermdi_<mode>, reload_vsx_from_gpr<mode>, p8_mtvsrd_sf, reload_vsx_from_gprsf, p8_mfvsrd_3_<mode>, reload_gpr_from_vsx<mode>, reload_gpr_from_vsxsf, unpack<mode>_dm): Simplify TARGET_DIRECT_MOVE && TARGET_POWERPC64 as TARGET_DIRECT_MOVE_64BIT. (unpack<mode>_nodm): Simplify !TARGET_DIRECT_MOVE || !TARGET_POWERPC64 as !TARGET_DIRECT_MOVE_64BIT. (fix_trunc<mode>si2, fix_trunc<mode>si2_stfiwx, fix_trunc<mode>si2_internal): Simplify TARGET_P8_VECTOR && TARGET_DIRECT_MOVE as TARGET_DIRECT_MOVE. (fix_trunc<mode>si2_stfiwx, fixuns_trunc<mode>si2_stfiwx): Remove some dead code as the guard TARGET_DIRECT_MOVE there never holds. (fixuns_trunc<mode>si2_stfiwx): Change TARGET_P8_VECTOR with TARGET_DIRECT_MOVE which is a better fit. * config/rs6000/vsx.md (define_peephole2 for SFmode in GPR): Simplify TARGET_DIRECT_MOVE && TARGET_POWERPC64 as TARGET_DIRECT_MOVE_64BIT. |
||
---|---|---|
.forgejo | ||
.github | ||
c++tools | ||
config | ||
contrib | ||
fixincludes | ||
gcc | ||
gnattools | ||
gotools | ||
include | ||
INSTALL | ||
libada | ||
libatomic | ||
libbacktrace | ||
libcc1 | ||
libcody | ||
libcpp | ||
libdecnumber | ||
libffi | ||
libgcc | ||
libgfortran | ||
libgm2 | ||
libgo | ||
libgomp | ||
libgrust | ||
libiberty | ||
libitm | ||
libobjc | ||
libphobos | ||
libquadmath | ||
libsanitizer | ||
libssp | ||
libstdc++-v3 | ||
libvtv | ||
lto-plugin | ||
maintainer-scripts | ||
zlib | ||
.b4-config | ||
.dir-locals.el | ||
.gitattributes | ||
.gitignore | ||
ABOUT-NLS | ||
ar-lib | ||
ChangeLog | ||
ChangeLog.jit | ||
ChangeLog.tree-ssa | ||
compile | ||
config-ml.in | ||
config.guess | ||
config.rpath | ||
config.sub | ||
configure | ||
configure.ac | ||
COPYING | ||
COPYING3 | ||
COPYING3.LIB | ||
COPYING.LIB | ||
COPYING.RUNTIME | ||
depcomp | ||
install-sh | ||
libtool-ldflags | ||
libtool.m4 | ||
lt~obsolete.m4 | ||
ltgcc.m4 | ||
ltmain.sh | ||
ltoptions.m4 | ||
ltsugar.m4 | ||
ltversion.m4 | ||
MAINTAINERS | ||
Makefile.def | ||
Makefile.in | ||
Makefile.tpl | ||
missing | ||
mkdep | ||
mkinstalldirs | ||
move-if-change | ||
multilib.am | ||
README | ||
SECURITY.txt | ||
symlink-tree | ||
test-driver | ||
ylwrap |
This directory contains the GNU Compiler Collection (GCC). The GNU Compiler Collection is free software. See the files whose names start with COPYING for copying permission. The manuals, and some of the runtime libraries, are under different terms; see the individual source files for details. The directory INSTALL contains copies of the installation information as HTML and plain text. The source of this information is gcc/doc/install.texi. The installation information includes details of what is included in the GCC sources and what files GCC installs. See the file gcc/doc/gcc.texi (together with other files that it includes) for usage and porting information. An online readable version of the manual is in the files gcc/doc/gcc.info*. See http://gcc.gnu.org/bugs/ for how to report bugs usefully. Copyright years on GCC source files may be listed using range notation, e.g., 1987-2012, indicating that every year in the range, inclusive, is a copyrightable year that could otherwise be listed individually.