Go to file
Zdenek Dvorak 82b85a85c8 tree-ssa-loop-ivcanon.c: New file.
* tree-ssa-loop-ivcanon.c: New file.
	* tree-ssa-loop-manip.c (create_iv): New function.
	* Makefile.in (tree-ssa-loop-ivcanon.o): Add.
	(tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
	* cfgloop.c (mark_single_exit_loops): New function.
	(verify_loop_structure): Verify single-exit loops.
	* cfgloop.h (struct loop): Add single_exit field.
	(LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
	(mark_single_exit_loops): Declare.
	(tree_num_loop_insns): Declare.
	* cfgloopmanip.c (update_single_exits_after_duplication): New function.
	(duplicate_loop_to_header_edge): Use it.
	* common.opt (fivcanon): New flag.
	* timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
	* tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
	(bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
	(bsi_insert_on_edge_immediate): New function.
	* tree-flow.h (bsi_insert_on_edge_immediate,
	canonicalize_induction_variables, tree_unroll_loops_completely,
	create_iv): Declare.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_iv_canon and pass_complete_unroll.
	* tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
	* tree-scalar-evolution.c (get_loop_exit_condition,
	get_exit_conditions_rec, number_of_iterations_in_loop,
	scev_initialize): Use single_exit information.
	* tree-ssa-loop-niter.c (number_of_iterations_cond): Record
	missing assumptions.
	(loop_niter_by_eval):  Return number of iterations as unsigned
	int.
	* tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
	(tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
	tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
	New passes.
	(tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
	* tree-ssanames.c (make_ssa_name): Allow creating ssa name before
	the defining statement is ready.
	* tree-vectorizer.c (vect_create_iv_simple): Removed.
	(vect_create_index_for_array_ref, vect_transform_loop_bound):
	Use create_iv.
	(vect_transform_loop_bound): Use single_exit information.
	(vect_analyze_loop_form): Cleanup bogus tests.
	(vectorize_loops): Do not call flow_loop_scan.
	* tree.h (may_negate_without_overflow_p): Declare.
	* fold-const.c (may_negate_without_overflow_p): Split out from ...
	(negate_expr_p): ... this function.
	(tree_expr_nonzero_p): Handle overflowed constants correctly.
	* doc/invoke.texi (-fivcanon): Document.
	* doc/passes.texi: Document canonical induction variable creation.

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

From-SVN: r86516
2004-08-24 20:48:23 +00:00
boehm-gc aix_irix_threads.c: Move _THREADS checks after gc_priv.h include. 2004-08-23 21:40:17 +00:00
config 2004-08-13 Nathanael Nerode <neroden@gcc.gnu.org> 2004-08-13 22:31:45 +00:00
contrib gcc_update (self): libjava/configure.in -> configure.ac. 2004-08-20 18:17:35 +02:00
fastjar
gcc tree-ssa-loop-ivcanon.c: New file. 2004-08-24 20:48:23 +00:00
include Split ChangeLog 2004-08-18 13:11:56 +09:30
INSTALL
intl
libada
libbanshee * engine/util.c (vfail): Remove unnecessary sync, fsync, and fflush. 2004-07-07 18:08:49 -07:00
libcpp
libffi re PR libffi/13141 (FAIL: InvokeReturn output - source compiled test <libffi problem>) 2004-08-23 16:49:17 +00:00
libgfortran Makefile.am (libgfortran_la_LDFLAGS): Add -lm. 2004-08-24 11:20:52 -04:00
libiberty
libjava ignore autom4te.cache 2004-08-23 23:51:56 +00:00
libmudflap
libobjc sarray.h: Hoist include of assert.h near the top of file... 2004-08-13 22:50:09 +00:00
libstdc++-v3 2832.cc: New. 2004-08-24 13:55:44 +00:00
maintainer-scripts gcc_release (build_sources): Add comment header to generated MD5SUMS. 2004-08-14 16:47:52 +00:00
zlib
.cvsignore
ABOUT-NLS
ChangeLog Remove conflict marker. 2004-08-20 11:37:13 +00:00
ChangeLog.tree-ssa
compile
config-ml.in
config.guess
config.if
config.rpath
config.sub
configure Patch from Robert Millan for kfreebsd-gnu/knetbsd-gnu. 2004-08-17 15:06:46 -07:00
configure.in Patch from Robert Millan for kfreebsd-gnu/knetbsd-gnu. 2004-08-17 15:06:46 -07:00
COPYING
COPYING.LIB
depcomp
install-sh
libtool.m4
ltcf-c.sh
ltcf-cxx.sh
ltcf-gcj.sh
ltconfig
ltmain.sh Partial merge from upstream: 2004-02-04 23:58:48 +00:00
MAINTAINERS
Makefile.def Makefile.in: Regenerate. 2004-08-17 07:27:16 +00:00
Makefile.in Makefile.in: Regenerate. 2004-08-17 07:27:16 +00:00
Makefile.tpl Makefile.in: Regenerate. 2004-08-17 07:27:16 +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.