Go to file
J"orn Rennecke cb2afeb31e Fix consistency problems with reg_equiv_{mem,address};
Improve reload inheritance;
        * reload.c (reload_out_reg): New variable.
        (loc_mentioned_in_p, remove_address_replacements): New functions.
        (remove_replacements): Deleted.
        (push_reload): Set reload_out_reg[i].
        When merging, also set reload_{in,out}_reg[i], and remove
        duplicate address reloads.
        (combine_reloads): Copy reload_out_reg[i].
        (find_reloads): Do make_memloc substitution also when
        reg_equiv_memory_loc[regno] and num_not_at_initial_offset
        are both nonzero.
        Include *recog_operand_loc in commutativity operand changes.
        Generate optional output reloads.
        Delete reference to n_memlocs.  Don't set *recog_operand_loc before
        processing operands.  Call make_memloc in reg_equiv_address code.
        Set *recog_operand_loc only after processing operands, and only
        if replace is true.  Return a value.
        When changing address reload types for operands that didn't get
        reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
        RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
        Don't emit USEs for pseudo SUBREGs when not replacing.
        (find_reloads_address): Do make_memloc substitution also when
        reg_equiv_memory_loc[regno] and num_not_at_initial_offset
        are both nonzero.
        (find_reloads_toplev): Likewise.
        Call make_memloc in reg_equiv_address code.
        (debug_reload_to_stream): Add code to output reload_out_reg.
        (make_memloc): Delete local variable i, ifdefed out code, and
        references to memlocs and n_memlocs.
        (memlocs, n_memlocs): Delete.
        (push_secondary_reload): Clear reload_out_reg.
        (find_reloads_address_1): Provide memrefloc argument to all calls
        to find_reloads_address.
        In AUTO_INC code, handle non-directly addressable equivalences properly.
        * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
        (find_reloads): Add return type.
        (remove_address_replacements, deallocate_reload_reg): Declare.
        * reload1.c (num_not_at_initial_offset): No longer static.
        (delete_address_reloads, delete_address_reloads_1): Likewise.
        (deallocate_reload_reg): New function.
        (spill_reg_stored_to): New array.
        (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
        (eliminate_regs_in_insn): Move assignments of previous_offset and
        max_offset fields, and recalculation of num_not_at_initial_offset
        into new static function:
        (update_eliminable_offsets) .
        (reload_as_needed): Call update_eliminable_offsetss after calling
        find_reloads.
        Call forget_old_reloads_1 with contents of reloaded auto_inc
        expressions if the actual addressing can't be changed to match the
        auto_inc.
        (choose_reload_regs): For inheritance, replace
        reload_reg_free_before_p test with reload_reg_ions.
        (emit_reload_insns): If reload_in is a MEM, set OLD to
        reload_in_reg[j].
        Don't reload directly from oldequiv; if it's a pseudo with a
        stack slot, use reload_in[j].
        Check that reload_in_reg[j] is a MEM before replacing reload_in
        from reg_reloaded_contents.
        Include non-spill registers in reload inheritance processing.
        Also try to use reload_out_reg to set spill_reg_store /
        reg_last_reload_reg.
        In code to set new_spill_reg_store, use single_set to find out if
        there is a single set.
        Add code that allows to delete optional output reloads.
        Add code to allow deletion of output reloads that use no spill reg.
        At the end, set reload_override_in to oldequiv.
        Also call delete_output_reload if reload_out_reg is equal to old
        in oldequiv code.
        Add code to call delete_output_reload for stores with no matching load.
        Set / use spill_reg_stored_to.
        Handle case where secondary output reload uses a temporary, but
        actual store isn't found.
        When looking for a store of a value not loaded in order to call
        delete_output_reload, count_occurences should return 0 for no
        loads; but discount inherited input reloadill_reg_stored_to.
        Do checks for extra uses of REG.  Changed all
        callers.
        Use delete_address_reloads.
        (reload): Take return value of find_reloads into account.
        If a no-op set needs more than one reload, delete it.
        (reload_reg_free_before_p): RELOAD_FOR_INPUT
        can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
        for the same operand.
        (clear_reload_reg_in_use): Check for other reloads that keep a
        register in use.
        (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS /
        RELOAD_FOR_OPADDR_ADDR.
        Take into account when an address address reload is only needed
        for the address reload we are considering.
        (count_occurrences): Use rtx_equal_p for MEMs.
        (inc_for_reload): Return instruction that stores into RELOADREG.
        New argument two, IN, and rtx.  Changed all callers.
        (calculate_needs_all_insns, reload_as_needed):
        Don't clear after_call for a CLOBBER.
        Keep track of how many hard registers need to be copied from
        after_call, and don't clear after_call before we have seen
        that much copies, or we see a different instruction.

From-SVN: r23143
1998-10-16 13:54:38 -06:00
config mh-aix43 (NM_FOR_TARGET): Add -X32_64 as well. 1998-08-31 10:53:38 -04:00
contrib New files to touch 1998-10-16 07:39:32 +00:00
etc
gcc Fix consistency problems with reg_equiv_{mem,address}; 1998-10-16 13:54:38 -06:00
include backport: libiberty.h (xexit): Change decl to use modern GCC attribute to indicate exit does not return. 1998-10-08 17:04:13 -06:00
INSTALL
libchill Regenerate with autoconf-2.12.1 1998-10-01 14:17:34 +00:00
libf2c Makefile.in (.SUFFIXES): Don't use any. 1998-10-13 08:51:49 +00:00
libiberty Warning fixes: 1998-10-15 15:55:04 +00:00
libio config.shared (depend.new): delete libc-lock.h from dependencies, and fix _G_config.h -> $(_G_CONFIG_H) rule 1998-10-12 09:28:02 +00:00
libobjc encoding.c (objc_skip_type_qualifiers): Handle _C_BYREF. 1998-10-08 05:23:35 -06:00
libstdc++ * stl_config.h (__SGI_STL_USE_AUTO_PTR_CONVERSIONS): Define. 1998-10-11 17:55:56 +00:00
texinfo Makefile.in: rebuilt with --include-deps, --build-dir and --srcdir-name 1998-10-15 15:56:34 +00:00
.cvsignore
ChangeLog Makefile.in (DEVO_SUPPORT): Add config.if. 1998-10-14 03:32:28 -06:00
config-ml.in config-ml.in: Default to being verbose, to match Feb 18 change to configure. 1998-10-08 17:34:45 -06:00
config.guess config.guess: Merge with FSF. 1998-10-08 18:15:05 -06:00
config.if configure (gxx_include_dir): Changed to '${prefix}/include/g++'-${libstdcxx_interface}. 1998-08-30 15:15:53 -06:00
config.sub 1998-10-13 02:39:01 -06:00
configure configure: Add pattern to replace "build_tooldir"'s definition in the generated Makefile... 1998-10-13 10:48:25 +00:00
configure.in * configure.in: Fix merge typo. 1998-10-13 15:59:52 -06:00
COPYING
COPYING.LIB
install-sh Final changes from devo<->egcs merge. 1998-10-12 04:44:57 -06:00
ltconfig Various libtool updates from devo, including update to libtool 1.2b 1998-10-08 17:32:31 -06:00
ltmain.sh Various libtool updates from devo, including update to libtool 1.2b 1998-10-08 17:32:31 -06:00
MAINTAINERS Add Michael Hayes as c4x maintainer 1998-10-11 21:38:14 +00:00
Makefile.in Makefile.in (DEVO_SUPPORT): Add config.if. 1998-10-14 03:32:28 -06:00
missing missing: Update to version from automake 1.3. 1998-10-08 17:28:38 -06:00
mkinstalldirs
move-if-change
README README: Remove installation instructions and refer to the INSTALL directory instead. 1998-10-02 09:22:08 +00:00
symlink-tree
ylwrap ylwrap: Change absolute path checks to check for DOS style path names. 1998-10-08 17:26:54 -06:00

		   README for GNU development tools

This directory contains various GNU compilers, assemblers, linkers, 
debuggers, etc., plus their support routines, definitions, and documentation.


Check the INSTALL directory for detailed configuration and installation
instructions.


Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc.  See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.

REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.