Go to file
Hongtao Liu 66574c5374 i386: Update SSE <-> integer move costs
Since inline_secondary_memory_needed has

  /* ??? This is a lie.  We do have moves between mmx/general, and for
     mmx/sse2.  But by saying we need secondary memory we discourage the
     register allocator from using the mmx registers unless needed.  */
  if (MMX_CLASS_P (class1) != MMX_CLASS_P (class2))
    return true;

moves between MMX and non-MMX units require secondary memory.   There
is no need to check moves between MMX and integer units.

struct processor_costs has:

  const int mmxsse_to_integer;  /* cost of moving mmxsse register to
                                   integer.  */
  const int ssemmx_to_integer;  /* cost of moving integer to mmxsse register. */

This patch also renames mmxsse_to_integer to sse_to_integer and
ssemmx_to_integer to integer_to_sse.

Tested on Linux/x86-64.

	PR target/90877
	* config/i386/i386-features.c
	(dimode_scalar_chain::compute_convert_gain): Replace
	mmxsse_to_integer with sse_to_integer.
	* config/i386/i386.c (ix86_register_move_cost): Verify that
	moves between MMX and non-MMX units require secondary memory.
	Correct costs of moves between SSE and integer units.
	* config/i386/i386.h (processor_costs): Rename cost of moving
	SSE register to integer to sse_to_integer.  Rename cost of
	moving integer register to SSE to integer_to_sse.

From-SVN: r272294
2019-06-14 08:41:43 -07:00
config Generalize getconf _NPROCESSORS_ONLN 2019-05-30 09:06:48 +00:00
contrib contrib/mklog: Open files in text mode 2019-05-21 11:37:05 +03:00
fixincludes fixincludes - fix PR90379 2019-05-11 20:19:31 +00:00
gcc i386: Update SSE <-> integer move costs 2019-06-14 08:41:43 -07:00
gnattools
gotools Makefile.am (check-go-tool): Only chmod check-go-dir if it exists. 2019-05-27 19:21:22 +00:00
include Add warn_unused_result attribute for memory-related functions in libiberty. 2019-06-10 07:42:43 +00:00
INSTALL
intl
libada Update copyright years. 2019-01-01 13:31:55 +01:00
libatomic [NetBSD] Add support for the Arm EABI. 2019-06-14 14:04:20 +00:00
libbacktrace Makefile.am (BUILDTESTS): Remove test_elf, add test_elf_32 and test_elf_64. 2019-05-24 11:55:21 +00:00
libcc1 [C++ PATCH] Using decls 2019-05-21 14:33:24 +00:00
libcpp [PATCH] Fix PR 81721: ICE with PCH and Pragma warning and C++ operator 2019-05-19 23:59:06 -07:00
libdecnumber Update copyright years. 2019-01-01 13:31:55 +01:00
libffi
libgcc [NetBSD] Add support for the Arm EABI. 2019-06-14 14:04:20 +00:00
libgfortran fortran/89100: Default widths with -fdec-format-defaults 2019-05-22 14:56:01 +03:00
libgo go/internal/gccgoimporter: ignore unexported and imported names 2019-06-07 00:07:50 +00:00
libgomp PR tree-optimization/89713 - Assume loop with an exit is finite 2019-06-13 04:17:42 +00:00
libhsail-rt Update copyright years. 2019-01-01 13:31:55 +01:00
libiberty cp-demangle.c: Don't define CP_DYNAMIC_ARRAYS if __STDC_NO_VLA__ is non-zero. 2019-05-31 12:25:48 -06:00
libitm Makefile.am (finclude): Remove. 2019-05-03 09:20:04 +02:00
libobjc re PR target/89093 (C++ exception handling clobbers d8 VFP register) 2019-04-23 12:03:41 +02:00
liboffloadmic PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
libphobos Check if Solaris ld supports -z relax=transtls 2019-05-07 10:38:45 +00:00
libquadmath Update copyright years. 2019-01-01 13:31:55 +01:00
libsanitizer rs6000: Fix sanitizer build (PR90639) 2019-05-27 21:12:19 +02:00
libssp Update copyright years. 2019-01-01 13:31:55 +01:00
libstdc++-v3 Disable -Wctor-dtor-privacy warnings for some standard types 2019-06-14 15:03:20 +01:00
libvtv Fix testsuite 2019-02-20 08:07:19 -08:00
lto-plugin lto-plugin, removed unused variable 2019-05-15 14:10:27 +00:00
maintainer-scripts crontab: Snapshots from trunk are now GCC 10 related. 2019-05-04 13:28:49 +00:00
zlib Makefile.am (noinst_LTLIBRARIES): Rename libzgcj_convience.la to libz_convenience.la. 2019-01-21 17:23:58 +00:00
.dir-locals.el
.gitattributes
.gitignore
ABOUT-NLS
ar-lib
ChangeLog Add myself to MAINTAINERS 2019-06-12 20:10:21 +00:00
ChangeLog.jit
ChangeLog.tree-ssa
compile
config-ml.in
config.guess Update config.guess, config.sub (PR target/88535) 2019-01-03 11:28:27 +00:00
config.rpath
config.sub Update config.guess, config.sub (PR target/88535) 2019-01-03 11:28:27 +00:00
configure Initial TI PRU GCC port 2019-06-12 19:04:24 +00:00
configure.ac Initial TI PRU GCC port 2019-06-12 19:04:24 +00:00
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 Add myself to MAINTAINERS 2019-06-12 20:10:21 +00:00
Makefile.def Import these changes from the binutils/gdb repository: 2019-06-11 12:05:49 +00:00
Makefile.in Import these changes from the binutils/gdb repository: 2019-06-11 12:05:49 +00:00
Makefile.tpl re PR lto/85574 (LTO bootstapped binaries differ) 2019-05-02 13:58:47 +00:00
missing
mkdep
mkinstalldirs
move-if-change
multilib.am
README
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.