summaryrefslogtreecommitdiff
path: root/gcc/lambda-code.c
Commit message (Collapse)AuthorAgeFilesLines
* 2004-12-18 Daniel Berlin <dberlin@dberlin.org>dberlin2004-12-191-4/+12
| | | | | | | | | * lambda-code.c (can_convert_to_perfect_nest): Make checking match up with what perfect_nestify can actually handle. (perfect_nestify): Don't return false in the phi node loop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92381 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-phinodes.c (add_phi_arg): Take "tree" instead ofkazu2004-11-251-1/+1
| | | | | | | | | | | | "tree *" as the first argument. * tree-flow.h: Update the prototype of add_phi_arg. * lambda-code.c, tree-cfg.c, tree-into-ssa.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c, tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c, tree-vectorizer.c: Update all call sites of add_phi_arg. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91307 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-11-16 Daniel Berlin <dberlin@dberlin.org>dberlin2004-11-171-7/+8
| | | | | | | | | * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Swap the test when the edge has the opposite meaning, not when the first argument is invariant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90788 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (bsi_commit_edge_inserts): Remove an argument.kazu2004-11-161-1/+1
| | | | | | | | | | | | | | | | (tree_flow_call_edges_add): Update the call to bsi_commit_edge_inserts. * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise. * profile.c (branch_prob): Likewise. * tree-mudflap.c (mf_decl_cache_locals): Likewise. * tree-sra.c (scalarize_function): Likewise. * tree-ssa-loop-im.c (loop_commit_inserts): Likewise. * tree-ssa-pre.c (fini_pre): Likewise. * tree-flow.h: Update the prototype for bsi_commit_edge_inserts. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90704 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-cppbuiltin.c, cgraph.c, domwalk.h, except.c, gimplify.c,kazu2004-11-131-1/+1
| | | | | | | | lambda-code.c, postreload.c, predict.c, tree-sra.c, tree-ssa-loop-manip.c, tree.c: Fix comment typos. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90596 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-11-02 Daniel Berlin <dberlin@dberlin.org>dberlin2004-11-031-4/+18
| | | | | | | | | | | | | | | * lambda-code.c (lambda_compute_auxillary_space): Update comments. (lambda_compute_target_space). Ditto. * lambda.h (lambda_trans_matrix): Ditto. (lambda_linear_expression): Ditto. (lambda_body_vector): Ditto. (lambda_loopnest): Ditto. * tree-loop-linear.c (gather_interchange_stats): Combine tests, update comments, and remove pointless addition of 0. (linear_transform_loops): Update comments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90029 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-10-16 Daniel Berlin <dberlin@dberlin.org>dberlin2004-11-011-147/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix PR tree-optimization/17672 Fix PR tree-optimization/18168 * lambda-code.c (lambda_lattice_compute_base): Fix reversed assert test. (gcc_tree_to_linear_expression): Add extra to existing constant. (depth_of_nest): Factor out function used in various places. (gcc_loop_to_lambda_loop): Clean up code a little bit. No functional changes. (find_induction_var_from_exit_cond): Stop guessing, and just get the right answer :). (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation. Print out message about result of attempt to create perfect nest. (lbv_to_gcc_expression): Add type argument, use it to do math and induction variable creation. (lle_to_gcc_expression): Ditto. (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as oldiv. Pass type argument to lle_to_gcc_expression and lbv_to_gcc_expression. Reset number of iterations after transformation. (perfect_nestify): Remove useless pre-allocation, and cleanup a small amount. * tree-data-ref.c (build_classic_dist_vector): Return false for dependences completely outside of the loop nest we asked about. (build_classic_dir_vector): Ditto. (compute_data_dependences_for_loop): Only add dependence relations inside the loop we asked about. * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT. Compute immediate uses. * tree-optimize.c: Move linear_transform_loops to before ivcanon. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89945 138bc75d-0d04-0410-961f-82ee72b054a4
* * lambda-code.c (nestify_update_pending_stmts): Remove.kazu2004-10-281-26/+1
| | | | | | | | | | | | | | | | | (perfect_nestify): Use flush_pending_stmts instead of nestify_update_pending_stmts. * tree-cfg.c (tree_make_forwarder_block): Use flush_pending_stmts. * tree-flow.h: Add a prototype for flush_pending_stmts. * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge): Use flush_pending_stmts. (lv_update_pending_stmts): Remove. (tree_ssa_loop_version): Use flush_pending_stmts instead of lv_update_pending_stmts. * tree-ssa.c (flush_pending_stmts): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89757 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h,kazu2004-10-221-5/+5
| | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89453 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi.dnovillo2004-10-181-1/+1
| | | | | | | | | Update all callers. * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt. Don't call fold_stmt more than once, use bsi_replace. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89234 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-10-06 Daniel Berlin <dberlin@dberlin.org>dberlin2004-10-061-164/+184
| | | | | | | | | | | | | | | | | | | | | * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value. 2004-10-06 Daniel Berlin <dberlin@dberlin.org> * lambda-code.c (compute_nest_using_fourier_motzkin): New function. (lambda_compute_auxillary_space): Split from here. 2004-10-06 Daniel Berlin <dberlin@dberlin.org> * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static. * tree-flow.h: Add prototype. * lambda-code.c (invariant_in_loop_and_outer_loops): Use expr_invariant_in_loop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88622 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-24 Ben Elliston <bje@au.ibm.com>bje2004-09-281-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Steven Bosscher <stevenb@suse.de> Andrew Pinski <pinskia@physics.uc.edu> Merge from edge-vector-branch: * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge). (struct edge_def): Remove pred_next, succ_next members. (struct basic_block_def): Remove pred, succ members. Add preds and succs members of type VEC(edge). (FALLTHRU_EDGE): Redefine using EDGE_SUCC. (BRANCH_EDGE): Likewise. (EDGE_CRITICAL_P): Redefine using EDGE_COUNT. (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New. (edge_iterator): New. (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New. (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise. (FOR_EACH_EDGE): New. * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros where applicable. (rotate_loop): Likewise. (find_traces_1_route): Likewise. (bb_to_key): Likewise. (connect_traces): Likewise. (copy_bb_p): Likewise. (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise. (add_labels_and_missing_jumps): Likewise. (fix_up_fall_thru_edges): Likewise. (find_jump_block): Likewise. (fix_crossing_conditional_branches): Likewise. (fix_crossing_unconditional_branches): Likewise. (add_reg_crossing_jump_notes): Likewise. * bt-load.c (augment_live_range): Likewise. * cfg.c (clear_edges): Likewise. (unchecked_make_edge): Likewise. (cached_make_edge): Likewise. (make_single_succ_edge): Likewise. (remove_edge): Likewise. (redirect_edge_succ_nodup): Likewise. (check_bb_profile): Likewise. (dump_flow_info): Likewise. (alloc_aux_for_edges): Likewise. (clear_aux_for_edges): Likewise. (dump_cfg_bb_info): Likewise. * cfganal.c (forwarder_block_p): Likewise. (can_fallthru): Likewise. (could_fall_through): Likewise. (mark_dfs_back_edges): Likewise. (set_edge_can_fallthru_flag): Likewise. (find_unreachable_blocks): Likewise. (create_edge_list): Likewise. (verify_edge_list): Likewise. (add_noreturn_fake_exit_edges): Likewise. (connect_infinite_loops_to_exit): Likewise. (flow_reverse_top_sort_order_compute): Likewise. (flow_depth_first_order_compute): Likewise. (flow_preorder_transversal_compute): Likewise. (flow_dfs_compute_reverse_execute): Likewise. (dfs_enumerate_from): Likewise. (compute_dominance_frontiers_1): Likewise. * cfgbuild.c (make_edges): Likewise. (compute_outgoing_frequencies): Likewise. (find_many_sub_basic_blocks): Likewise. (find_sub_basic_blocks): Likewise. * cfgcleanup.c (try_simplify_condjump): Likewise. (thread_jump): Likewise. (try_forward_edges): Likewise. (merge_blocks_move): Likewise. (outgoing_edges_match): Likewise. (try_crossjump_to_edge): Likewise. (try_crossjump_bb): Likewise. (try_optimize_cfg): Likewise. (merge_seq_blocks): Likewise. * cfgexpand.c (expand_gimple_tailcall): Likewise. (expand_gimple_basic_block): Likewise. (construct_init_block): Likewise. (construct_exit_block): Likewise. * cfghooks.c (verify_flow_info): Likewise. (dump_bb): Likewise. (delete_basic_block): Likewise. (split_edge): Likewise. (merge_blocks): Likewise. (make_forwarder_block): Likewise. (tidy_fallthru_edges): Likewise. (can_duplicate_block_p): Likewise. (duplicate_block): Likewise. * cfglayout.c (fixup_reorder_chain): Likewise. (fixup_fallthru_exit_predecessor): Likewise. (can_copy_bbs_p): Likewise. (copy_bbs): Likewise. * cfgloop.c (flow_loops_cfg_dump): Likewise. (flow_loop_entry_edges_find): Likewise. (flow_loop_exit_edges_find): Likewise. (flow_loop_nodes_find): Likewise. (mark_single_exit_loops): Likewise. (flow_loop_pre_header_scan): Likewise. (flow_loop_pre_header_find): Likewise. (update_latch_info): Likewise. (canonicalize_loop_headers): Likewise. (flow_loops_find): Likewise. (get_loop_body_in_bfs_order): Likewise. (get_loop_exit_edges): Likewise. (num_loop_branches): Likewise. (verify_loop_structure): Likewise. (loop_latch_edge): Likewise. (loop_preheader_edge): Likewise. * cfgloopanal.c (mark_irreducible_loops): Likewise. (expected_loop_iterations): Likewise. * cfgloopmanip.c (remove_bbs): Likewise. (fix_bb_placement): Likewise. (fix_irreducible_loops): Likewise. (remove_path): Likewise. (scale_bbs_frequencies): Likewise. (loopify): Likewise. (unloop): Likewise. (fix_loop_placement): Likewise. (loop_delete_branch_edge): Likewise. (duplicate_loop_to_header_edge): Likewise. (mfb_keep_just): Likewise. (create_preheader): Likewise. (force_single_succ_latches): Likewise. (loop_split_edge_with): Likewise. (create_loop_notes): Likewise. * cfgrtl.c (rtl_split_block): Likewise. (rtl_merge_blocks): Likewise. (rtl_can_merge_blocks): Likewise. (try_redirect_by_replacing_jump): Likewise. (force_nonfallthru_and_redirect): Likewise. (rtl_tidy_fallthru_edge): Likewise. (commit_one_edge_insertion): Likewise. (commit_edge_insertions): Likewise. (commit_edge_insertions_watch_calls): Likewise. (rtl_verify_flow_info_1): Likewise. (rtl_verify_flow_info): Likewise. (purge_dead_edges): Likewise. (cfg_layout_redirect_edge_and_branch): Likewise. (cfg_layout_can_merge_blocks_p): Likewise. (rtl_flow_call_edges_add): Likewise. * cse.c (cse_cc_succs): Likewise. * df.c (hybrid_search): Likewise. * dominance.c (calc_dfs_tree_nonrec): Likewise. (calc_dfs_tree): Likewise. (calc_idoms): Likewise. (recount_dominator): Likewise. * domwalk.c (walk_dominator_tree): Likewise. * except.c (emit_to_new_bb_before): Likewise. (connect_post_landing_pads): Likewise. (sjlj_emit_function_enter): Likewise. (sjlj_emit_function_exit): Likewise. (finish_eh_generation): Likewise. * final.c (compute_alignments): Likewise. * flow.c (calculate_global_regs_live): Likewise. (initialize_uninitialized_subregs): Likewise. (init_propagate_block_info): Likewise. * function.c (thread_prologue_and_epilogue_insns): Likewise. * gcse.c (find_implicit_sets): Likewise. (bypass_block): Likewise. (bypass_conditional_jumps): Likewise. (compute_pre_data): Likewise. (insert_insn_end_bb): Likewise. (insert_store): Likewise. (remove_reachable_equiv_notes): Likewise. * global.c (global_conflicts): Likewise. (calculate_reg_pav): Likewise. * graph.c (print_rtl_graph_with_bb): Likewise. * ifcvt.c (mark_loop_exit_edges): Likewise. (merge_if_block): Likewise. (find_if_header): Likewise. (block_jumps_and_fallthru_p): Likewise. (find_if_block): Likewise. (find_cond_trap): Likewise. (block_has_only_trap): Likewise. (find_if_case1): Likewise. (find_if_case_2): Likewise. * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise. (perfect_nestify): Likewise. * lcm.c (compute_antinout_edge): Likewise. (compute_laterin): Likewise. (compute_available): Likewise. (compute_nearerout): Likewise. * loop-doloop.c (doloop_modify): Likewise. * loop-init.c (loop_optimizer_init): Likewise. * loop-invariant.c (find_exits): Likewise. * loop-iv.c (simplify_using_initial_values): Likewise. (check_simple_exit): Likewise. (find_simple_exit): Likewise. * loop-unroll.c (peel_loop_completely): Likewise. (unroll_loop_constant_iterations): Likewise. (unroll_loop_runtime_iterations): Likewise. * loop-unswitch.c (may_unswitch_on): Likewise. (unswitch_loop): Likewise. * modulo-sched.c (generate_prolog_epilog): Likewise. (sms_schedule): Likewise. * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. * predict.c (can_predict_insn_p): Likewise. (set_even_probabilities): Likewise. (combine_predictions_for_bb): Likewise. (predict_loops): Likewise. (estimate_probability): Likewise. (tree_predict_by_opcode): Likewise. (tree_estimate_probability): Likewise. (last_basic_block_p): Likewise. (propagate_freq): Likewise. (estimate_loops_at_level): Likewise. (estimate_bb_frequencies): Likewise. * profile.c (instrument_edges): Likewise. (get_exec_counts): Likewise. (compute_branch_probabilities): Likewise. (branch_prob): Likewise. * ra-build.c (live_in): Likewise. * ra-rewrite.c (rewrite_program2): Likewise. * ra.c (reg_alloc): Likewise. * reg-stack.c (reg_to_stack): Likewise. (convert_regs_entry): Likewise. (compensate_edge): Likewise. (convert_regs_1): Likewise, (convert_regs_2): Likewise. (convert_regs): Likewise. * regrename.c (copyprop_hardreg_forward): Likewise. * reload1.c (fixup_abnormal_edges): Likewise. * sbitmap.c (sbitmap_intersection_of_succs): Likewise. (sbitmap_insersection_of_preds): Likewise. (sbitmap_union_of_succs): Likewise. (sbitmap_union_of_preds): Likewise. * sched-ebb.c (compute_jump_reg_dependencies): Likewise. (fix_basic_block_boundaries): Likewise. (sched_ebbs): Likewise. * sched-rgn.c (build_control_flow): Likewise. (find_rgns): Likewise. * tracer.c (find_best_successor): Likewise. (find_best_predecessor): Likewise. (tail_duplicate): Likewise. * tree-cfg.c (make_edges): Likewise. (make_ctrl_stmt_edges): Likewise. (make_goto_expr_edges): Likewise. (tree_can_merge_blocks_p): Likewise. (tree_merge_blocks): Likewise. (cfg_remove_useless_stmts_bb): Likewise. (remove_phi_nodes_and_edges_for_unreachable_block): Likewise. (tree_block_forwards_to): Likewise. (cleanup_control_expr_graph): Likewise. (find_taken_edge): Likewise. (dump_cfg_stats): Likewise. (tree_cfg2vcg): Likewise. (disband_implicit_edges): Likewise. (tree_find_edge_insert_loc): Likewise. (bsi_commit_edge_inserts): Likewise. (tree_split_edge): Likewise. (tree_verify_flow_info): Likewise. (tree_make_forwarder_block): Likewise. (tree_forwarder_block_p): Likewise. (thread_jumps): Likewise. (tree_try_redirect_by_replacing_jump): Likewise. (tree_split_block): Likewise. (add_phi_args_after_copy_bb): Likewise. (rewrite_to_new_ssa_names_bb): Likewise. (dump_function_to_file): Likewise. (print_pred_bbs): Likewise. (print_loop): Likewise. (tree_flow_call_edges_add): Likewise. (split_critical_edges): Likewise. (execute_warn_function_return): Likewise. (extract_true_false_edges_from_block): Likewise. * tree-if-conv.c (tree_if_conversion): Likewise. (if_convertable_bb_p): Likewise. (find_phi_replacement_condition): Likewise. (combine_blocks): Likewise. * tree-into-ssa.c (compute_global_livein): Likewise. (ssa_mark_phi_uses): Likewise. (ssa_rewrite_initialize_block): Likewise. (rewrite_add_phi_arguments): Likewise. (ssa_rewrite_phi_arguments): Likewise. (insert_phi_nodes_for): Likewise. (rewrite_into_ssa): Likewise. (rewrite_ssa_into_ssa): Likewise. * tree-mudflap.c (mf_build_check_statement_for): Likewise. * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise. (rewrite_trees): Likewise. * tree-pretty-print.c (dump_bb_header): Likewise. (dump_implicit_edges): Likewise. * tree-sra.c (insert_edge_copies): Likewise. (find_obviously_necessary_stmts): Likewise. (remove_data_stmt): Likewise. * tree-ssa-dom.c (thread_across_edge): Likewise. (dom_opt_finalize_block): Likewise. (single_incoming_edge_ignoring_loop_edges): Likewise. (record_equivalences_from_incoming_edges): Likewise. (cprop_into_successor_phis): Likewise. * tree-ssa-live.c (live_worklist): Likewise. (calculate_live_on_entry): Likewise. (calculate_live_on_exit): Likewise. * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise. (copy_loop_headers): Likewise. * tree-ssa-loop-im.c (loop_commit_inserts): Likewise. (fill_always_executed_in): Likewise. * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise. * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise. (compute_phi_arg_on_exit): Likewise. * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise. (get_loops_exit): Likewise. (split_loop_exit_edge): Likewise. (ip_normal_pos): Likewise. * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise. * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise. (replace_phi_with_stmt): Likewise. (value_replacement): Likewise. * tree-ssa-pre.c (compute_antic_aux): Likewise. (insert_aux): Likewise. (init_pre): Likewise. * tree-ssa-propagate.c (simulate_stmt): Likewise. (simulate_block): Likewise. (ssa_prop_init): Likewise. * tree-ssa-threadupdate.c (thread_block): Likewise. (create_block_for_threading): Likewise. (remove_last_stmt_and_useless_edges): Likewise. * tree-ssa.c (verify_phi_args): Likewise. (verify_ssa): Likewise. * tree_tailcall.c (independent_of_stmt_p): Likewise. (find_tail_calls): Likewise. (eliminate_tail_call): Likewise. (tree_optimize_tail_calls_1): Likewise. * tree-vectorizer.c (vect_transform_loop): Likewise. * var-tracking.c (prologue_stack_adjust): Likewise. (vt_stack_adjustments): Likewise. (vt_find_locations): Likewise. * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. * config/i386/i386.c (ix86_pad_returns): Likewise. * config/ia64/ia64.c (ia64_expand_prologue): Likewise. * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88222 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,kazu2004-09-251-4/+4
| | | | | | | | | gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h, lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c, tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88102 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c,kazu2004-09-181-2/+2
| | | | | | | | | | | gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c, optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c, tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-threadupdate.c: Fix comment typos. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87707 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>zack2004-09-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Zack Weinberg <zack@codesourcery.com> * alias.c (find_base_decl): Remove unreachable case '3' block. * expr.c (safe_from_p): Abort if passed a type. * tree-gimple.c (recalculate_side_effects): Abort if passed anything other than an expression. * tree-ssa-pre.c (phi_translate): Return expr immediately if is_gimple_min_invariant is true for it. Reorder cases for clarity. Abort on un-handled tree classes. (valid_in_set): Likewise. * tree.c (tree_code_class_strings): New static data. * tree.h (enum tree_code_class): New. (tree_code_class_strings): Declare. (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P) (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P) (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros. (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS) (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update. * tree.def, c-common.def, objc/objc-tree.def: Use tree_code_class enumeration constants instead of code letters. * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c Update to match. * LANGUAGES: Add note about change. ada: * ada-tree.def: Use tree_code_class enumeration constants instead of code letters. * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c: Update for new tree-class enumeration constants. cp: * cp-tree.def: Use tree_code_class enumeration constants instead of code letters. * call.c, class.c, cp-gimplify.c, cp-lang.c, cxx-pretty-print.c * mangle.c, pt.c, semantics.c, tree.c, typeck.c: Update for new tree-class enumeration constants. fortran: * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class enumeration constants. java: * java-tree.def: Use tree_code_class enumeration constants instead of code letters. * java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for new tree-class enumeration constants. treelang: * treetree.c: Update for new tree-class enumeration constants. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87675 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c,kazu2004-09-171-1/+1
| | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87637 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-16 Daniel Berlin <dberlin@dberlin.org>dberlin2004-09-161-93/+560
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cfgloop.h (duplicate_loop): Add prototype. * cfgloopmanip.c (duplicate_loop): Make non-static. * lambda-code.c (perfect_nestify): Factor out test whether we can handle this loop into separate function. Call it. (can_convert_to_perfect_nest): New function. (replace_uses_of_x_with_y): Add modify_stmt call. * tree-loop-linear.c (linear_transform_loops): Call rewrite_into_loop_closed_ssa and free_df. 2004-09-16 Daniel Berlin <dberlin@dberlin.org> * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is loop invariant as well. (perfect_nestify): new function. (gcc_loop_to_lambda_loop): New parameters to track lower bounds, upper bounds, and steps. Set outerinductionvar properly. (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect parameters. Return NULL if we need a perfect loop and can't make one. (lambda_loopnest_to_gcc_loopnest): Correct algorithm. (not_interesting_stmt): New function. (phi_loop_edge_uses_def): Ditto. (stmt_uses_phi_result): Ditto. (stmt_is_bumper_for_loop): Ditto. (perfect_nest_p): Ditto. (nestify_update_pending_stmts): Ditto. (replace_uses_of_x_with_y): Ditto. (stmt_uses_op): Ditto. (perfect_nestify): Ditto. * lambda-mat.c (lambda_matrix_id_p): New function. * lambda-trans.c (lambda_trans_matrix_id_p): Ditto. * lambda.h: Update prototypes. * tree-loop-linear (linear_transform_loop): Use new perfect_nest_p. Detect and ignore identity transform. * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed. 2004-09-16 Sebastian Pop <pop@cri.ensmp.fr> * tree-loop-linear.c (gather_interchange_stats): Add more comments. Gather also strides of accessed data. Pass in the data references array. (try_interchange_loops): Add a new heuristic for handling the temporal locality. Pass in the data references array. (linear_transform_loops): Pass the data references array to try_interchange_loops. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87607 138bc75d-0d04-0410-961f-82ee72b054a4
* * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c,kazu2004-09-101-1/+1
| | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87302 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c,kazu2004-09-101-6/+6
| | | | | | | | | tree-data-ref.c, tree-flow.h, tree-ssa-operands.c, tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h, value-prof.c: Fix comment typos. Follow spelling conventions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87288 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-09-08 Daniel Berlin <dberlin@dberlin.org>dberlin2004-09-081-44/+60
| | | | | | | | | | | | | | | | | | | * Makefile.in (tree-loop-linear.o): Added. (OBJS-common): Add tree-loop-linear.o * common.opt: New flag, ftree-loop-linear. * timevar.def: New timevar, TV_TREE_LOOP_LINEAR. * tree-flow.h: Add prototype for linear_transform_loops. * tree-optimize.c: Add linear transform after vectorization. * tree-pass.h: Add struct pass_linear_transform. * tree-ssa-loop.c: Add pass_linear_transform. * tree-loop-linear.c: New file. * lambda-code.c: gcc_assertify. (gcc_loop_to_lambda_loop): Handle all exit tests. Handle case where we have (invariant >= induction var). (find_induction_var_from_exit_cond): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87190 138bc75d-0d04-0410-961f-82ee72b054a4
* * vec.c (vec_p_reserve, vec_o_reserve): Rename to ...nathan2004-09-081-1/+1
| | | | | | | | | | | | | | | | | | | | | (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust. (vec_gc_free, vec_heap_free): New. * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New. (DEF_VEC_P): Add allocator argument. Adjust. (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New. (DEF_VEC_O): Add allocator argument. Adjust. (VEC(free)): New. * tree.h (tree): Define a GC'd vector. * lamba-code.c (lambda_loop): Likewise. * value-prof.h (histogram_value): Likewise. * cp/cp-tree.h (tree_pair_s): Likewise. * cp/name-lookup.h (cxx_saved_binding, cp_class_binding): Likewise. * cp/semantics.c (deferred_access): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87179 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c,kazu2004-09-051-6/+6
| | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87105 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-08-26 Daniel Berlin <dberlin@dberlin.org>dberlin2004-08-261-0/+1972
* Makefile.in (lambda-code.o): New. (lambda-trans.o): Ditto. (TREE_DATA_REF_H): Ditto. (LAMBDA_H): Ditto. (lambda-mat.o): Use LAMBDA_H. (tree-data-ref.o): Ditto. * lambda-code.c: New file. Lambda code generation algorithm. * lambda-trans.c: Ditto. Lambda transformation matrix support. * lambda.h: Add lambda loop structures. Add lambda loopnest structures. Add lambda body vector structure. Add lambda linear expression structures. Add prototypes for functions in new files. * lambda-mat.c: Include tree.h 2004-08-26 Daniel Berlin <dberlin@dberlin.org> Sebastian Pop <pop@cri.ensmp.fr> * tree-data-ref.h: Include lambda.h (free_dependence_relation): Declared here. (free_dependence_relations): Ditto. (free_data_refs): Ditto. * tree-data-ref.c (free_dependence_relation): New function. (free_dependence_relations): Ditto. (free_data_refs): Ditot. (analyze_all_data_dependences): Free datarefs and dependence_relations. (build_classic_dist_vector): Store in the dependence_relations the information. Each arc in the dependence_relations graph is labelled with the distance and direction vectors. (build_classic_dir_vector): Ditto. (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences. Now computes again the whole dependence graph including read-read relations. (compute_data_dependences_for_loop): Now dependence_relations contains all the data, and thus it doesn't need to initialize the classic_dir and classic_dist vectors. (analyze_all_data_dependences): Adjusted for using the new interface of compute_data_dependences_for_loop. Remove the statistics dump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86627 138bc75d-0d04-0410-961f-82ee72b054a4