Go to file
Stephen Clarke fe3ad57221 bt-load.c: New file.
2003-06-18  Stephen Clarke <stephen.clarke@superh.com>
            J"orn Rennecke <joern.rennecke@superh.com>

	* bt-load.c: New file.
	* Makefile.in (OBJS): Include bt-load.o
	(bt-load.o): Add dependencies.
	* flags.h (flag_branch_target_load_optimize): Declare.
	(flag_branch_target_load_optimize2): Likewise.
	* hooks.c (hook_reg_class_void_no_regs): New function.
	(hook_bool_bool_false): Likewise.
	* hooks.h (hook_reg_class_void_no_regs, hook_bool_bool_false): Declare.
	* rtl.h (branch_target_load_optimize): Declare.
	* target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define.
	(TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
	(TARGET_INITIALIZER): Include these.
	* target.h (struct gcc_target): Add branch_target_register_class
	and branch_target_register_callee_saved members.
	* toplev.c (enum dump_file_index): Add DFI_branch_target_load
	(dump_file) Add "tars" entry.
	(flag_branch_target_load_optimize): New variable.
	(flag_branch_target_load_optimize2): Likewise.
	(lang_independent_options): Add entries for new options.
	(rest_of_compilation): Call branch_target_load_optimize.
	* doc/tm.texi (TARGET_BRANCH_TARGET_REGISTER_CLASS): Document.
	(TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
	* doc/invoke.texi: Document -fbranch-target-load-optimize and
	-fbranch-target-load-optimize2.
	* rtl.h (epilogue_completed): Declare.
	* recog.c (epilogue_completed): New variable.
	* toplev.c (rest_of_compilation): Set it.
	* flow.c (mark_regs_live_at_end): Use it.
	* config/ia64/ia64.c (ia64_output_mi_thunk): Set it.
	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.

	* sh.c (shmedia_space_reserved_for_target_registers): New variable.
	(sh_target_reg_class): New function.
	(sh_optimize_target_register_callee_saved): Likwise.
	(shmedia_target_regs_stack_space): Likewise.
	(shmedia_reserve_space_for_target_registers_p): Likewise.
	(shmedia_target_regs_stack_adjust): Likewise.
	(TARGET_BRANCH_TARGET_REGISTER_CLASS): Override.
	(TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise.
	(calc_live_regs): If flag_branch_target_load_optimize2 and
	TARGET_SAVE_ALL_TARGET_REGS is enabled, and we have space reserved
	for target registers, make sure that we save all target registers.
	(sh_expand_prologue, sh_expand_epilogue): Take target register
	optimizations into account.  Collapse stack adjustments if that
	is beneficial.
	(initial_elimination_offset): Reserve space for target registers
	if necessary.
	* sh.h (SAVE_ALL_TR_BIT, TARGET_SAVE_ALL_TARGET_REGS): Define.
	(OPTIMIZATION_OPTIONS): Enable flag_branch_target_load_optimize.

Co-Authored-By: J"orn Rennecke <joern.rennecke@superh.com>

From-SVN: r68165
2003-06-18 20:43:55 +01:00
boehm-gc configure.in: define GC_DLL under mingw if --enable-shared 2003-04-28 20:54:37 +00:00
config * acinclude.m4: Accept i[3456789]86 for machine type. 2003-05-19 14:09:59 -04:00
contrib * paranoia.cc: Fix spelling error. 2003-06-13 13:57:27 +00:00
fastjar re PR fastjar/9532 (jar -C flag is incompatible with Sun's (fastjar uses nonportable feature of getcwd)) 2003-06-15 20:25:44 +00:00
gcc bt-load.c: New file. 2003-06-18 20:43:55 +01:00
include alloc-pool.c: Don't check HAVE_LONG_DOUBLE. 2003-06-17 14:10:01 +00:00
INSTALL
libf2c bes.c, dbes.c: Remove. 2003-06-15 04:43:18 +00:00
libffi sysv.S: Avoid gas-only .uleb128/.sleb128 directives. 2003-06-13 11:59:53 +00:00
libiberty re PR bootstrap/10974 (Bootstrap failure) 2003-06-09 05:20:02 +00:00
libjava Oops, accidentally committed the 3.3 version to mainline. Undone. 2003-06-18 15:29:12 +00:00
libobjc hash.c, [...]: Replace "GNU CC" with "GCC". 2003-05-23 20:25:39 +00:00
libstdc++-v3 std_sstream.h (setbuf): Check __n >= 0. 2003-06-18 19:13:18 +00:00
maintainer-scripts * gcc_release: Do not update gcc_latest_snapshot tag any longer. 2003-06-18 13:02:24 +00:00
zlib libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on mips*. 2003-04-11 04:20:21 +00:00
.cvsignore
ChangeLog configure.in: Update testsuite_flags to new location. 2003-06-18 01:55:13 +00:00
config-ml.in config-ml.in: Propagate INSTALL variables. 2003-05-06 20:58:44 +00:00
config.guess config.guess: Update to 2003-06-12 version. 2003-06-14 07:08:09 -07:00
config.if config.if: If gcc_version is already set, just use it. 2003-01-30 11:52:51 +00:00
config.sub config.guess: Update to 2003-06-12 version. 2003-06-14 07:08:09 -07:00
configure configure.in: Update testsuite_flags to new location. 2003-06-18 01:55:13 +00:00
configure.in configure.in: Update testsuite_flags to new location. 2003-06-18 01:55:13 +00:00
COPYING
COPYING.LIB
install-sh
libtool.m4 libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on mips*. 2003-04-11 04:20:21 +00:00
ltcf-c.sh
ltcf-cxx.sh libtool.m4 (LD): Append -melf* option to LD on IRIX with GNU ld. 2003-02-20 01:11:51 +00:00
ltcf-gcj.sh ltcf-cxx.sh: Replace $linker_flags with $compiler_flags wherever it is used as argument to $CC. 2003-02-19 23:50:23 +00:00
ltconfig libtool.m4 (LD): Append -melf* option to LD on IRIX with GNU ld. 2003-02-20 02:09:45 +00:00
ltmain.sh
MAINTAINERS * MAINTAINERS (Write After Approval): Remove Andrew Haley. 2003-06-17 10:00:52 +00:00
Makefile.def Makefile.tpl: Make 'recursive targets' using autogen rather than shell loop. 2003-06-03 20:42:13 +00:00
Makefile.in Makefile.tpl: Remove BUILD_CC stuff. 2003-06-17 21:53:49 +00:00
Makefile.tpl Makefile.tpl: Remove BUILD_CC stuff. 2003-06-17 21:53:49 +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.