* 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
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| 20030530-2.c | Loading commit data... | |
| 20030611-1.c | Loading commit data... | |
| 20030703-1.c | Loading commit data... | |
| 20030703-2.c | Loading commit data... | |
| 20030708-1.c | Loading commit data... | |
| 20030709-1.c | Loading commit data... | |
| 20030709-2.c | Loading commit data... | |
| 20030709-3.c | Loading commit data... | |
| 20030710-1.c | Loading commit data... | |
| 20030711-1.c | Loading commit data... | |
| 20030711-2.c | Loading commit data... | |
| 20030711-3.c | Loading commit data... | |
| 20030714-1.c | Loading commit data... | |
| 20030714-2.c | Loading commit data... | |
| 20030728-1.c | Loading commit data... | |
| 20030729-1.c | Loading commit data... | |
| 20030730-1.c | Loading commit data... | |
| 20030730-2.c | Loading commit data... | |
| 20030731-1.c | Loading commit data... | |
| 20030731-2.c | Loading commit data... | |
| 20030807-1.c | Loading commit data... | |
| 20030807-10.c | Loading commit data... | |
| 20030807-11.c | Loading commit data... | |
| 20030807-2.c | Loading commit data... | |
| 20030807-3.c | Loading commit data... | |
| 20030807-5.c | Loading commit data... | |
| 20030807-6.c | Loading commit data... | |
| 20030807-7.c | Loading commit data... | |
| 20030807-8.c | Loading commit data... | |
| 20030807-9.c | Loading commit data... | |
| 20030808-1.c | Loading commit data... | |
| 20030814-1.c | Loading commit data... | |
| 20030814-2.c | Loading commit data... | |
| 20030814-3.c | Loading commit data... | |
| 20030814-4.c | Loading commit data... | |
| 20030814-5.c | Loading commit data... | |
| 20030814-6.c | Loading commit data... | |
| 20030814-7.c | Loading commit data... | |
| 20030815-1.c | Loading commit data... | |
| 20030820-1.c | Loading commit data... | |
| 20030820-2.c | Loading commit data... | |
| 20030821-1.c | Loading commit data... | |
| 20030824-1.c | Loading commit data... | |
| 20030824-2.c | Loading commit data... | |
| 20030825-1.c | Loading commit data... | |
| 20030907-1.c | Loading commit data... | |
| 20030907-2.c | Loading commit data... | |
| 20030917-1.c | Loading commit data... | |
| 20030917-2.c | Loading commit data... | |
| 20030917-3.c | Loading commit data... | |
| 20030918-1.c | Loading commit data... | |
| 20030920-1.c | Loading commit data... | |
| 20030922-1.c | Loading commit data... | |
| 20030922-2.c | Loading commit data... | |
| 20031015-1.c | Loading commit data... | |
| 20031021-1.c | Loading commit data... | |
| 20031022-1.c | Loading commit data... | |
| 20031031-1.c | Loading commit data... | |
| 20031106-1.c | Loading commit data... | |
| 20031106-2.c | Loading commit data... | |
| 20031106-3.c | Loading commit data... | |
| 20031106-4.c | Loading commit data... | |
| 20031106-5.c | Loading commit data... | |
| 20031106-6.c | Loading commit data... | |
| 20031113-1.c | Loading commit data... | |
| 20031216-1.c | Loading commit data... | |
| 20040121-1.c | Loading commit data... | |
| 20040204-1.c | Loading commit data... | |
| 20040209-1.c | Loading commit data... | |
| 20040210-1.c | Loading commit data... | |
| 20040211-1.c | Loading commit data... | |
| 20040216-1.c | Loading commit data... | |
| 20040302-1.c | Loading commit data... | |
| 20040305-1.c | Loading commit data... | |
| 20040313-1.c | Loading commit data... | |
| 20040319-1.c | Loading commit data... | |
| 20040324-1.c | Loading commit data... | |
| 20040326-1.c | Loading commit data... | |
| 20040326-2.c | Loading commit data... | |
| 20040408-1.c | Loading commit data... | |
| 20040430-1.c | Loading commit data... | |
| 20040513-1.c | Loading commit data... | |
| 20040513-2.c | Loading commit data... | |
| 20040514-1.c | Loading commit data... | |
| 20040514-2.c | Loading commit data... | |
| 20040517-1.c | Loading commit data... | |
| 20040518-1.c | Loading commit data... | |
| 20040518-2.c | Loading commit data... | |
| 20040615-1.c | Loading commit data... | |
| 20040624-1.c | Loading commit data... | |
| 20040703-1.c | Loading commit data... | |
| 20040713-1.c | Loading commit data... | |
| 20040721-1.c | Loading commit data... | |
| 20040729-1.c | Loading commit data... | |
| asm-1.c | Loading commit data... | |
| cfgcleanup-1.c | Loading commit data... | |
| copy-headers.c | Loading commit data... | |
| loop-1.c | Loading commit data... | |
| sra-1.c | Loading commit data... | |
| sra-2.c | Loading commit data... | |
| sra-3.c | Loading commit data... | |
| ssa-ccp-1.c | Loading commit data... | |
| ssa-ccp-10.c | Loading commit data... | |
| ssa-ccp-11.c | Loading commit data... | |
| ssa-ccp-2.c | Loading commit data... | |
| ssa-ccp-3.c | Loading commit data... | |
| ssa-ccp-7.c | Loading commit data... | |
| ssa-ccp-9.c | Loading commit data... | |
| ssa-dce-1.c | Loading commit data... | |
| ssa-dce-2.c | Loading commit data... | |
| ssa-dce-3.c | Loading commit data... | |
| ssa-dom-ccp-1.c | Loading commit data... | |
| ssa-dom-cse-1.c | Loading commit data... | |
| ssa-dom-thread-1.c | Loading commit data... | |
| ssa-pre-1.c | Loading commit data... | |
| ssa-pre-2.c | Loading commit data... | |
| tailcall-1.c | Loading commit data... | |
| tailcall-2.c | Loading commit data... | |
| tailrecursion-1.c | Loading commit data... | |
| tailrecursion-2.c | Loading commit data... | |
| tailrecursion-3.c | Loading commit data... | |
| tailrecursion-4.c | Loading commit data... | |
| tailrecursion-5.c | Loading commit data... | |
| tree-ssa.exp | Loading commit data... | |
| useless-1.c | Loading commit data... |