Commit Graph

7 Commits

Author SHA1 Message Date
Kelley Cook
366ccddb2b Update FSF address.
From-SVN: r101317
2005-06-25 02:02:01 +00:00
Zdenek Dvorak
684aaf29c0 timevar.def (TV_SCEV_CONST): New timevar.
* timevar.def (TV_SCEV_CONST): New timevar.
	* tree-optimize.c (init_tree_optimization_passes): Add
	pass_scev_cprop.
	* tree-pass.h (pass_scev_cprop): Declare.
	* tree-scalar-evolution.c (scev_const_prop): New function.
	* tree-scalar-evolution.h (scev_const_prop): Declare.
	* tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
	New.
	* tree-cfg.c (replace_uses_by): Export.
	* tree-flow.h (replace_uses_by): Declare.

From-SVN: r99860
2005-05-17 20:28:30 +00:00
Kazu Hirata
c3d4c14338 crtstuff.c, [...]: Update copyright.
* crtstuff.c, integrate.h, tree-scalar-evolution.h,
	config/alpha/unicosmk.h, config/arc/arc.md,
	config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
	config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
	config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
	config/arm/semi.h, config/arm/uclinux-elf.h,
	config/arm/wince-pe.h, config/fr30/fr30.c,
	config/rs6000/altivec.h: Update copyright.

From-SVN: r99447
2005-05-09 16:26:26 +00:00
Zdenek Dvorak
9be872b77b re PR tree-optimization/18316 (Missed IV optimization)
PR tree-optimization/18316
	PR tree-optimization/19126
	* tree.c (build_int_cst_type): Avoid shift by size of type.
	* tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
	argument.
	* tree-scalar-evolution.h (simple_iv): Declaration changed.
	* tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
	field.
	(dump_cand): Dump depends_on information.
	(determine_biv_step): Add argument to simple_iv call.
	(contains_abnormal_ssa_name_p): Handle case expr == NULL.
	(find_bivs, find_givs_in_stmt_scev): Do not require step to be a
	constant.
	(add_candidate_1): Record depends_on for candidates.
	(tree_int_cst_sign_bit, constant_multiple_of): New functions.
	(get_computation_at, get_computation_cost_at, may_eliminate_iv):
	Handle ivs with nonconstant step.
	(iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
	(iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
	(create_new_iv): Unshare the step before passing it to create_iv.
	(free_loop_data): Free cand->depends_on.
	(build_addr_strip_iref): New function.
	(find_interesting_uses_address): Use build_addr_strip_iref.
	(strip_offset_1): Split the recursive part from strip_offset.
	Strip constant offset component_refs and array_refs.
	(strip_offset): Split the recursive part to strip_offset_1.
	(add_address_candidates): Removed.
	(add_derived_ivs_candidates): Do not use add_address_candidates.
	(add_iv_value_candidates): Add candidates with stripped constant
	offset.  Consider all candidates with initial value 0 important.
	(struct affine_tree_combination): New.
	(aff_combination_const, aff_combination_elt, aff_combination_scale,
	aff_combination_add_elt, aff_combination_add,
	tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
	fold_affine_sum): New functions.
	(get_computation_at): Use fold_affine_sum.
	* tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
	* tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
	to simple_iv call.

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

From-SVN: r99059
2005-05-01 08:08:14 +00:00
Kazu Hirata
ac141aead6 basic-block.h, [...]: Remove unused prototypes.
* basic-block.h, c-common.h, df.h, expr.h, output.h, rtl.h,
	tree-chrec.h, tree-flow.h, tree-scalar-evolution.h,
	tree-ssa-live.h, tree.h: Remove unused prototypes.

From-SVN: r90821
2004-11-17 22:06:00 +00:00
Sebastian Pop
9baba81be5 cfgloop.h (struct loop): Add nb_iterations field.
* cfgloop.h (struct loop): Add nb_iterations field.
	(current_loops): Declare.
	* tree-chrec.c (chrec_not_analyzed_yet,
	chrec_dont_know, chrec_known, count_ev_in_wider_type,
	chrec_contains_symbols_defined_in_loop): Remove the temporary
	hooks.
	* tree-flow-inline.h (loop_containing_stmt): New function.
	* tree-scalar-evolution.c: Add implementation.
	* tree-scalar-evolution.h: Add declarations.

From-SVN: r84573
2004-07-12 19:31:16 +00:00
Zdenek Dvorak
e9eb809dec tree-scalar-evolution.c: New file.
* tree-scalar-evolution.c: New file.
	* tree-scalar-evolution.h: New file.
	* tree-ssa-loop-niter.c: New file.
	* Makefile.in (SCEV_H): New.
	(tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files.
	* cfgloop.h (struct loop): Add bounds field.
	* tree-flow.h (struct tree_niter_desc): New type.
	(number_of_iterations_cond, number_of_iterations_exit,
	loop_niter_by_eval, find_loop_niter_by_eval,
	estimate_numbers_of_iterations, can_count_iv_in_wider_type,
	free_numbers_of_iterations_estimates): Declare.
	* tree.h (lower_bound_in_type, upper_bound_in_type): Declare.
	* params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter.
	* doc/invoke.texi (max-iterations-to-track): Document.

From-SVN: r84340
2004-07-09 03:19:14 +00:00