gcc/gcc ChangeLog c-common.h c-semantics.c exp ...

jason@gcc.gnu.org jason@gcc.gnu.org
Mon Jun 18 09:15:00 GMT 2001


CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	jason@gcc.gnu.org	2001-06-18 09:15:14

Modified files:
	gcc            : ChangeLog c-common.h c-semantics.c expr.c 
	gcc/cp         : ChangeLog cp-tree.h decl.c semantics.c typeck.c 

Log message:
	Implement the Named Return Value optimization.
	* c-common.h (RETURN_NULLIFIED_P): New macro.
	* c-semantics.c (genrtl_return_stmt): Check it.
	* cp-tree.h (struct cp_language_function): Add x_return_value.
	(current_function_return_value): Now a macro.
	* decl.c: Don't define it.
	(define_label, finish_case_label): Don't clear it.
	(init_decl_processing): Don't register it with GC.
	* semantics.c (genrtl_finish_function): Don't check it for
	no_return_label.  Copy the RTL from the return value to
	current_function_return_value and walk, calling...
	(nullify_returns_r): ...this new fn.
	* typeck.c (check_return_expr): Set current_function_return_value.
	
	* expr.c (clear_storage): Set TREE_NOTHROW on the decl for memset.
	(emit_block_move): Likewise.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=1.10399&r2=1.10400
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-common.h.diff?cvsroot=gcc&r1=1.74&r2=1.75
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-semantics.c.diff?cvsroot=gcc&r1=1.27&r2=1.28
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/expr.c.diff?cvsroot=gcc&r1=1.327&r2=1.328
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.2414&r2=1.2415
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cp-tree.h.diff?cvsroot=gcc&r1=1.619&r2=1.620
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/decl.c.diff?cvsroot=gcc&r1=1.793&r2=1.794
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/semantics.c.diff?cvsroot=gcc&r1=1.213&r2=1.214
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/typeck.c.diff?cvsroot=gcc&r1=1.351&r2=1.352



More information about the Gcc-cvs mailing list