Go to file
Roger Sayle 07bae5ad21 fold-const.c (fold <ABS_EXPR>): Re-fold the result of folding fabs(-x) into fabs(x).
* fold-const.c (fold <ABS_EXPR>):  Re-fold the result of folding
	fabs(-x) into fabs(x).  Use tree_expr_nonnegative_p to determine
	when the ABS_EXPR (fabs or abs) is not required.
  	(tree_expr_nonnegative_p): Move the logic that sqrt and exp are
	always nonnegative from fold to here.  Additionally, cabs and fabs
	are always non-negative, and pow and atan are non-negative if
	their first argument is non-negative.

	* builtins.c (fold_builtin_cabs): New function to fold cabs{,f,l}.
	Evaluate cabs of a constant at compile-time.  Convert cabs of a
	non-complex argument into fabs.  Convert cabs(z) into
	sqrt(z.r*z.r + z.i*z.i) at the tree-level with -ffast-math or
	-funsafe-math-optimizations or -ffast-math.
	(fold_builtin): Convert BUILT_IN_FABS{,F,L} into an ABS_EXPR.
	Fold BUILT_IN_CABS{,F,L} using fold_builtin_cabs.

	* gcc.dg/builtins-2.c: Add some more tests.
	* gcc.dg/builtins-18.c: New test case.
	* gcc.dg/builtins-19.c: New test case.

From-SVN: r67541
2003-06-06 12:36:26 +00:00
boehm-gc
config
contrib
fastjar
gcc fold-const.c (fold <ABS_EXPR>): Re-fold the result of folding fabs(-x) into fabs(x). 2003-06-06 12:36:26 +00:00
include
INSTALL
libf2c install.tex: Document profiledbootstrap. 2003-06-05 16:36:12 +00:00
libffi
libiberty re PR other/10810 (gcc-3.3 fails make check: buffer overrun in test_demangle.c) 2003-06-05 16:38:22 +00:00
libjava re PR libgcj/6181 (Mauve Introspector.jdk11: getBeanInfo fail for AWT classes) 2003-06-06 10:03:30 +00:00
libobjc
libstdc++-v3 re PR libstdc++/9024 (Input fails after call to basic_filebuf<>::pubsetbuf(0, 0)) 2003-06-06 00:19:17 +00:00
maintainer-scripts
zlib
.cvsignore
ChangeLog install.tex: Document profiledbootstrap. 2003-06-05 16:36:12 +00:00
config-ml.in
config.guess
config.if
config.sub
configure
configure.in
COPYING
COPYING.LIB
install-sh
libtool.m4
ltcf-c.sh
ltcf-cxx.sh
ltcf-gcj.sh
ltconfig
ltmain.sh
MAINTAINERS Add Dara Hazeghi and Andrew Pinski to Bugzilla-only maintainers. Remove user names from other bug database only maintainers since bugzilla no longer has user names. 2003-06-05 08:44:47 -06:00
Makefile.def
Makefile.in install.tex: Document profiledbootstrap. 2003-06-05 16:36:12 +00:00
Makefile.tpl install.tex: Document profiledbootstrap. 2003-06-05 16:36:12 +00:00
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 file 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.html for how to report bugs usefully.