Go to file
Bernd Schmidt a96caf8085 re PR rtl-optimization/38582 (excessive time in rename registers)
PR rtl-opt/38582
	* regrename.c (struct du_head): New members id, conflicts,
	hard_conflicts and cannot_rename.
	(enum scan_actions): Remove terminate_all_read and
	terminate_overlapping_read; add mark_all_read.
	(scan_actions_name): Likewise.
	(du_head_p): New typedef.  Define a vector type for it.
	(id_to_chain): New static variable.
	(note_sets, clear_dead_regs): Delete functions.
	(free_chain_data): New function.
	(merge_overlapping_regs): Simply walk the conflicts bitmap.
	Remove argument B, all callers changed.
	(regrename_optimize): Allocate id_to_chain.  Ignore chains that have
	the cannot_rename bit set.  Update regno and nregs of a renamed chain.
	Call free_chain_data when done.
	(do_replace): Remove death notes when the renamed reg is set in the
	last insn; add them if not.
	(mark_conflict, note_sets_clobbers): New static function.
	(fail_current_block, current_id, open_chains_set, live_hard_regs): New
	static variables.
	(scan_rtx_reg): Keep track of conflicts between chains, and between
	chains and hard regs.  Don't terminate chains when we find a read we
	can't handle, mark it unrenameable instead.  For terminate_write,
	terminate chains that are written with an exact match or a superset
	of registers.  Set fail_current_block if multi-word lifetimes are too
	complex to handle.
	(scan_rtx_address): Use mark_all_read instead of terminate_all_read.
	(build_def_use): Initialize current_id, live_chains and live_hard_regs;
	free memory for them when done.
	Rearrange the steps so that earlyclobbers are noted before reads
	are processed.  Add new steps to keep track of hard register lifetimes
	outside insn operands.

From-SVN: r154688
2009-11-26 21:41:42 +00:00
boehm-gc
config * zlib.m4: New file. 2009-11-24 22:40:46 +00:00
contrib
fixincludes
gcc re PR rtl-optimization/38582 (excessive time in rename registers) 2009-11-26 21:41:42 +00:00
gnattools
include
INSTALL
intl
libada
libcpp
libdecnumber
libffi
libgcc
libgfortran
libgomp re PR fortran/42162 (OpenMP: ICE: tree check in omp_add_variable, at gimplify.c:5282) 2009-11-25 21:28:56 +01:00
libiberty configure.ac (AC_CHECK_FUNCS): Sort into alphabetical order. 2009-11-26 09:40:19 +11:00
libjava posix-threads.cc (ParkHelper::unpark): Do not initialise result, but assign it instead. 2009-11-26 21:06:35 +11:00
libmudflap
libobjc
libssp
libstdc++-v3
lto-plugin
maintainer-scripts
zlib
ABOUT-NLS
ChangeLog configure.ac: Check for version 0.15.5 or later revision of CLooG. 2009-11-25 05:29:37 +00:00
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.rpath
config.sub
configure configure.ac: Check for version 0.15.5 or later revision of CLooG. 2009-11-25 05:29:37 +00:00
configure.ac configure.ac: Check for version 0.15.5 or later revision of CLooG. 2009-11-25 05:29:37 +00:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.RUNTIME
depcomp
install-sh
libtool-ldflags
libtool.m4
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS * MAINTAINERS (Write After Approval): Update my email address. 2009-11-21 20:07:10 +00:00
Makefile.def
Makefile.in
Makefile.tpl
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 files whose
names start with 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/ for how to report bugs usefully.