1. 25 Nov, 2004 1 commit
    • basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ... · 04389919
      	* basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ...
      	(ALLOC_REG_SET): ... here.
      	(FREE_REG_SET): Adjust.
      	(XMALLOC_REG_SET, XFREE_REG_SET): Remove.
      	* bb-reorder.c (fix_crossing_conditional_branches): Adjust.
      	* cfglayout.c (cfg_layout_duplicate_bb): Adjust.
      	* cfgrtl.c (rtl_split_block, rtl_split_edge,
      	safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust.
      	* flow.c (update_life_info, calculate_global_regs_live,
      	allocate_bb_life_data, init_propagate_block_info): Adjust.
      	* global.c (build_insn_chain): Adjust.
      	* ifcvt.c (dead_or_predicable): Adjust.
      	* loop-iv.c (simplify_using_initial_values): Adjust.
      	* recog.c (peephole2_optimize): Adjust.
      	* sched-deps.c (init_deps_global): Adjust.
      
      From-SVN: r91279
      Nathan Sidwell committed
  2. 22 Nov, 2004 1 commit
    • bitmap.h (struct bitmap_obstack): New obstack type. · 7932a3db
      	* bitmap.h (struct bitmap_obstack): New obstack type.
      	(struct bitmap_head_def): Replace using_obstack with obstack
      	pointer.
      	(bitmap_default_obstack): New.
      	(bitmap_initialize): Make inline, does not do allocation.
      	(bitmap_release_memory): Remove.
      	(bitmap_obstack_initialize, bitmap_obstack_release): Declare.
      	(bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
      	bitmap_obstack_free, bitmap_malloc_free): Declare.
      	(BITMAP_OBSTACK_ALLOC, BITMAP_GGC_ALLOC, BITMAP_XMALLOC): Adjust.
      	(BITMAP_FREE): Replace with ...
      	(BITMAP_OBSTACK_FREE): ... this.
      	(BITMAP_XFREE): Adjust.
      	(BITMAP_INIT_ONCE): Remove.
      	* bitmap.c (bitmap_obstack, bitmap_obstack_init, bitmap_free: Remove.
      	(bitmap_default_obstack): New.
      	(bitmap_elem_to_freelist): Adjust.
      	(bitmap_element_allocate): Adjust. Break initialization into ...
      	(bitmap_obstack_initialize): ... here.
      	(bitmap_release_memory): Replace with ...
      	(bitmap_obstack_release): ... this.
      	(bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
      	bitmap_obstack_free, bitmap_malloc_free): New.
      	(bitmap_ior_and_compl, bitmap_ior_and_compl_into): Use
      	bitmap_initialize.
      	(bitmap_initialize): Move to bitmap.h.
      	* gengtype.c (open_base_files): Add obstack.h to ifiles.
      	* Makefile.in (BASIC_BLOCK_H, REGS_H): Add obstack.h.
      	* basic-block.h (INIT_REG_SET): Allocate from reg_obstack.
      	(INITIALIZE_REG_SET): Remove.
      	(FREE_REG_SET): Use BITMAP_OBSTACK_FREE.
      	(INIT_ONCE_REG_SET, MAX_REGNO_REG_SET): Remove.
      	(flow_obstack): Do not declare.
      	(reg_obstack): Declare.
      	* regs.h: Include obstack.h.
      	* tree-optimize.c (tree_rest_of_compilation): Initialize and
      	release bitmap obstack here.
      	* bb-reorder.c: #include regs, not basic-block.
      	(fix_crossing_conditional_branches): Allocate regsets from
      	reg_obstack.
      	* bt-load.c: Do not inlude bitmap.h, sbitmap.h, basic-block.h or
      	obstack.h.
      	* caller-save.c: Include regs.h earlier.
      	* cfg.c: Do not include basic-block.h or obstack.h.
      	(reg_obstack): Define.
      	* cfganal.c: Include obstack.h
      	* cfgcleanyp.c: Do not include basic-block.h. Include regs.h
      	earlier.
      	* cfglayout.c: Do not include obstack.h.
      	(flow_obstack): Remove declaration.
      	(cfg_layout_duplicate_bb): Use reg_obstack.
      	* cfgloop.c, cfgloopanal.c, cfgloopmanip.c: Include obstack.h.
      	* cfgrtl.c (rtl_split_block): Use reg_obstack.
      	(force_nonfallthru_and_redirect, rtl_split_edge): Likewise.
      	(safe_insert_insn_on_edge): Use OBSTACK_ALLOC_REG_SET, adjust.
      	(cfg_layout_split_edge): Use reg_obstack.
      	* cse.c: Include regs.h earlier.
      	* ddg.c: Do not include basic-block.h.
      	* dominance.c: Inlude obstack.h.
      	* flow.c (update_life_info): Use OBSTACK_ALLOC_REG_SET, adjust.
      	(calculate_global_regs_live): Likewise.
      	(allocate_bb_life_data): Use reg_obstack.
      	(init_propagate_block_info): Use OBSTACK_ALLOC_REGSET.
      	* global.c: Do not include basic-block.h.
      	(build_insn_chain): Use OBSTACK_ALLOC_REG_SET, adjust.
      	* graph.c: Include obstack.h.
      	* haifa-sched.c: Do not include basic-block.h.
      	* ifcvt.c: Use OBSTACK_ALLOC_REG_SET, adjust.
      	* local-alloc.c: Do not include basic-block.h.
      	* loop-init.c, loop-invariant.c: Include obstack.h.
      	* loop-iv.c: Likewise.
      	(simplify_using_initial_values): Use OBSTACK_ALLOC_REG_SET,
      	adjust.
      	* loop-unroll.c, loop-unswitch.c: Inlude obstack.h.
      	* modulo-sched.c: Do not include basic-block.h.
      	* passes.c (rest_of_handle_final): Do not call
      	regset_release_memory.
      	* ra-debug.c: Include regs.h earlier. Do not include
      	basic-block.h.
      	* recog.c (peephole2_optimize): Use OBSTACK_ALLOC_REG_SET, adjust.
      	* regclass.c (init_reg_sets): Do not call INIT_ONCE_REG_SET.
      	(allocate_reg_info): Do not call MAX_REGNO_REG_SET.
      	(regset_release_memory): Remove.
      	* resource.c: Do not include basic-block.h.
      	* rtlanal.c: Do not include basic-block.h.
      	* sbitmap.c: Include obstack.h.
      	* sched-deps.c: Do not include basic-block.h.
      	(reg_pending_sets_head, reg_pending_clobbers_head,
      	reg_pending_uses_head): Remove.
      	(init_deps_global): Use OBSTACK_ALLOC_REG_SET.
      	* sched-ebb.c: Do not include basic-block.h.
      	* sched-rgn.c: Likewise.
      	* tree-if-conv.c (get_loop_body_in_if_conv_order): Use
      	BITMAP_XFREE.
      	* tree-outof-ssa.c (perform_edge_inserts): Use BITMAP_XFREE.
      	* tree-sra.c (decide_instantiations): Adjust bitmap
      	initialization.
      	* tree-ssa-dce.c: Include obstack.h.
      	* tree-ssa-pre.c (grand_bitmap_obstack): Make a bitmap_obstack.
      	(value_insert_into_set_bitmap): Remove useless bitmap_clear.
      	(bitmap_set_new): Likewise.
      	(init_pre): Initialize bitmap obstack.
      	(fini_pre): Release bitmap obstack.
      	* tree-ssanames.c (ssa_names_to_rewrite): Make static.
      	(marked_for_rewrite_p): ssa_names_to_rewrite is never NULL.
      	(mark_for_rewrite, unmark_for_rewrite): Likewise.
      	(marked_ssa_names): Likewise.
      	(init_ssanames): Use BITMAP_XMALLOC.
      	(fini_ssanames): Use BITMAP_XFREE.
      	* web.c: Include obstack.h
      
      From-SVN: r91009
      Nathan Sidwell committed
  3. 11 Nov, 2004 1 commit
  4. 28 Sep, 2004 1 commit
    • backport: basic-block.h: Include vec.h, errors.h. · 628f6a4e
      2004-09-24  Ben Elliston  <bje@au.ibm.com>
      	    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.
      
      Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
      Co-Authored-By: Steven Bosscher <stevenb@suse.de>
      
      From-SVN: r88222
      Ben Elliston committed
  5. 07 Sep, 2004 1 commit
    • cfganal.c (flow_depth_first_order_compute, [...]): Use gcc_assert or gcc_unreachable. · 341c100f
      	* cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from,
      	cfgbuild.c, inside_basic_block_p, control_flow_insn_p,
      	make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert
      	or gcc_unreachable.
      	* cfg.c (clear_edges, initialize_bb_rbi, compact_blocks,
      	remove_edge, alloc_aux_for_blocks, free_aux_for_blocks,
      	alloc_aux_for_edges, free_aux_for_edges): Likewise.
      	* cfgcleanup.c (try_forward_edges,
      	merge_blocks_move_predecessor_nojumps,
      	merge_blocks_move_successor_nojumps): Likewise.
      	* cfgexpand.c (expand_gimple_cond_expr,
      	expand_gimple_tailcall): Likewise.
      	* cfghooks.c (duplicate_block): Likewise.
      	* cfglayout.c (record_effective_endpoints,
      	insn_locators_initialize, change_scope, fixup_reorder_chain,
      	verify_insn_chain, fixup_fallthru_exit_predecessor,
      	duplicate_insn_chain, cfg_layout_finalize): Likewise.
      	* cfgloopanal.c (check_irred): Likewise.
      	* cfgloop.c (superloop_at_depth, flow_loops_free,
      	flow_loop_entry_edges_find, flow_loops_find,
      	flow_loop_outside_edge_p, get_loop_body,
      	get_loop_body_in_dom_order, get_loop_body_in_bfs_order,
      	get_loop_exit_edges, num_loop_branches, cancel_loop,
      	verify_loop_structure): Likewise.
      	cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge,
      	duplicate_loop_to_header_edge, create_preheader,
      	create_loop_notes): Likewise.
      	* cfgrtl.c (delete_insn, try_redirect_by_replacing_jump,
      	edirect_branch_edge, force_nonfallthru_and_redirect,
      	rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion,
      	commit_edge_insertions, commit_edge_insertions_watch_calls,
      	purge_dead_edges, cfg_layout_redirect_edge_and_branch,
      	cfg_layout_redirect_edge_and_branch_force,
      	cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise.
      	* cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge,
      	cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info,
      	cgraph_varpool_node): Likewise.
      	* cgraphunit.c (cgraph_finalize_function,
      	cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output,
      	cgraph_expand_function, cgraph_remove_unreachable_nodes,
      	cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
      	cgraph_mark_inline, cgraph_expand_all_functions,
      	cgraph_build_static_cdtor): Likewise.
      	* combine.c  (do_SUBST, try_combine, subst, combine_simplify_rtx,
      	simplify_logical, distribute_notes, insn_cuid): Likewise.
      	* conflict.c (conflict_graph_add, print_conflict): Likewise.
      	* coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref,
      	coverage_checksum_string): Likewise.
      	* cse.c (make_new_qty, make_regs_eqv, insert, invalidate,
      	hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage,
      	cse_cc_succs, cse_condition_code_reg): Likewise.
      	* cselib.c (entry_and_rtx_equal_p, remove_useless_values,
      	rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx,
      	new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno,
      	cselib_record_set): Likewise.
      
      From-SVN: r87145
      Nathan Sidwell committed
  6. 25 Aug, 2004 2 commits
    • Add more details to hot/cold partitioning comments and documentation. · 8e8d5162
      2004-08-25  Caroline Tice  <ctice@apple.com>
      
              * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
              to comments at start of function.
              * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
              comment.
              * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
              merge_blocks_move_predecessor_nojumps,
              merge_blocks_move_successor_nojumps, merge_blocks_move,
              try_crossjump_to_edge, try_crossjump_bb): Likewise.
              * cfglayout.c (fixup_reorder_chain): Likewise.
              * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
              cfg_layout_can_merge_blocks_p):  Likewise.
              * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
              * passes.c (rest_of_compilation): Update comments for calling
              optimization that partitions hot/cold basic blocks.
              * doc/invoke.texi:  Update documentation of
              freorder-blocks-and-partition flag.
      
      From-SVN: r86570
      Caroline Tice committed
    • cfglayout.c (duplicate_insn_chain): Remove references to NOTE_INSN_LOOP_VTOP and… · 8b63d0e5
      cfglayout.c (duplicate_insn_chain): Remove references to NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
      
      2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
      
      	* cfglayout.c (duplicate_insn_chain): Remove references to
      	NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
      	* cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
      	* cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
      	* final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
      	and NOTE_INSN_LOOP_CONT.
      	* insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
      	* jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
      	and NOTE_INSN_LOOP_CONT.
      	* loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
      	check_dbra_loop, loop_dump_aux): Remove references to removed notes
      	and fields.
      	* reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
      	* unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
      	references to removed notes and fields.
      	(subtract_reg_term, ujump_to_loop_cont): Remove.
      
      From-SVN: r86542
      Paolo Bonzini committed
  7. 24 Aug, 2004 1 commit
    • basic-block.h (struct basic_block_def): Reorder fields to eliminate interior padding. · 076c7ab8
      	* basic-block.h (struct basic_block_def): Reorder fields to
      	eliminate interior padding.  Remove 'partition' field.
      	(BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
      	(BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
      	(BB_COPY_PARTITION): New macros.
      	* bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
      	Replace all references to the 'partition' field of a basic
      	block with new macros.
      
      	* insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
      	* final.c (final_scan_insn): Don't handle it.
      	* modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
      	instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
      	* sched-rgn.c (sched_is_disabled_for_current_region_p):
      	Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
      
      From-SVN: r86495
      Zack Weinberg committed
  8. 19 Aug, 2004 1 commit
    • basic-block.h (struct edge_def): Remove crossing_edge. · bd454efd
      	* basic-block.h (struct edge_def): Remove crossing_edge.
      	(EDGE_CROSSING): New define.
      	(EDGE_ALL_FLAGS): Update.
      	* bb-reorder.c (find_traces_1_round, better_edge_p,
      	find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
      	find_jump_block, fix_crossing_conditional_branches,
      	fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
      	Replace all occurences of crossing_edge with an edge flag check
      	or set/reset.
      	* cfgcleanup.c (try_simplify_condjump, try_forward_edges,
      	try_crossjump_bb): Likewise.
      	* cfglayout.c (fixup_reorder_chain): Likewise.
      	* cfgrtl.c (force_nonfallthru_and_redirect,
      	commit_one_edge_insertion): Likewise.
      
      	* Makefile.in (cfganal.o): Depend on TIMEVAR_H.
      	* tree-flow.h (compute_dominance_frontiers): Move prototype...
      	* basic-block.h:  ...here.
      	* tree-cfg.c (compute_dominance_frontiers_1,
      	compute_dominance_frontiers): Move from here...
      	* cfganal.c: ...to here.  Include timevar.h.
      
      From-SVN: r86228
      Steven Bosscher committed
  9. 18 Aug, 2004 1 commit
    • Hot/cold partitioning update patch. · 9fb32434
      Hot/cold partitioning update patch.  The problems that this patch
      attemptd to address/fix are:
      
      - Fix places where adding in_unlikely_executed_text to the enum data
        type "in_section"  threw off switch case statements.
      - Make it work correctly (by turning it off) for functions where user
        specifies "__attribute__ section"
      - Make it work correctly (by turning it off) for linkonce sections
      - Make it work correctly with -ffunction-sections flag
      - Make it output correct cold section labels
      - Undo some changes to original assembly code generation
      - Turn off hot/cold partitioning in the presence of DWARF debugging (for
        the moment)
      - Turn off hot/cold partitioning for architectures that do not support
        named sections
      - Use variables rather than constants for cold section labels and names (to
        work correctly with -ffunction-sections, among other things)
      
      
      2004-08-18  Caroline Tice  <ctice@apple.com>
      
              * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
              "-freorder-blocks-and-partition" to the flags used in second
              stage of profiledbootstrap.
              * bb-reorder.c (push_to_next_round_p): Add new variable,
              next_round_is_last; set and use variable to make sure, when
              partitioning, that the last trace construction round consists
              of all (and only) cold basic blocks.
              (rotate_loop): Don't copy blocks that end in a section
              crossing jump.
              (copy_bb): Correctly initialize "partition" of duplicated bb.
              (add_unlikely_executed_notes): Add a comment.
              (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
              to make sure, if function contains hot blocks, that the
              successors of ENTRY_BLOCK_PTR are hot; also, only look for
              crossing edges if the architecture supports named sections.
              (mark_bb_for_unlikely_executed_section): Modify to always
              insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
              the basic block note insn.
              (fix_crossing_unconditional_branches): Remove extra space.
              (fix_edges_for_rarely_executed_code): Modify to only do
              partitioning work if the architecture supports named sections.
              (reorder_basic_blocks): Modify to only add
              NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
              supports named sections.
              * c-common.c (handle_section_attribute): Initialize new global
              variable, user_defined_section_attribute, to true if user has
              specified one.
              * cfgcleanup.c (try_forward_edges): Modify to not attempt to
              forward edges that cross section boundaries.
              * cfglayout.c (fixup_reorder_chain): Modify to only fix up
              partitioning information if the architecture supports named
              sections.
              * cfgrtl.c (target.h): Add statement to include this.
              (rtl_split_block): Make sure newly created bb gets correct
              partition.
              (try_redirect_by_replacing_jump): Make sure redirection isn't
              attempting to cross section boundaries.
              (force_nonfallthru_and_redirect): Only do partition fix up if
              architecture supports named sections.
              (rtl_split_edge): Make sure newly created bb ends up in
              correct partition.
              (commit_one_edge_insertion): Remove code that incorrectly
              updated basic block partition; Make sure partition fix up only
              happens if architecture supports named sections and it's not
              already done.
              (rtl_verify_flow_info_1): Fix if-condition on test/error
              condition that fallthru edges are not allowed to cross section
              boundaries.
              * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
              * final.c (final_scan_insn): Remove redundant test from if-statement;
              change calls to text_section into calls to function_section; add code
              to only to partitioning fix up if architecture supports named
              sections.
              * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
              partition.
              (if_convert): Add targetm.have_named_sections to test.
              * output.h (unlikely_section_label): Extern declaration for new global
              variable.
              (unlikely_text_section_name): Likewise.
              * opts.c (decode_options): If both partitioning and DWARF debugging
              are turned on, issue a warning that this doesn't work, and change
              partitiong to basic block reordering (without hot/cold partitions).
              * passes.c (rest_of_handle_final): Re-set new global variable,
              user_defined_section_attribute, to false.
              (rest_of_compilation): Change options for calling partitioning
              function: Don't call if the user defined the section attribute, and
              don't call if DECL_ONE_ONLY is true for the current function.
              * predict.c (choose_function_section): Return immediately if we
              are doing hot/cold partitioning (i.e. let the basic block partitioning
              determine where the function belongs).
              * reg-stack.c (emit_swap_insn): Add condition to step over
              NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
              * toplev.c (user_defined_section_attribute): New global variable.
              * toplev.h (user_defined_section_attribute): Extern declaration for new
              global variable.
              * varasm.c (unlikely_section_label): New global variable.
              (unlikely_text_section_name): New global variable.
              (unlikely_text_section): Add code to initialize unlikely_text_section_name
              if necessary; modify to use unlikely_text_section_name and
              unlikely_section_label; also to use named_section properly.
              (in_unlikely_text_section):  Modify to work correctly with named_section
              and to use unlikely_text_section_name.
              (named_section):  Add code to work properly with cold section.
              (function_section): Clean up if-statement.
              * config/darwin.c (darwin_asm_named_section): Return to original code,
              removing use of SECTION_FORMAT_STRING.
              * config/arm/pe.h (switch_to_section):  Add case for
              in_unlikely_executed_text to switch statement.
              * config/i386/cygming.h (switch_to_section): Likewise.
              * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
              (SECTION_FORMAT_STRING): Likewise.
              * config/mcore/mcore.h (switch_to_section): Likewise.
              * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
      
      From-SVN: r86189
      Caroline Tice committed
  10. 04 Aug, 2004 1 commit
  11. 26 Jul, 2004 1 commit
    • re PR rtl-optimization/16643 (verify_local_live_at_start ICE after crossjumping & cfgcleanup) · 35b6b437
      	PR rtl-optimization/16643
      	* cfglayout.h (cfg_layout_initialize): Add a flags parameter.
      	* cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
      	* basic-block.h (reorder_basic_blocks): Add a flags parameter.
      	* cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
      	(partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
      	* function.c (thread_prologue_and_epilogue_insns): Likewise.
      	* rtl.h (tracer): Add a flags parameter.
      	* tracer.c (tracer): Pass it to cfg_layout_initialise.
      	* passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
      	(rest_of_handle_reorder_blocks): Update calls to tracer and
      	reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
      	(rest_of_handle_tracer): Pass 0 to tracer.
      	(rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
      
      From-SVN: r85191
      Richard Sandiford committed
  12. 09 Jul, 2004 1 commit
    • alias.c (nonlocal_mentioned_p, [...]): Use, LABEL_P, JUMP_P, CALL_P,… · 4b4bf941
      alias.c (nonlocal_mentioned_p, [...]): Use, LABEL_P, JUMP_P, CALL_P, NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
      
      2004-07-08  Jerry Quinn  <jlquinn@optonline.net>
      
      	* alias.c (nonlocal_mentioned_p, nonlocal_referenced_p,
      	nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P,
      	NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P.
      	* bb-reorder.c (mark_bb_for_unlikely_executed_section,
      	add_labels_and_missing_jumps, find_jump_block,
      	fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
      	Likewise.
      	* bt-load.c (btr_referenced_p, compute_defs_uses_and_gen,
      	link_btr_uses, move_btr_def): Likewise.
      	* builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto,
      	expand_builtin_expect_jump): Likewise.
      	* caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise.
      	* calls.c (expand_call, emit_library_call_value_1): Likewise.
      	* cfganal.c (forwarder_block_p): Likewise.
      	* cfgbuild.c (inside_basic_block_p, count_basic_blocks,
      	make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1,
      	find_bb_boundaries): Likewise.
      	* cfgcleanup.c (try_simplify_condjump, try_forward_edges,
      	merge_blocks_move_predecessor_nojumps,
      	merge_blocks_move_successor_nojumps, insns_match_p,
      	flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
      	try_optimize_cfg): Likewise.
      	* cfgexpand.c (expand_block, construct_exit_block): Likewise.
      	* cfglayout.c (skip_insns_after_block, label_for_bb,
      	record_effective_endpoints, insn_locators_initialize,
      	fixup_reorder_chain, update_unlikely_executed_notes): Likewise.
      	* cfgmainloop.c (create_loop_notes): Likewise.
      	* cfgrtl.c (delete_insn, delete_insn_chain,
      	create_basic_block_structure, rtl_delete_block, free_bb_for_insn,
      	update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks,
      	block_label, try_redirect_by_replacing_jump, last_loop_beg_note,
      	redirect_branch_edge, force_nonfallthru_and_redirect,
      	rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p,
      	rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb,
      	update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info,
      	purge_dead_edges, cfg_layout_redirect_edge_and_branch,
      	cfg_layout_delete_block, cfg_layout_can_merge_blocks_p,
      	cfg_layout_merge_blocks, rtl_block_ends_with_call_p,
      	need_fake_edge_p, rtl_flow_call_edges_add): Likewise.
      	* combine.c (combine_instructions, can_combine_p, try_combine,
      	find_split_point, record_dead_and_set_regs, reg_dead_at_p,
      	distribute_notes, distribute_links, insn_cuid): Likewise.
      	* cse.c (fold_rtx, cse_insn, cse_around_loop,
      	invalidate_skipped_block, cse_set_around_loop,
      	cse_end_of_basic_block, cse_main, cse_basic_block,
      	cse_condition_code_reg): Likewise.
      	* cselib.c (cselib_process_insn): Likewise.
      	* ddg.c (create_ddg): Likewise.
      	* df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify):
      	Likewise.
      	* dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug,
      	gen_label_die, dwarf2out_var_location): Likewise.
      	* emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn,
      	next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn,
      	last_call_insn, active_insn_p, next_label, prev_label,
      	link_cc0_insns, next_cc0_user, try_split, add_insn_after,
      	add_insn_before, remove_insn, add_function_usage_to,
      	reorder_insns, find_line_note, remove_unnecessary_notes,
      	emit_insn_after_1, classify_insn): Likewise.
      	* except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before,
      	connect_post_landing_pads, sjlj_mark_call_sites,
      	sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers,
      	can_throw_internal, can_throw_external, set_nothrow_function_flags,
      	convert_to_eh_region_ranges): Likewise.
      	* explow.c (optimize_save_area_alloca): Likewise.
      	* expr.c (expand_expr_real): Likewise.
      	* final.c (insn_current_reference_address, compute_alignments,
      	shorten_branches, final, scan_ahead_for_unlikely_executed_note,
      	final_scan_insn, output_asm_label, leaf_function_p): Likewise.
      	* flow.c (first_insn_after_basic_block_note, delete_dead_jumptables,
      	propagate_block_delete_insn, propagate_one_insn,
      	init_propagate_block_info, propagate_block, libcall_dead_p,
      	mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment):
      	Likewise.
      	* function.c (instantiate_virtual_regs,	reorder_blocks_1,
      	expand_function_start, expand_function_end, contains,
      	thread_prologue_and_epilogue_insns,
      	reposition_prologue_and_epilogue_notes): Likewise.
      	* gcse.c (constprop_register, bypass_conditional_jumps,
      	insert_insn_end_bb, gcse_after_reload): Likewise.
      	* genemit.c (gen_expand, gen_split): Likewise.
      	* genpeep.c (gen_peephole, main): Likewise.
      	* global.c (build_insn_chain): Likewise.
      	* graph.c (node_data, print_rtl_graph_with_bb): Likewise.
      	* haifa-sched.c (unlink_other_notes, unlink_line_notes,
      	get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes,
      	restore_line_notes, rm_redundant_line_notes, rm_other_notes,
      	ok_for_early_queue_removal, set_priorities, sched_init): Likewise.
      	* ifcvt.c (count_bb_insns, first_active_insn, last_active_insn,
      	cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block,
      	merge_if_block, block_jumps_and_fallthru_p, find_if_block,
      	dead_or_predicable): Likewise.
      	* integrate.c (try_constants): Likewise.
      	* jump.c (rebuild_jump_labels, cleanup_barriers,
      	purge_line_number_notes, init_label_info, mark_all_labels,
      	squeeze_notes, get_label_before, get_label_after,
      	reversed_comparison_code_parts, simplejump_p, pc_set,
      	returnjump_p, onlyjump_p, follow_jumps, mark_jump_label,
      	delete_barrier, delete_prior_computation, delete_computation,
      	delete_related_insns, delete_for_peephole, redirect_jump):
      	Likewise.
      	* lcm.c (optimize_mode_switching): Likewise.
      	* local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc):
      	Likewise.
      	* loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise.
      	* loop-invariant.c (find_exits, find_invariants_bb): Likewise.
      	* loop-iv.c (simplify_using_assignment): Likewise.
      	* loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg,
      	libcall_benefit, skip_consec_insns, move_movables, prescan_loop,
      	find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop,
      	loop_bivs_init_find, strength_reduce, check_insn_for_bivs,
      	check_insn_for_givs, check_final_value, update_giv_derive,
      	basic_induction_var, product_cheap_p, check_dbra_loop,
      	loop_insn_first_p, last_use_this_basic_block,
      	canonicalize_condition, get_condition, loop_regs_scan, load_mems,
      	try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise.
      	* modulo-sched.c (doloop_register_get, find_line_note, sms_schedule,
      	sms_schedule_by_order): Likewise.
      	* optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise.
      	* postreload.c (reload_cse_simplify_operands, reload_combine,
      	reload_cse_move2add): Likewise.
      	* predict.c (can_predict_insn_p, estimate_probability,
      	expected_value_to_br_prob, process_note_predictions): Likewise.
      	* print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise.
      	* profile.c (branch_prob): Likewise.
      	* ra-build.c (live_out_1, livethrough_conflicts_bb,
      	detect_webs_set_in_cond_jump): Likewise.
      	* ra-debug.c (ra_print_rtx_object, ra_debug_insns,
      	ra_print_rtl_with_bb): Likewise.
      	* ra-rewrite.c (insert_stores, rewrite_program2): Likewise.
      	* recog.c (next_insn_tests_no_inequality, find_single_use,
      	split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise.
      	* reg-stack.c (next_flags_user, record_label_references,
      	emit_swap_insn, swap_rtx_condition, subst_stack_regs,
      	compensate_edge, convert_regs_1): Likewise.
      	* regclass.c (scan_one_insn): Likewise.
      	* regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
      	regmove_optimize, fixup_match_1, single_set_for_csa,
      	combine_stack_adjustments_for_block): Likewise.
      	* regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise.
      	* reload.c (find_reloads, find_reloads_address_1, subst_reloads,
      	find_equiv_reg): Likewise.
      	* reload1.c (reload, calculate_needs_all_insns, set_label_offsets,
      	reload_as_needed, emit_input_reload_insns, do_output_reload,
      	delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges):
      	Likewise.
      	* reorg.c (find_end_label, emit_delay_sequence,
      	delete_from_delay_slot, delete_scheduled_jump, optimize_skip,
      	get_jump_flags, rare_destination, mostly_true_jump,
      	try_merge_delay_insns, redundant_insn, own_thread_p,
      	fill_simple_delay_slots, fill_slots_from_thread,
      	fill_eager_delay_slots, relax_delay_slots, make_return_insns,
      	dbr_schedule): Likewise.
      	* resource.c (find_basic_block, next_insn_no_annul,
      	find_dead_or_set_registers, mark_target_live_regs): Likewise.
      	* rtl.h (RTX_PREV): Likewise.
      	* rtlanal.c (global_reg_mentioned_p, no_labels_between_p,
      	no_jumps_between_p, reg_used_between_p, reg_referenced_between_p,
      	reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage,
      	find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1,
      	tablejump_p, computed_jump_p, insns_safe_to_move_p,
      	find_first_parameter_load, can_hoist_insn_p): Likewise.
      	* sched-deps.c (get_condition, add_dependence, sched_analyze_2,
      	sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise.
      	* sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns,
      	schedule_ebbs): Likewise.
      	* sched-rgn.c (is_cfg_nonregular, find_conditional_protection,
      	is_conditionally_protected, can_schedule_ready_p,
      	add_branch_dependences, debug_dependencies): Likewise.
      	* stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable):
      	Likewise.
      	* unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p,
      	reg_dead_after_loop, loop_find_equiv_value, loop_iterations,
      	set_dominates_use, ujump_to_loop_cont): Likewise.
      	* var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise.
      	* varasm.c (output_constant_pool_1): Likewise.
      
      From-SVN: r84341
      Jerry Quinn committed
  13. 01 Jul, 2004 1 commit
    • function.h (struct function): Remove dont_emit_block_notes. · 1ea463a2
              * function.h (struct function): Remove dont_emit_block_notes.
              * gimple-low.c (lower_function_body): Don't set it.
              * cfgexpand.c (expand_block): Don't check it.
              * cfglayout.c (insn_locators_initialize): Likewise.
              * expr.c (expand_expr_real, expand_expr_real_1): Likewise.
              * passes.c (rest_of_compilation): Likewise.
              * stmt.c (expand_start_bindings_and_block): Likewise.
              (expand_end_bindings): Likewise.
      
      From-SVN: r83959
      Richard Henderson committed
  14. 30 Jun, 2004 1 commit
    • Conditionally compile support for --enable-mapped_location. · 6773e15f
      	* cfgexpand.c:  Handle USE_MAPPED_LOCATION case for function_end_locus.
      	* cfglayout.c (insn_locators_initialize):  Const cleanup.  New macros.
      	* cfgrtl.c (delete_insn):  Use new NOTE_DELETED_LABEL_NAME macro.
      	* print-rtl.c (print_rtx):  Likewise.
      	* emit-rtl.c:  Don't clear NOTE_SOURCE_FILE if USE_MAPPED_LOCATION.
      	* combine.c:  Use new SET_INSN_DELETED macro.
      	* flow.c:  Likewise.
      	* haifa-sched.c:  Likewise.
      	* ifcvt.c:  Likewise.
      	* recog.c:  Likewise.
      	* reload1.c:  Likewise.
      	* diagnostic.c:  Use expand_location macro.
      	* pretty-print.c (pp_base_format_text):  Likewise.
      	* profile.c:  Likewise.
       	* dwarf2out.c:  Likewise.  Also use expand_location, DECL_IS_BUILTIN.
       	* dwarf2out.c (dwarf2out_decl:  Use BUILTINS_LOCATION.
      	* emit-rtl.c (emit_line_note):  Simplify if USE_MAPPED_LOCATION.
      	(force_next_line_note, insn_emit):  Handle USE_MAPPED_LOCATION case.
      	* final.c (final):  Likewise.
      	* haifa-sched.c:  Likewise.
      	* integrate.c:  Likewise.
      	* jump.c:  Likewise.
      	* rtl-error.c:  Likewise.
      	* stmt.c (check_seenlabel):  Likewise.
      	* tree-pretty-print.c:  Likewise.
      
      From-SVN: r83921
      Per Bothner committed
  15. 29 Jun, 2004 1 commit
  16. 16 Jun, 2004 1 commit
  17. 15 Jun, 2004 1 commit
  18. 14 Jun, 2004 1 commit
    • basic-block.h (could_fall_through): Declare. · 623a66fa
      	* basic-block.h (could_fall_through): Declare.
      	* cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
      	Fail if the source already has a fallthrough edge to the exit
      	block pointer.
      	(could_fall_through): New function.
      	* cfgbuild.c (make_edges): Check if we already have a fallthrough
      	edge to the exit block pointer.
      	* cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
      	not called before reload has completed.
      	Handle special case of first block having a fall-through exit edge.
      	(cfg_layout_finalize): Don't call it before reload or if we have
      	rtl epilogues.
      	(fixup_reorder_chain): A fall through to the exit block does not
      	require the block to come last.  Add sanity checks.
      	* cfgrtl.c (rtl_split_edge): Add special handling of fall through
      	edges to the exit block.
      	* function.c (cfglayout.h): #include.
      	(thread_prologue_and_epilogue_insns): If we have neither return nor
      	epilogue, but a fall through to the exit block from mid-function,
      	force a non-fall-through exit.
      	* Makefile.in (function.o): Depend on CFGLAYOUT_H.
      
      From-SVN: r83089
      J"orn Rennecke committed
  19. 25 May, 2004 1 commit
    • ddg.h, [...]: New files. · e5626198
       	* ddg.h, ddg.c, modulo-sched.c: New files.
       	* cfglayout.c (duplicate_insn_chain): Remove "static" and push
       	internals to "dupicate_insn".
       	(duplicate_insn): New function.
       	* cfglayout.h (duplicate_insn_chain, duplicate_insn): New
       	declarations.
       	* common.opt (fmodulo-sched): New flag.
       	* df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
       	Remove static and forward declaration.
       	(df_find_def, df_reg_used, df_bb_regno_last_def_find): New
       	functions.
       	* df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
       	df_bb_regno_last_def_find, df_find_def, df_reg_used): New
       	declarations.
       	* flags.h (flag_modulo_sched): New flag.
       	* opts.c (common_handle_option): Handle modulo-sched flag.
       	* params.def (max-sms-loop-number, sms-max-ii-factor,
       	sms-dfa-history, sms-loop-average-count-threshold): New
       	parameters.
      	* params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
       	SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
       	parameters.
       	* passes.c ("sms", "sms-vcg"): New dumps.
       	(rest_of_handle_sched): Call sms_schedule.
       	* rtl.h (sms_schedule): New declaration.
       	* timevar.def (TV_SMS): New.
       	* toplev.c (flag_modulo_sched): Initialize.
       	(f_options): Handle -fmodulo-sched option.
       	* docs/invoke.texi: Document -fmodulo-sched & -dm options.
       	* docs/passes.texi: Document new SMS pass.f toplev.c doc/invoke.texi doc/passes.texi
      
      Co-Authored-By: Mostafa Hagog <mustafa@il.ibm.com>
      
      From-SVN: r82235
      Ayal Zaks committed
  20. 13 May, 2004 1 commit
  21. 30 Apr, 2004 1 commit
    • bb-reorder.c, [...]: Fix comment typos. · 1ae58c30
      	* bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
      	cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
      	reg-stack.c, varasm.c, config/alpha/ev4.md,
      	config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
      	config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
      	config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
      	config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
      	config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
      	config/ia64/itanium2.md, config/ip2k/ip2k.c,
      	config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
      	config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
      	comment typos.
      
      From-SVN: r81345
      Kazu Hirata committed
  22. 09 Apr, 2004 1 commit
    • basic-block.h (struct edge_def): Add new field, crossing_edge. · 750054a2
      2004-04-09  Caroline Tice  <ctice@apple.com>
      
              * basic-block.h (struct edge_def):  Add new field, crossing_edge.
              (struct basic_block_def):  Add new field, partition.
              (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
              definitions.
              (partition_hot_cold_basic_blocks): Add extern function
              declaration.
              * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
              include statements.
              (N_ROUNDS): Increase the maximum number of rounds by 1.
              (branch_threshold): Add array value for new round.
              (exec_threshold): Add array value for new round.
              (push_to_next_round_p): New function.
              (add_unlikely_executed_notes): New function.
              (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
              (mark_bb_for_unlikely_executed_section): New function.
              (add_labels_and_missing_jumps): New function.
              (add_reg_crossing_jump_notes): New function.
              (fix_up_fall_thru_edges): New function.
              (find_jump_block): New function.
              (fix_crossing_conditional_branches): New function.
              (fix_crossing_unconditional_branches): New function.
              (fix_edges_for_rarely_executed_code): New function.
              (partition_hot_cold_basic_blocks): New function.
              (find_traces):  Add an extra round for partitioning hot/cold
              basic blocks.
              (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
              and only cold blocks, into the last (extra) round of collecting traces.
              (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
              over crossing edges.
              (bb_to_key):  Add code to correctly identify cold blocks when
              doing partitioning.
              (connect_traces): Modify to connect all the non-cold traces first, then
              go back and connect up all the cold traces.
              (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
              * cfg.c (entry_exit_blocks): Add initialization for partition field in
              entry and exit blocks.
              * cfgbuild.c (make_edges): Update current_function_has_computed_jump
              if we are doing hot/cold partitioning.
              * cfgcleanup.c (cfglayout.h): Add new include statement.
              (try_simplify_condjump): Modify to not attempt on blocks with jumps
              that cross section boundaries.
              (try_forward_edges): Likewise.
              (merge_blocks_move_predecessor_nojumps): Likewise.
              (merge_blocks_move_successor_nojumps): Likewise.
              (merge_blocks_move): Likewise.
              (try_crossjump_to_edge): Modify to not attempt after we have done
              the block partitioning.
              (try_crossjump_bb): Modify to not attempt on blocks with jumps that
              cross section boundaries.
              (try_optimize_cfg): Likewise.
              * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
              jumps that cross section boundaries.
              * cfglayout.c (flags.h): Add new include statement.
              (update_unlikely_executed_notes):  New function.
              (fixup_reorder_chain):  Add code so when a new jumping basic block is
              added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
              updated appropriately.
              (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
              introduced by this optimization.
              * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
              extern function declaration.
              * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
              list of notes that can be deleted.
              (create_basic_block_structure):  Add initialization for partition field.
              (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
              section boundaries.
              (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
              cross section boundaries.
              (commit_one_edge_insertion): Add code so newly created basic block
              ends up in correct (hot or cold) section.  Modify to disallow
              insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
              (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
              crosses section boundaries.
              (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
              cross section boundaries.
              (force_nonfallthru_and_redirect): Modify to make sure new basic block
              ends up in correct section, with correct notes attached.
              * common.opt (freorder-blocks-and-partition):  Add new flag for this
              optimization.
              * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
              the end of functions are written into the correct (hot or cold)
              section.
              (dbx_source_file): Add code so writing debug file information
              doesn't incorrectly change sections.
              * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
              in partitioning hot/cold basic blocks into separate sections.
              (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
              section partitioning.
              (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
              conditional branches can span all of memory.
              (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
              unconditional branches can span all of memory.
              * final.c (scan_ahead_for_unlikely_executed_note):  New function.
              (final_scan_insn):  Add code to check for NOTE instruction indicating
              whether basic block belongs in hot or cold section, and to make sure
              the current basic block is being written to the appropriate section.
              Also added code to ensure that jump table basic blocks end up in the
              correct section.
              * flags.h (flag_reorder_blocks_and_partition):  New flag.
              * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
              one of the branches has a jump that crosses between sections.
              (find_if_case_2): Likewise.
              (ifcvt): Modify to not attempt to mark loop exit edges after
              hot/cold partitioning has occurred.
              * opts.c (decode_options): Code to handle new flag,
              flag_reorder_blocks_and_partition; also to turn it off if
              flag_exceptions is on.
              (common_handle_option): Code to handle new flag,
              flag_reorder_blocks_and_partition.
              * output.h (unlikely_text_section): New extern function declaration.
              (in_unlikely_text_section): New extern function declaration.
              * passes.c (rest_of_handle_stack_regs):  Add
              flag_reorder_blocks_and_partition as an 'or' condition for calling
              reorder_basic_blocks.
              (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
              as an 'or' condition for calling reorder_basic_blocks.
              (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
              * print-rtl.c (print_rtx): Add code for handling new note,
              NOTE_INSN_UNLIKELY_EXECUTED_CODE
              * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
              (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
              cross between section boundaries.
              * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
              indicating the basic block containing it belongs in the cold section.
              (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
              between hot and cold sections.
              * toplev.c (flag_reorder_blocks_and_partition):  Add code to
              initialize this flag, and to tie it to the command-line option
              freorder-blocks-and-partition.
              * varasm.c (cfglayout.h):  Add new include statement.
              (unlikely_section_label_printed):  New global variable, used for
              determining when to output section name labels for cold sections.
              (in_section):  Add in_unlikely_executed_text to enum data structure.
              (text_section):  Modify code to use SECTION_FORMAT_STRING and
              NORMAL_TEXT_SECTION_NAME macros.
              (unlikely_text_section):  New function.
              (in_unlikely_text_section):  New function.
              (function_section):  Add code to make sure beginning of function is
              written into correct section (hot or cold).
              (assemble_start_function):  Add code to make sure stuff is written to
              the correct section.
              (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
              to an if statement that was checking 'in_text_section'.
              (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
              condition to an if statement that was checking 'in_text_section'.
              (default_section_type_flags_1):  Add check: if in cold section
              flags = SECTION_CODE.
              * config/darwin.c (darwin_asm_named_section):  Modify to use
              SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
              * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
              specifically for the i386.
              (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
              * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
              text string to something more informative.
              (NORMAL_TEXT_SECTION_NAME): Add new definition.
              (SECTION_FORMAT_STRING):  Add new definition.
              * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
              '!in_unlikely_text_section' as an 'and' condition to an if statement
              that was already checking '!in_text_section'.
              * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
              UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
              sure these are properly defined for linux on ppc.
              * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
              for this new flag.
              * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
              reg_note.
              * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
              HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
              these new macros.
      
      From-SVN: r80564
      Caroline Tice committed
  23. 20 Mar, 2004 1 commit
    • alias.c, [...]: Replace calls via (*targetm.foo) () with targetm.foo (). · 5fd9b178
      	* alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
      	c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
      	cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
      	haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
      	sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
      	vmsdbgout.c: Replace calls via (*targetm.foo) () with
      	targetm.foo ().
      
      From-SVN: r79729
      Kazu Hirata committed
  24. 25 Feb, 2004 1 commit
    • basic-block.h (make_eh_edge, [...]): Declare. · 12c3874e
      	* basic-block.h (make_eh_edge, break_superblocks): Declare.
      	* cfgbuild.c (make_eh_edge):  Make global.
      	* cfglayout.c (break_superblocks): Likewise; fix memory leak.
      	* except.c (build_post_landing_pads, connect_post_landing_pads,
      	dw2_build_landing_pads, sjlj_emit_function_enter,
      	sjlj_emit_function_exit, sjlj_emit_dispatch_table,
      	sjlj_build_landing_pads): Update CFG.
      	(emit_to_new_bb_before): New function.
      	(finish_eh_generation): Do not rebuild the CFG.
      
      From-SVN: r78448
      Jan Hubicka committed
  25. 24 Feb, 2004 1 commit
    • toplev.c (dump_file_tbl): Rename from dump_file. · c263766c
              * toplev.c (dump_file_tbl): Rename from dump_file.
              * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
              cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
              config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
              config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
              loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
              ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
              toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
              s/rtl_dump_file/dump_file/g.
      
      From-SVN: r78399
      Richard Henderson committed
  26. 31 Jan, 2004 1 commit
    • alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c, · 283334f0
      	cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
      	flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
      	ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
      	tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
      	config/alpha/alpha.c, config/alpha/alpha.h,
      	config/alpha/alpha.md, config/alpha/unicosmk.h,
      	config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
      	config/c4x/c4x-protos.h, config/c4x/c4x.md,
      	config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
      	config/frv/frvend.c, config/i386/cygming.h,
      	config/i386/djgpp.h, config/i386/emmintrin.h,
      	config/i386/gthr-win32.c, config/i386/i386-interix.h,
      	config/i386/i386-protos.h, config/i386/openbsd.h,
      	config/i386/winnt.c, config/i386/xm-mingw32.h,
      	config/i386/xmmintrin.h, config/ia64/ia64.md,
      	config/iq2000/iq2000.md, config/m32r/m32r.md,
      	config/m68k/m68k.md, config/mcore/mcore-elf.h,
      	config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
      	config/mips/iris5gas.h, config/mips/iris6.h,
      	config/mips/iris6gas.h, config/mips/linux.h,
      	config/mips/mips.md, config/mips/netbsd.h,
      	config/mips/openbsd.h, config/mips/windiss.h,
      	config/pa/fptr.c, config/rs6000/aix.h,
      	config/rs6000/altivec.h, config/rs6000/darwin.h,
      	config/rs6000/xcoff.h, config/s390/s390-protos.h,
      	config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
      	config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
      	config/sparc/sol2.h: Update copyright.
      
      From-SVN: r77018
      Kazu Hirata committed
  27. 29 Jan, 2004 1 commit
    • Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency. · f470c378
      	* Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
      	* basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
      	verify_flow_info): Declaration removed.
      	* cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
      	(debug_bb, debug_bb_n): Add argument to dump_bb call.
      	* cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
      	try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
      	instead of delete_block.
      	* cfghooks.c: Include timevar.h and toplev.h.
      	(cfg_hooks): Define here.
      	(verify_flow_info, dump_bb): Moved from cfg.c.
      	(redirect_edge_and_branch, redirect_edge_and_branch_force,
      	split_block, split_block_after_labels, move_block_after,
      	delete_basic_block, split_edge, create_basic_block,
      	create_empty_bb, can_merge_blocks_p, merge_blocks,
      	make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
      	New functions.
      	* cfghooks.h (struct cfg_hooks): Added fields name,
      	make_forwarder_block, tidy_fallthru_edge and
      	move_block_after. Changed type of verify_flow_info, dump_bb,
      	split_block fields. Renamed cfgh_split_edge and delete_block
      	fields.
      	(redirect_edge_and_branch, redirect_edge_and_branch_force,
      	split_block, delete_block, split_edge, create_basic_block,
      	can_merge_blocks_p, merge_blocks): Macros removed.
      	(cfg_hooks): Do not export.
      	(verify_flow_info, dump_bb, redirect_edge_and_branch,
      	redirect_edge_and_branch_force, split_block, split_block_after_labels,
      	move_block_after, delete_basic_block, split_edge, create_basic_block,
      	create_empty_bb, can_merge_blocks_p, merge_blocks,
      	make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
      	Declare.
      	(cfg_layout_rtl_cfg_hooks): Declare.
      	* cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
      	New functions.
      	(canonicalize_loop_headers): Use new semantics of make_forwarder_block.
      	(redirect_edge_with_latch_update): Removed.
      	(make_forwarder_block): Moved to cfghooks.c, semantics changed.
      	* cfgloopmanip.c (remove_bbs): Do not update dominators here.
      	* cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
      	rtl_delete_block, rtl_split_block, rtl_merge_blocks,
      	tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
      	cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
      	cfghooks.c.
      	(rtl_create_basic_block): Coding style fix.
      	(rtl_tidy_fallthru_edge, rtl_move_block_after,
      	rtl_make_forwarder_block): New functions.
      	(update_cfg_after_block_merging): Removed.
      	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
      	* flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
      	to dump_bb.
      	* ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
      	find_if_case_2): Don't update dominators.
      	* timevar.def (TV_CFG_VERIFY): New.
      	* loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
      	* cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
      	* cfgloopmanip.c (split_loop_bb): Don't update dominators.
      	(remove_bbs): Don't call remove_bbs.
      	(create_preheader): Use make_forwarder_block.
      	(mfb_keep_just, mfb_update_loops): New static functions.
      
      From-SVN: r76851
      Zdenek Dvorak committed
  28. 30 Dec, 2003 1 commit
    • backport: et-forest.h (et_forest_create, [...]): Declarations removed. · d47cc544
      	Backport from tree-ssa (relevant changes only):
      	2003-12-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
      
      	* et-forest.h (et_forest_create, et_forest_delete,
      	et_forest_add_node, et_forest_add_edge, et_forest_remove_node,
      	et_forest_remove_edge, et_forest_parent,
      	et_forest_common_ancestor, et_forest_node_value,
      	et_forest_enumerate_sons): Declarations removed.
      	(struct et_node): New.
      	(et_new_tree, et_free_tree, et_set_father, et_split, et_nca,
      	et_below): Declare.
      	* et-forest.c (struct et_forest_occurrence, struct et_forest,
      	struct et_forest_node): Removed.
      	(et_forest_create, et_forest_delete,
      	et_forest_add_node, et_forest_add_edge, et_forest_remove_node,
      	et_forest_remove_edge, et_forest_parent,
      	et_forest_common_ancestor, et_forest_node_value,
      	et_forest_enumerate_sons, splay, remove_all_occurrences,
      	find_leftmost_node, find_rightmost_node, calculate_value): Removed.
      	(struct et_occ): New.
      	(et_nodes, et_occurences): New.
      	(set_depth, set_depth_add, set_prev, set_next, et_recomp_min,
      	et_check_occ_sanity, et_check_sanity, et_check_tree_sanity,
      	record_path_before_1, record_path_before, check_path_after_1,
      	check_path_after, et_splay, et_new_occ, et_new_tree,
      	et_free_tree, et_set_father, et_split, et_nca, et_below): New.
      	* basic-block.h (struct basic_block_def): New field dom.
      	(struct dominance_info): Type removed.
      	(calculate_dominance_info, free_dominance_info,
      	nearest_common_dominator, set_immediate_dominator,
      	get_immediate_dominator, dominated_by_p, get_dominated_by,
      	add_to_dominance_info, delete_from_dominance_info,
      	recount_dominator, redirect_immediate_dominators,
      	iterate_fix_dominators, verify_dominators): Declarations
      	changed.
      	(enum dom_state): New.
      	(dom_computed): New variable.
      	(first_dom_son, next_dom_son): Declare.
      	* dominance.c (struct dominance_info): Removed.
      	(BB_NODE, SET_BB_NODE): Removed.
      	(calculate_dominance_info, free_dominance_info,
      	nearest_common_dominator, set_immediate_dominator,
      	get_immediate_dominator, dominated_by_p, get_dominated_by,
      	add_to_dominance_info, delete_from_dominance_info,
      	recount_dominator, redirect_immediate_dominators,
      	iterate_fix_dominators, verify_dominators,
      	debug_dominance_info): Work over new datastructure.  Access
      	dominance datastructures through CFG.
      	(assign_dfs_numbers, compute_dom_fast_query, first_dom_son,
      	next_dom_son): New.
      	* bt-load.c (dom): Variable removed.
      	(augment_live_range, combine_btr_defs, migrate_btr_def,
      	migrate_btr_defs, branch_target_load_optimize): Updated for the
      	new interface for dominance information.
      	* cfg.c {exit_entry_blocks): Update initializer.
      	* cfglayout.c (copy_bbs): Removed loops argument. Updated for
      	the new interface for dominance information.
      	* cfglayout.h (copy_bbs): Declaration changed.
      	* cfgloop.c (flow_loop_pre_header_find, flow_loops_cfg_dump,
      	flow_loop_scan, canonicalize_loop_headers, flow_loops_find): Updated
      	for the new interface for dominance information.
      	(flow_loop_scan): Loops argument removed.
      	(flow_loops_free): Don't release dominators.
      	* cfgloop.h (struct cfg): Dom field removed.
      	(flow_loop_scan, loop_split_edge_with, simple_loop_p,
      	just_once_each_iteration_p, split_loop_bb): Declaration changed.
      	* cfgloopanal.c (simple_loop_exit_p, simple_increment,
      	just_once_each_iteration_p, simple_loop_p): Remove loops argument.
      	Updated for the new interface for dominance information.
      	* cfgloopmanip.c (remove_bbs, find_path, create_preheader,
      	split_loop_bb, loopify, duplicate_loop_to_header_edge,
      	force_single_succ_latches, loop_split_edge_with): Ditto.
      	* gcse.c (dominators): Variable removed.
      	(free_code_hoist_mem, compute_code_hoist_data, hoist_code):
      	Updated for the new interface for dominance information.
      	* ifcvt.c (post_dominators): Variable removed.
      	(mark_loop_exit_edges, merge_if_block, find_if_header,
      	find_cond_trap, find_if_case_1, find_if_case_2, if_convert):
      	Updated for the new interface for dominance information.
      	* loop-init.c (rtl_loop_optimizer_init,
      	rtl_loop_optimizer_finalize): Ditto.
      	* loop-unroll.c (decide_peel_simple, decide_peel_once_rolling,
      	decide_peel_completely, decide_unroll_stupid,
      	decide_unroll_constant_iterations,
      	decide_unroll_runtime_iterations): Loops argument removed.
      	Updated for the new interface for dominance information.
      	(unroll_and_peel_loops, peel_loops_completely,
      	unroll_loop_runtime_iterations): Updated for the new interface for
      	dominance information.
      	* loop-unswitch.c (may_unswitch_on_p, unswitch_loops,
      	unswitch_single_loop, unswitch_loop): Updated for the new
      	interface for dominance information.
      	* predict.c (process_note_predictions, process_note_prediction,
      	estimate_probability, note_prediction_to_br_prob): Ditto.
      	* sched-rgn.c (find_rgns, init_regions): Ditto.
      	* toplev.c (rest_of_handle_branch_prob): Free the dominators.
      
      From-SVN: r75226
      Steven Bosscher committed
  29. 11 Dec, 2003 1 commit
    • basic-block.h (BLOCK_HEAD, BLOCK_END): Remove. · a813c111
      2003-12-11  Steven Bosscher  <steven@gcc.gnu.org>
      
      	* basic-block.h (BLOCK_HEAD, BLOCK_END): Remove.
      	(BLOCK_HEAD_TREE, BLOCK_END_TREE): Remove.
      	(basic_block_def): Rename `head' to `head_' and `end' to `end_'.
      	(BB_HEAD, BB_END): New accessor macros for the `head_' and `end_'
      	fields of a basic block.
      	* bb-reorder.c, bt-load.c, caller-save.c, cfg.c, cfganal.c,
      	cfgbuild.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgloopanal.c,
      	cfgloopmanip.c, cfgrtl.c, combine.c, conflict.c, df.c, emit-rtl.c,
      	final.c, flow.c, function.c, gcse.c, global.c, graph.c,
      	haifa-sched.c, ifcvt.c, lcm.c, local-alloc.c, loop-unswitch.c,
      	loop.c, postreload.c, predict.c, profile.c, ra-build.c, ra-debug.c,
      	ra-rewrite.c, ra.c, recog.c, reg-stack.c, regclass.c, regmove.c,
      	regrename.c, reload1.c, resource.c, sched-ebb.c, sched-rgn.c,
      	sibcall.c, tracer.c, config/frv/frv.c, config/i386/i386.c,
      	config/ia64/ia64.c: Use the BB_HEAD and BB_END macros instead of
      	accessing the `head' and `end' fields of a basic block directly.
      
      	* gengtype.c: Add missing piece from earlier patch.  Dunno what
      	I was thinking...
      
      From-SVN: r74520
      Steven Bosscher committed
  30. 05 Oct, 2003 1 commit
  31. 29 Sep, 2003 1 commit
  32. 19 Aug, 2003 1 commit
    • builtins.c: Fix comment typos. · a98ebe2e
      	* builtins.c: Fix comment typos.
      	* c-common.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* cfgbuild.c: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloopanal.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cppfiles.c: Likewise.
      	* dwarfout.c: Likewise.
      	* expr.c: Likewise.
      	* fold-const.c: Likewise.
      	* gcse.c: Likewise.
      	* ggc-page.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* pretty-print.c: Likewise.
      	* tree.c: Likewise.
      	* tree.h: Likewise.
      	* value-prof.c: Likewise.
      
      From-SVN: r70583
      Kazu Hirata committed
  33. 14 Jul, 2003 1 commit
  34. 07 Jul, 2003 1 commit
  35. 06 Jul, 2003 1 commit
  36. 05 Jul, 2003 1 commit
  37. 03 Jul, 2003 2 commits
    • cfglayout.c (cfg_layout_duplicate_bb): Do not update frequencies at all if edge is not specified. · 8d28e87d
      	* cfglayout.c (cfg_layout_duplicate_bb): Do not update frequencies
      	at all if edge is not specified.
      	(can_copy_bbs_p, copy_bbs): New.
      	* cfglayout.h (can_copy_bbs_p, copy_bbs): Declare.
      	* cfgloop.c (get_loop_body): Comment more precisely.
      	* cfgloopmanip.c (copy_bbs, record_exit_edges): Removed.
      	(scale_bbs_frequencies): Fix comment typo.
      	(can_duplicate_loop_p): Use can_copy_bbs_p.
      	(duplicate_loop_to_header_edge): Simplify by using copy_bbs.
      
      From-SVN: r68906
      Zdenek Dvorak committed
    • basic-block.h (create_basic_block, [...]): Kill. · bc35512f
      	* basic-block.h (create_basic_block, merge_blocks_nomove): Kill.
      	* cfgcleanup.c (merge_blocks): Rename to merge_blocks_move.
      	(merge_blocks_move_predecessor_nojumps,
      	 merge_blocks_move_successor_nojumps): Use merge_blocks.
      	(try_optimize_cfg): Use merge_blocks_move.
      	* cfgrtl.c (create_basic_block): Rename to rtl_create_basic_block.
      	(merge_blocks_nomove): Rename to rtl_merge_blocks.
      	(cfg_layout_create_basic_block): New.
      	(rtl_can_merge_blocks): New.
      	(cfg_layout_split_block): Do not alloc aux by hand.
      	* cfghooks.h (cfg_hooks): Add create_basic_block, can_merge_blocks_p,
      	merge_blocks.
      	(create_basic_block, can_merge_blocks_p, merge_blocks): New macros.
      	* cfglayout.c (cfg_layout_duplicate_bb): Do not allocate aux by hand.
      	* cfgloopmanip.c (loop_split_edge_with): Likewise.
      	* ifcvt.c (merge_if_block): Use merge_blocks_nomove.
      
      	* basic-block.h (basic_block_def): Add field 'rbi'.
      	* bb-reorder.c (find_traces, rotate_loop, mark_bb_visited,
      	find_traces_1_round, copy_bb, connect_traces): Update use of rbi.
      	* cfg.c (entry_exit_blocks): Add new field.
      	* cfglayout.c: Include alloc-pool.h;
      	(cfg_layout_pool): New.
      	(record_effective_endpoints, fixup_reorder_chain,
      	fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update use
      	of rbi.
      	(cfg_layout_initialize_rbi): New function.
      	(cfg_layout_initialize): Use it.
      	(cfg_layout_finalize): Clear rbi fields.
      	* cfglayout.h (RBI): Kill.
      	(cfg_layout_initialize_rbi): Declare.
      	* cfgloopmanip.c (copy_bbs): Use rbi.
      	(record_exit_edges): Likewise.
      	(duplicate_loop_to_header_edge): Likewise.
      	* cfgrtl.c (cfg_layout_create_basic_block): Use
      	cfg_layout_initialize_rbi.
      	(cfg_layout_split_block): Use rbi.
      	(cfg_layout_delete_block): Likewise.
      	* loop-init.c (loop_optimizer_finalize): Likewise.
      	* loop-unswitch.c (unswitch_loop): Likewise.
      	* tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
      
      	* cfgrtl.c: Update comments.
      	(try_redirect_by_replacing_jump): New argument.
      	(redirect_branch_edge): Break out from ...
      	(rtl_redirect_edge_and_branch): ... this one.
      	(update_cfg_after_block_merging): Break out from ...
      	(rtl_merge_blocks): ... this one.
      	(cfg_layout_split_edge): New.
      	(cfg_layout_merge_blocks): New.
      	(cfg_layout_can_merge_blocks_p): New.
      	(cfg_layout_redirect_edge_and_branch): Reorganize.
      	(cfg_layout_rtl_cfg_hooks): Fill in.
      	(cfg_layout_delete_block): Kill barriers.
      	* cfganal.c (can_fallthru): Deal with exit blocks
      	* cfglayout.c (cfg_layout_function_header): New function
      	(record_effective_endpoints): Record function header.
      	(fixup_reorder_chain): Fixup dead jumptables; place header
      
      	* basic-block.h (CLEANUP_CFGLAYOUT): New flag.
      	* bb-reorder.c (cfg_layout_initialize): Update call.
      	* cfgcleanup.c (try_optimize_cfg): Supress optimizations of fallthru
      	edges in cfglayout mode.
      	* cfglayout.c (cleanup_unconditional_jumps): Kill.
      	(cfg_layout_initialize): Kill agrument loops; use cfgcleanup.
      	* cfglayout.h (cfg_layout_initialize): Update prototype.
      	* cfgloop.h (CP_INSIDE_CFGLAYOUT): Kill.
      	* cfgloopmanip.c (loop_split_edge_with): Use split_edge.
      	* flow.c (propagate_block): Do not crash when basic block ends
      	by first insn in the chain.
      	* loop-init.c (loop_optimizer_init):  First enter cfglayout mode; later
      	do loop discovery.
      	* tracer.c (tracer): Update call of cfg_layout_initialize.
      
      From-SVN: r68899
      Jan Hubicka committed
  38. 01 Jul, 2003 1 commit
    • rtl.h (emit_line_note_after): Remove. · 5f2fc772
      	* rtl.h (emit_line_note_after): Remove.
      	(emit_note_copy_after, emit_note_copy): New.
      	* emit-rtl.c (reorder_insns_with_line_notes): Replace
      	emit_line_note_after with emit_note_copy_after.
      	(emit_insn_after_with_line_notes): Likewise.
      	(emit_line_note_after): Kill.
      	(emit_note_copy_after): New.
      	(emit_note_copy): New.
      	* function.c (emit_return_into_block): Use emit_note_copy_after.
      	(thread_prologue_and_epilogue_insns): Likewise.
      	* integrate.c (expand_inline_function): Use emit_note_copy.
      	(copy_insn_list): Likewise.
      	* unroll.c (copy_loop_body): Likewise.
      	* cfglayout.c (duplicate_insn_chain): Likewise.
      
      From-SVN: r68767
      Nathan Sidwell committed