This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/16532] Inefficient jump to epilogue


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-09-28 06:26 -------
Subject: Bug 16532

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	ebotcazou@gcc.gnu.org	2004-09-28 06:26:08

Modified files:
	gcc            : ChangeLog 
	gcc/config/sparc: sparc-protos.h sparc.c sparc.h sparc.md 

Log message:
	PR target/16532
	* config/sparc/sparc.c (struct machine_function): New field
	'leaf_function_p' and 'prologue_data_valid_p'.
	(sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro
	to conveniently access the above fields.
	(TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete.
	(eligible_for_return_delay): Use 'sparc_leaf_function_p' instead
	of the generic flavor 'current_function_uses_only_leaf_regs'.
	(eligible_for_sibcall_delay): Likewise.
	(sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set
	'sparc_prologue_data_valid_p'.  Use 'sparc_leaf_function_p'.
	(sparc_asm_function_prologue): Add sanity check for the assumption
	made in 'sparc_expand_prologue'.  Use 'sparc_leaf_function_p'.
	(sparc_can_use_return_insn_p): New function.
	(sparc_expand_epilogue): Use 'sparc_leaf_function_p'.
	(output_restore): Likewise.
	(output_sibcall): Likewise.
	(sparc_output_mi_thunk): Likewise.
	* config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare.
	* config/sparc/sparc.md (return): New expander.
	
	* config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.5651&r2=2.5652
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc-protos.h.diff?cvsroot=gcc&r1=1.48&r2=1.49
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.c.diff?cvsroot=gcc&r1=1.335&r2=1.336
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.h.diff?cvsroot=gcc&r1=1.267&r2=1.268
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/sparc/sparc.md.diff?cvsroot=gcc&r1=1.215&r2=1.216



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16532


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]