aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-scalar-evolution.c
AgeCommit message (Collapse)AuthorFilesLines
2004-11-12tree-scalar-evolution.c (analyzable_condition): Remove superfluous ↵Diego Novillo1-19/+1
TREE_THIS_VOLATILE checks on SSA_NAMEs. * tree-scalar-evolution.c (analyzable_condition): Remove superfluous TREE_THIS_VOLATILE checks on SSA_NAMEs. From-SVN: r90528
2004-11-11re PR tree-optimization/17742 (C Optimization error with -O1 on i686)Zdenek Dvorak1-55/+5
PR tree-optimization/17742 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle MINUS_EXPR correctly. From-SVN: r90492
2004-11-11tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi): Give up as soon ↵Sebastian Pop1-0/+5
as the evolution is known not computable. * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi): Give up as soon as the evolution is known not computable. From-SVN: r90491
2004-11-08tree-cfg.c, [...]: Replace TREE_CHAIN with PHI_CHAIN where appropriate.Kazu Hirata1-1/+1
* tree-cfg.c, tree-if-conv.c, tree-into-ssa.c, tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c, tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where appropriate. From-SVN: r90262
2004-10-22alias.c, [...]: Fix comment formatting.Kazu Hirata1-1/+1
* alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h, final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def, lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c, pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c, tree-scalar-evolution.c, tree-ssa-dom.c, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c, tree-vectorizer.c, vec.h: Fix comment formatting. From-SVN: r89453
2004-10-01tree-chrec.c (chrec_fold_plus_poly_poly, [...]): Use fold_convert or ↵Zdenek Dvorak1-8/+8
build_int_cst_type instead od fonvert. * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1, chrec_fold_multiply): Use fold_convert or build_int_cst_type instead od fonvert. * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs, follow_ssa_edge_in_rhs): Ditto. * tree-ssa-loop-ivopts.c (struct iv): Add base_object field. (dump_iv): Dump base_object. (dump_use, dump_cand): Use dump_iv. (determine_base_object): New function. (alloc_iv): Initialize base_object field. (record_use): Clear the ssa_name field of iv. (get_computation_cost_at): Do not use difference of addresses of two different objects. (may_eliminate_iv): Do not require the loop to have just single exit. * tree-ssa-loop-niter.c (zero_p): Do not check for overflows. (nonzero_p): New function. (inverse, number_of_iterations_cond, simplify_using_outer_evolutions, tree_simplify_using_condition, simplify_using_initial_conditions, loop_niter_by_eval, find_loop_niter_by_eval, estimate_numbers_of_iterations_loop, compare_trees, upper_bound_in_type, lower_bound_in_type, can_count_iv_in_wider_type_bound): Use buildN instead of build. Use fold_convert or build_int_cst_type instead of convert. Use (non)zero_p instead of integer_(non)zerop. From-SVN: r88388
2004-09-17basic-block.h, [...]: Fix comment typos.Kazu Hirata1-1/+1
* basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c, gimplify.c, lambda-code.c, optabs.c, predict.c, tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c, tree-ssa.c, vec.h: Fix comment typos. Follow spelling conventions. From-SVN: r87637
2004-09-10bb-reorder.c, [...]: Fix comment typos.Kazu Hirata1-3/+3
* bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c, genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c, passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-copyrename.c, tree-ssa-live.c, tree-ssa-live.h: Fix comment typos. From-SVN: r87302
2004-09-07builtins.c (fold_builtin_strchr): Use build_int_cst, not fold_convert.Nathan Sidwell1-6/+5
* builtins.c (fold_builtin_strchr): Use build_int_cst, not fold_convert. (fold_builtin_strpbrk): Likewise. * expr.c (array_ref_low_bound): Likewise. * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1, interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise. * tree-sra.c (generate_element_zero): Likewise. * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step, add_old_iv_candidates, add_iv_candidates): Likewise. * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise. From-SVN: r87141
2004-09-05c-common.c, [...]: Fix comment formatting.Kazu Hirata1-2/+2
* c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c, gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c, stor-layout.c, target.h, tree-cfg.c, tree-chrec.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c, tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c, tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c, tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h, vec.h: Fix comment formatting. From-SVN: r87105
2004-08-24tree-ssa-loop-ivcanon.c: New file.Zdenek Dvorak1-12/+7
* 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-07-12cfgloop.h (struct loop): Add nb_iterations field.Sebastian Pop1-8/+2502
* 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-09tree-scalar-evolution.c: New file.Zdenek Dvorak1-0/+61
* 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