Age | Commit message (Collapse) | Author | Files | Lines |
|
2006-03-02 Daniel Berlin <dberlin@dberlin.org>
* gcc/tree-vrp.c (execute_vrp): Return value.
* gcc/regrename.c (rest_of_handle_regrename): Ditto.
* gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
* gcc/tree-complex.c (tree_lower_complex): Ditto.
(tree_lower_complex_O0): Ditto.
* gcc/tracer.c (rest_of_handle_tracer): Ditto.
* gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
* gcc/postreload.c (rest_of_handle_postreload): Ditto.
* gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
(execute_tail_calls): Ditto.
* gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
* gcc/tree.h (init_function_for_compilation): Ditto.
* gcc/ipa-cp.c (ipcp_driver): Ditto.
* gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
* gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
* gcc/final.c (compute_alignments): Ditto.
(rest_of_handle_final): Ditto.
(rest_of_handle_shorten_branches): Ditto.
(rest_of_clean_state): Ditto.
* gcc/omp-low.c (execute_expand_omp): Ditto.
(execute_lower_omp): Ditto.
* gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
* gcc/ipa-reference.c (static_execute): Ditto.
* gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
* gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
(rest_of_handle_machine_reorg): Ditto.
* gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
* gcc/flow.c (recompute_reg_usage): Ditto.
(rest_of_handle_remove_death_notes): Ditto.
(rest_of_handle_life): Ditto.
(rest_of_handle_flow2): Ditto.
* gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
* gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
(do_ssa_store_ccp): Ditto.
(execute_fold_all_builtins): Ditto.
* gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
* gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
* gcc/ipa-pure-const.c (static_execute): Ditto.
* gcc/cse.c (rest_of_handle_cse): Ditto.
(rest_of_handle_cse2): Ditto.
* gcc/web.c (rest_of_handle_web): Ditto.
* gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
* gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
* gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
* gcc/tree-nrv.c (tree_nrv): Ditto.
(execute_return_slot_opt): Ditto.
* gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
(create_structure_vars): Ditto.
* gcc/loop-init.c (rtl_loop_init): Ditto.
(rtl_loop_done): Ditto.
(rtl_move_loop_invariants): Ditto.
(rtl_unswitch): Ditto.
(rtl_unroll_and_peel_loops): Ditto.
(rtl_doloop): Ditto.
* gcc/gimple-low.c (lower_function_body): Ditto.
(mark_used_blocks): Ditto.
* gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
* gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
(cgraph_early_inlining): Ditto.
* gcc/global.c (rest_of_handle_global_alloc): Ditto.
* gcc/jump.c (cleanup_barriers): Ditto.
(purge_line_number_notes): Ditto.
* gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
(rest_of_handle_if_after_reload): Ditto.
* gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
(tree_ssa_loop_im): Ditto.
(tree_ssa_loop_unswitch): Ditto.
(tree_vectorize): Ditto.
(tree_linear_transform): Ditto.
(tree_ssa_loop_ivcanon): Ditto.
(tree_ssa_empty_loop): Ditto.
(tree_ssa_loop_bounds): Ditto.
(tree_complete_unroll): Ditto.
(tree_ssa_loop_prefetch): Ditto.
(tree_ssa_loop_ivopts): Ditto.
(tree_ssa_loop_done): Ditto.
* gcc/predict.c (tree_estimate_probability): Ditto.
* gcc/recog.c (split_all_insns_noflow): Ditto.
(rest_of_handle_peephole2): Ditto.
(rest_of_handle_split_all_insns): Ditto.
* gcc/tree-eh.c (lower_eh_constructs): Ditto.
* gcc/regmove.c (rest_of_handle_regmove): Ditto.
(rest_of_handle_stack_adjustments): Ditto.
* gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
* gcc/function.c (instantiate_virtual_regs): Ditto.
(init_function_for_compilation): Ditto.
(rest_of_handle_check_leaf_regs): Ditto.
* gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
(rest_of_handle_gcse): Ditto.
* gcc/ipa-type-escape.c (type_escape_execute): Ditto.
* gcc/alias.c (rest_of_handle_cfg): Ditto.
* gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
* gcc/profile.c (rest_of_handle_branch_prob): Ditto.
* gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
* gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
* gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
* gcc/tree-dfa.c (find_referenced_vars): Ditto.
* gcc/except.c (set_nothrow_function_flags): Ditto.
(convert_to_eh_region_ranges): Ditto.
(rest_of_handle_eh): Ditto.
* gcc/emit-rtl.c (unshare_all_rtl): Ditto.
(remove_unnecessary_notes): Ditto.
* gcc/except.h (set_nothrow_function_flags): Ditto.
(convert_to_eh_region_ranges): Ditto.
* gcc/cfgexpand.c (tree_expand_cfg): Ditto.
* gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
* gcc/tree-ssa-pre.c (do_pre): Ditto.
(execute_fre): Ditto.
* gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
(rest_of_handle_jump2): Ditto.
* gcc/tree-sra.c (tree_sra): Ditto.
* gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
(execute_mudflap_function_decls): Ditto.
* gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
(do_store_copy_prop): Ditto.
* gcc/ipa-prop.h (ipcp_driver): Ditto.
* gcc/cfglayout.c (insn_locators_initialize): Ditto.
* gcc/tree-ssa-forwprop.c
(tree_ssa_forward_propagate_single_use_vars): Ditto.
* gcc/cfglayout.h (insn_locators_initialize): Ditto.
* gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
* gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
(execute_late_warn_uninitialized): Ditto.
* gcc/rtl.h (cleanup_barriers): Ditto.
(split_all_insns_noflow): Ditto.
(purge_line_number_notes): Ditto.
(unshare_all_rtl): Ditto.
(remove_unnecessary_notes): Ditto.
(recompute_reg_usage): Ditto.
(variable_tracking_main): Ditto.
* gcc/integrate.c (emit_initial_value_sets): Ditto.
* gcc/integrate.h (emit_initial_value_sets): Ditto.
* gcc/tree-optimize.c (execute_free_datastructures): Ditto
(execute_free_cfg_annotations): Ditto.
(execute_fixup_cfg): Ditto.
(execute_cleanup_cfg_pre_ipa): Ditto.
(execute_cleanup_cfg_post_optimizing): Ditto.
(execute_init_datastructures): Ditto.
* gcc/tree-object-size.c (compute_object_sizes): Ditto.
* gcc/combine.c (rest_of_handle_combine): Ditto.
* gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
* gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
(rest_of_handle_reorder_blocks): Ditto.
(rest_of_handle_partition_blocks): Ditto.
* gcc/var-tracking.c (variable_tracking_main): Ditto.
* gcc/tree-profile.c (tree_profiling): Ditto.
* gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
* gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
* gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
(rest_of_handle_sched2): Ditto.
* gcc/basic-block.h (free_bb_insn): Ditto.
* gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
* gcc/tree-cfg.c (execute_build_cfg): Ditto.
(remove_useless_stmts): Ditto.
(split_critical_edges): Ditto.
(execute_warn_function_return): Ditto.
(execute_warn_function_noreturn): Ditto.
* gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
* gcc/cfgrtl.c (free_bb_for_insn): Ditto.
* gcc/passes.c (execute_one_pass): Run additional
todos returned by execute function.
* gcc/tree-pass.h (struct tree_opt_pass): Make execute
return a value.
From-SVN: r111643
|
|
* doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
Document.
* tree-ssa-loop-niter.c (number_of_iterations_ne,
number_of_iterations_lt, number_of_iterations_cond): Remember the shape
of the ending condition.
* tree-ssa-loop-manip.c: Include params.h.
(build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
tree_unroll_loop): New functions.
* tree-pass.h (pass_loop_prefetch): Declare.
* loop.c (rest_of_handle_loop_optimize): Test for
-fprefetch-loop-arrays-rtl.
* tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
* timevar.def (TV_TREE_PREFETCH): New timevar.
* tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
pass_loop_prefetch): New.
* tree-cfgcleanup.c: Include tree-scalar-evolution.h.
(cleanup_tree_cfg_loop): Call scev_reset.
* common.opt (fprefetch-loop-arrays-rtl): Add.
* tree-ssa-loop-prefetch.c: New file.
* tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
(new_temp_expr_table): Initialize expr_vars.
(free_temp_expr_table): Cleanup expr_vars.
(check_replaceable, find_replaceable_in_bb): Prevent accumulating
expressions from being merged into one.
* tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
(struct tree_niter_desc): Add control, bound and cmp fields.
(tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
Declare.
* Makefile.in (tree-ssa-loop-prefetch.o): Add.
(tree-cfgcleanup.o): Add SCEV_H dependency.
(tree-ssa-loop-manip.o): Add PARAMS_H dependency.
* passes.c (init_optimization_passes): Add pass_loop_prefetch.
From-SVN: r110964
|
|
loops with <=)
PR tree-optimization/18527
* tree-ssa-loop-niter.c (number_of_iterations_cond,
number_of_iterations_special, number_of_iterations_exit):
Move base and step of an iv to a single structure. Add
no_overflow flag, and use it in # of iterations analysis.
* tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
folded_casts argument.
(simple_iv): Pass base and step in a structure. Set no_overflow
flag.
(scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
Evaluate expensiveness of computing # of iterations instead of
the final expression.
* tree-scalar-evolution.h (affine_iv): New structure.
(simple_iv): Declaration changed.
* tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
* tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
find_givs_in_stmt): Changed due to simple_iv change.
* gcc.dg/tree-ssa/loop-15.c: New test.
From-SVN: r109427
|
|
From-SVN: r101317
|
|
* 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
|
|
* 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
|
|
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
|
|
* 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
|
|
* 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
|
|
* 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
|