This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] Lno branch merge -- scalar evolutions analyzer
- From: Sebastian Pop <sebastian dot pop at cri dot ensmp dot fr>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 1 Jul 2004 02:20:28 +0200
- Subject: [patch] Lno branch merge -- scalar evolutions analyzer
Hello,
This patch brings the analyzer of scalars evolutions into mainline.
The patch does not include new switches for enabling the analyzer.
These switches were used mainly for debugging purposes, and will be
merged together with the part of the testsuite that exercises this
analyzer.
Bootstrapped on i686-pc-linux-gnu.
Sebastian
PS: It seems like my original mail has been lost... Here is a smaller
mail and the link to the patch on a web-server:
http://www.cri.ensmp.fr/~pop/gcc/scev.diff
2004-06-30 Sebastian Pop <pop@cri.ensmp.fr>
* Makefile.in (SCEV_H): New.
(OBJS-common): Add tree-scalar-evolution.o and tree-ssa-loop-niter.o.
(tree-ssa-loop-niter.o, tree-scalar-evolution.o): New.
(tree-gimple.o): Adjust indentation.
* basic-block.h (edge_source, edge_destination): New functions.
* cfgloop.c (superloop_at_depth): New function.
* cfgloop.h (struct loop): Add nb_iterations and bounds fields.
(current_loops): Declare.
(find_common_loop): Remove extra space.
(superloop_at_depth): Declare.
(loop_from_num, outer_loop, inner_loop, next_loop, loop_num,
loop_depth, loop_header, loop_nb_iterations, loop_num_exits,
loop_exit_edges, loop_exit_edge): New functions.
* 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_of_stmt): New function.
* tree-flow.h (struct tree_niter_desc): New.
(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,
can_count_iv_in_wider_type): Declare.
* tree-scalar-evolution.c: New file.
* tree-scalar-evolution.h: New file.
* tree-ssa-loop-niter.c: New file.
* tree.h (lower_bound_in_type, upper_bound_in_type): Declare.