Go to file
Richard Sandiford abcc43f532 Move cabs simplifications to match.pd
The fold code also expanded cabs(x+yi) to fsqrt(x*x+y*y) when optimising
for speed.  tree-ssa-math-opts.c has this transformation too, but unlike
the fold code, it first checks whether the target implements the sqrt
optab.  The patch simply removes the fold code and keeps the
tree-ssa-math-opts.c logic the same.

gcc.dg/lto/20110201-1_0.c was relying on us replacing cabs
with fsqrt even on targets where fsqrt is itself a library call.
The discussion leading up to that patch suggested that we only
want to test the fold on targets with a square root instruction,
so it would be OK to skip the test on other targets:

        https://gcc.gnu.org/ml/gcc-patches/2011-07/msg01961.html
        https://gcc.gnu.org/ml/gcc-patches/2011-07/msg02036.html

The patch does that using the sqrt_insn effective target.

It's possible that removing the tree folds renders the LTO trick
unnecessary, but since the test was originally for an ICE, it seems
better to leave it as-is.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.
20110201-1_0.c passes on all three.

gcc/
	* builtins.c (fold_builtin_cabs): Delete.
	(fold_builtin_1): Update accordingly.  Handle constant arguments here.
	* match.pd: Add rules previously handled by fold_builtin_cabs.

gcc/testsuite/
	* gcc.dg/lto/20110201-1_0.c: Restrict to sqrt_insn targets.
	Add associated options for arm*-*-*.
	(sqrt): Remove dummy definition.

From-SVN: r229141
2015-10-21 20:19:25 +00:00
boehm-gc Testsuite: add dg-{begin|end}-multiline-output commands 2015-10-09 13:55:23 +00:00
config libsanitizer merge from upstream r250806, compiler part. 2015-10-21 10:40:54 +03:00
contrib
fixincludes
gcc Move cabs simplifications to match.pd 2015-10-21 20:19:25 +00:00
gnattools
gotools
include Fix PR63758 by using the _NSGetEnviron() API on Darwin 2015-10-18 10:33:37 +00:00
INSTALL
intl
libada
libatomic Testsuite: add dg-{begin|end}-multiline-output commands 2015-10-09 13:55:23 +00:00
libbacktrace
libcc1
libcilkrts
libcpp [PATCH 1/9] ENABLE_CHECKING refactoring 2015-10-13 15:31:48 -06:00
libdecnumber
libffi
libgcc divmodqi.S: Return 0x00 by default for div by 0. 2015-10-16 17:47:07 -04:00
libgfortran
libgo Testsuite: add dg-{begin|end}-multiline-output commands 2015-10-09 13:55:23 +00:00
libgomp reduction-5.c: Set sane vector_length. 2015-10-20 21:09:09 +00:00
libiberty Fix PR63758 by using the _NSGetEnviron() API on Darwin 2015-10-18 10:33:37 +00:00
libitm Testsuite: add dg-{begin|end}-multiline-output commands 2015-10-09 13:55:23 +00:00
libjava
libmpx re PR other/66887 (trunk/libmpx/mpxrt/mpxrt.c:158: possible performance problem) 2015-10-15 09:26:39 +00:00
libobjc
liboffloadmic builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR, [...]): New. 2015-10-13 21:06:23 +02:00
libquadmath
libsanitizer HOWTO_MERGE: New file. 2015-10-21 10:53:22 +03:00
libssp
libstdc++-v3 Document options for Filesystem TS library 2015-10-16 14:55:12 +01:00
libvtv Enable VTV for aarch64 and arm 2015-10-20 10:39:30 +00:00
lto-plugin
maintainer-scripts
zlib
.dir-locals.el
.gitignore
ABOUT-NLS
ChangeLog Add --enable-compressed-debug-sections={all,gas,gold,ld} 2015-10-20 09:29:28 -07:00
ChangeLog.jit
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.rpath
config.sub
configure Add --enable-compressed-debug-sections={all,gas,gold,ld} 2015-10-20 09:29:28 -07:00
configure.ac Add --enable-compressed-debug-sections={all,gas,gold,ld} 2015-10-20 09:29:28 -07: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 * MAINTAINERS: Update list of Ada maintainers and email addresses. 2015-10-16 12:48:32 +02:00
Makefile.def
Makefile.in
Makefile.tpl
missing
mkdep
mkinstalldirs
move-if-change
README
symlink-tree
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.