Go to file
Zdenek Dvorak 89f8f30f35 loop.texi: Document possibility not to perform disambiguation of loops with multiple latches.
* doc/loop.texi: Document possibility not to perform disambiguation
	of loops with multiple latches.
	* cfgloopmanip.c (alp_enum_p): Removed.
	(add_loop): Handle subloops.  Use get_loop_body_with_size.
	(create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
	* cfghooks.c (redirect_edge_and_branch_force): Set dominator for
	the new forwarder block.
	(make_forwarder_block): Only call new_bb_cbk if it is not NULL.
	Handle the case latch is NULL.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg modifications
	when marking loop exits.
	* ifcvt.c (if_convert): Ditto.  Mark loop exits even if cfg cannot
	be modified.
	* loop-init.c (loop_optimizer_init): Do not modify cfg.  Call
	disambiguate_loops_with_multiple_latches.
	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
	before fix_loop_structure.
	* cfgloop.c: Include pointer-set.h and output.h.
	(canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
	update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
	(get_loop_latch_edges, find_subloop_latch_edge_by_profile,
	find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
	mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
	disambiguate_multiple_latches, get_loop_body_with_size,
	disambiguate_loops_with_multiple_latches): New functions.
	(flow_loop_dump): Dump multiple latch edges.
	(flow_loop_nodes_find): Handle loops with multiple latches.
	(flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
	(glb_enum_p): Modified.
	(get_loop_body): Use get_loop_body_with_size.
	* cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
	(AVOID_CFG_MODIFICATIONS): New constant.
	(disambiguate_loops_with_multiple_latches, add_loop,
	get_loop_body_with_size): Declare.
	* Makefile.in (cfgloop.o): Add pointer-set.h and output.h.

	* gcc.dg/tree-ssa/loop-25.c: New test.

From-SVN: r121670
2007-02-06 21:49:49 +00:00
boehm-gc gcconfig.h: use LINUX_STACKBOTTOM so it works with Linux 2.6, reactivate MPROTECT_VDB 2007-02-05 18:18:11 +00:00
config re PR libgomp/30546 (build fail in libgomp when building from SVN because makeinfo is missing) 2007-01-31 16:29:19 -05:00
contrib texi2pod.pl: Handle @multitable. 2007-02-06 13:14:18 +00:00
fixincludes check in required changes for base/sys/sysmacros.h 2007-02-06 01:25:59 +00:00
gcc loop.texi: Document possibility not to perform disambiguation of loops with multiple latches. 2007-02-06 21:49:49 +00:00
gnattools re PR bootstrap/30541 (Top-level should pass GNATBIND, GNATLINK and GNATMAKE variables down) 2007-01-23 16:37:09 +00:00
include libiberty.h (PEX_STDERR_TO_PIPE): New define. 2007-01-31 18:40:34 +00:00
INSTALL
intl Makefile.in (distclean): Delete config files. 2006-09-27 18:51:52 +09:30
libada re PR bootstrap/30541 (Top-level should pass GNATBIND, GNATLINK and GNATMAKE variables down) 2007-01-23 16:37:09 +00:00
libcpp re PR preprocessor/30468 (-M not fully chops dirname) 2007-01-30 15:50:00 +00:00
libdecnumber decExcept.c: New. 2007-01-29 23:01:35 +00:00
libffi linux64.S (ffi_call_LINUX64): Move restore of r2 immediately after bctrl instruction. 2007-02-02 13:28:27 +01:00
libgcc Makefile.in: Make libgcc_s.so depend on libunwind.so. 2007-02-05 16:04:14 +00:00
libgfortran re PR fortran/30611 ([4.1 only] Confusing error message for negative ncopies in REPEAT) 2007-02-04 21:33:10 +00:00
libgomp revert: configure.ac: Depend addition of -pthread on host OS. 2007-02-02 13:27:43 +01:00
libiberty hex.c: Fix typo. 2007-01-31 15:05:50 -05:00
libjava re PR cp-tools/30707 (gjavah cannot handle more than one CLASS) 2007-02-06 20:27:16 +00:00
libmudflap tls.m4 (GCC_CHECK_TLS): Do not test TLS with static linking if static linking doesn't even work. 2006-12-04 11:10:38 +00:00
libobjc In gcc/: PR 23067 2006-11-01 05:28:41 +00:00
libssp Index: config/ChangeLog 2006-10-15 07:42:57 +00:00
libstdc++-v3 extc++.h: Guard include files that assume iconv support is present from precompilation... 2007-02-06 18:00:12 +00:00
maintainer-scripts * crontab: No longer build snapshots for 4.0.x. 2007-01-29 22:27:12 +00:00
zlib aclocal.m4: Regenerate to use multi.m4. 2007-01-17 19:48:52 +00:00
ABOUT-NLS
ChangeLog Makefile.tpl (LDFLAGS): Substitute it. 2007-01-31 22:22:50 +00:00
ChangeLog.tree-ssa
compile
config-ml.in
config.guess config.guess: Import latest version. 2006-12-11 15:11:34 +11:00
config.rpath
config.sub config.guess: Import latest version. 2006-12-11 15:11:34 +11:00
configure re PR bootstrap/30541 (Top-level should pass GNATBIND, GNATLINK and GNATMAKE variables down) 2007-01-23 16:37:09 +00:00
configure.in * configure.in: Re-enable -Werror for gcc builds. 2007-01-19 02:08:33 +00:00
COPYING
COPYING.LIB
depcomp
install-sh
libtool-ldflags
libtool.m4
ltcf-c.sh
ltcf-cxx.sh
ltcf-gcj.sh
ltconfig
ltmain.sh Port to hosts whose 'sort' and 'tail' implementations treat operands with leading '+' as file names... 2006-07-06 23:24:51 +00:00
MAINTAINERS MAINTAINERS (Write After Approval): Add myself. 2007-01-30 14:33:55 +03:00
Makefile.def re PR bootstrap/30541 (Top-level should pass GNATBIND, GNATLINK and GNATMAKE variables down) 2007-01-23 16:37:09 +00:00
Makefile.in Makefile.tpl (LDFLAGS): Substitute it. 2007-01-31 22:22:50 +00:00
Makefile.tpl Makefile.tpl (LDFLAGS): Substitute it. 2007-01-31 22:22:50 +00:00
missing
mkdep
mkinstalldirs
move-if-change
README
README.SCO
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.