Go to file
Jakub Jelinek 8148fe656d re PR middle-end/21265 (GCC fails to optimize tail call to memset)
PR middle-end/21265
	* expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
	(clear_storage): Add argument.
	* expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
	Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
	tailcall.
	(emit_block_move): Handle BLOCK_OP_TAILCALL method.
	(clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
	(store_expr, store_constructor): Adjust callers.
	* builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
	to emit_block_move if CALL_EXPR_TAILCALL (exp).
	(expand_builtin_memmove): Add ORIG_EXP argument, copy
	CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
	(expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
	with EXP.  Pass EXP to expand_builtin_memmove.
	(expand_builtin_memset): Add ORIG_EXP argument, pass
	BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
	(expand_builtin_bzero): Replace ARGLIST argument with EXP.
	Pass EXP to expand_builtin_memset.
	(expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
	the new CALL_EXPR.
	(expand_builtin_strncmp): Likewise.
	(expand_builtin_printf): Replace ARGLIST argument with EXP.
	Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
	(expand_builtin_fprintf): Likewise.
	(expand_builtin): Adjust calls to
	expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.

	* gcc.dg/20050503-1.c: New test.

From-SVN: r99187
2005-05-04 00:22:02 +02:00
boehm-gc
config configure: Regenerate. 2005-04-29 13:54:56 +00:00
contrib
fastjar
fixincludes
gcc re PR middle-end/21265 (GCC fails to optimize tail call to memset) 2005-05-04 00:22:02 +02:00
gnattools
include
INSTALL
intl
libada
libcpp Fix matmul PR18857 and supply testcase 2005-04-30 18:17:54 +00:00
libffi Fix typo in previous patch. 2005-04-29 15:15:01 +02:00
libgfortran re PR libfortran/18958 ([4.0 only] eoshift segfaults when shifting off the end of an array) 2005-04-30 20:51:39 +00:00
libiberty
libjava VMSecurityManager.java (currentClassLoader): Use 'systemClasssLoader' directly. 2005-05-03 22:15:01 +00:00
libmudflap
libobjc
libstdc++-v3 os_defines.h: Remove obsolete __off_t, __off64_t, __ssize_t defines. 2005-05-01 16:26:43 +00:00
maintainer-scripts
zlib
.cvsignore
ABOUT-NLS
ChangeLog configure: Regenerate. 2005-04-29 13:54:56 +00:00
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.rpath
config.sub
configure configure: Regenerate. 2005-04-29 13:54:56 +00:00
configure.in
COPYING
COPYING.LIB
depcomp
install-sh
libtool.m4
ltcf-c.sh
ltcf-cxx.sh
ltcf-gcj.sh
ltconfig
ltmain.sh
MAINTAINERS
Makefile.def
Makefile.in
Makefile.tpl
missing
mkdep
mkinstalldirs
move-if-change
README
README.SCO
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.