egcs/gcc ChangeLog tm.texi sibcall.c final.c g ...

jakub@gcc.gnu.org jakub@gcc.gnu.org
Fri Mar 24 13:48:00 GMT 2000


CVSROOT:	/cvs/gcc
Module name:	egcs
Changes by:	jakub@sourceware.cygnus.com	00/03/24 13:48:01

Modified files:
	gcc            : ChangeLog tm.texi sibcall.c final.c global.c 
	                 calls.c 
	gcc/config/sparc: sparc.h sparc.md sparc-protos.h sparc.c 

Log message:
	* sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
	comparison if regno's are equal.
	* calls.c (initialize_argument_informat): Add ecf_flags argument.
	Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
	(expand_call): Update caller.
	Avoid making a sibling call if argument size of the callee is larger
	than argument size of the caller.
	Call hard_function_value with outgoing set if in sibcall pass.
	Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
	
	* final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
	Change LEAF_REGISTERS from an array initializer to actual array
	identifier. Move static global variable into the function.
	(leaf_function_p): Allow SIBLING_CALL_P calls even outside of
	sequences for leaf functions.
	* global.c (global_alloc): Likewise.
	* tm.texi (LEAF_REGISTERS): Update documentation.
	
	* config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
	TARGET_FLAT leaf disabling hack.
	(LEAF_REGISTERS): Changed from an array initializer to actual array
	identifier to avoid duplication and remove the above hack.
	(FUNCTION_OK_FOR_SIBCALL): Define.
	* config/sparc/sparc.md (sibcall): New attr type. Use it almost
	always like call attribute.
	(eligible_for_sibcall_delay): New attribute.
	(sibcall): New delay type.
	(sibcall, sibcall_value, sibcall_epilogue): New expands.
	(sibcall_symbolic_sp32, sibcall_symbolic_sp64,
	sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
	* config/sparc/sparc.c (sparc_leaf_regs): New array.
	(eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
	New functions.
	(output_function_epilogue): Move part of the code into
	output_restore_regs.
	(ultra_code_from_mask, ultrasparc_sched_reorder): Handle
	TYPE_SIBCALL.
	* sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
	prototypes.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/ChangeLog.diff?cvsroot=gcc&r1=1.6023&r2=1.6024
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/tm.texi.diff?cvsroot=gcc&r1=1.118&r2=1.119
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/sibcall.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/final.c.diff?cvsroot=gcc&r1=1.118&r2=1.119
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/global.c.diff?cvsroot=gcc&r1=1.57&r2=1.58
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/calls.c.diff?cvsroot=gcc&r1=1.102&r2=1.103
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/config/sparc/sparc.h.diff?cvsroot=gcc&r1=1.107&r2=1.108
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/config/sparc/sparc.md.diff?cvsroot=gcc&r1=1.103&r2=1.104
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/config/sparc/sparc-protos.h.diff?cvsroot=gcc&r1=1.8&r2=1.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/config/sparc/sparc.c.diff?cvsroot=gcc&r1=1.116&r2=1.117



More information about the Gcc-cvs mailing list