1. 19 Nov, 2013 1 commit
    • Eliminate ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros · fefa31b5
      gcc/
      
      	* basic-block.h (ENTRY_BLOCK_PTR_FOR_FUNCTION): Rename macro to...
      	(EXIT_BLOCK_PTR_FOR_FUNCTION): ...this.
      	(ENTRY_BLOCK_PTR_FOR_FN): Renamed macro to...
      	(EXIT_BLOCK_PTR_FOR_FN): ...this.
      	(ENTRY_BLOCK_PTR): Eliminate macro as work towards making uses of
      	cfun be explicit.
      	(EXIT_BLOCK_PTR): Likewise.
      	(FOR_ALL_BB): Rework for now to eliminate use of "ENTRY_BLOCK_PTR".
      	(FOR_ALL_BB_FN): Update for renaming of
      	"ENTRY_BLOCK_PTR_FOR_FUNCTION" to "ENTRY_BLOCK_PTR_FOR_FN".
      
      	* cfg.c (init_flow): Likewise.
      	(check_bb_profile): Likewise.
      	* cfganal.c (pre_and_rev_post_order_compute_fn): Likewise.
      	* cfgcleanup.c (walk_to_nondebug_insn): Likewise.
      	* cfghooks.c (account_profile_record): Likewise.
      	* cfgloop.c (init_loops_structure): Likewise.
      	* cgraphbuild.c (record_eh_tables): Likewise.
      	(compute_call_stmt_bb_frequency): Likewise.
      	* ipa-inline-analysis.c (compute_bb_predicates): Likewise.
      	* lto-streamer-in.c (input_cfg): Likewise.
      	* predict.c (maybe_hot_frequency_p): Likewise.
      	* tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
      	* tree-inline.c (initialize_cfun): Likewise.
      	(copy_cfg_body): Likewise.
      	(copy_body): Likewise.
      	(tree_function_versioning): Likewise.
      
      	* bb-reorder.c (add_labels_and_missing_jumps): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(duplicate_computed_gotos): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_rarely_executed_basic_blocks_and_crossing_edges): Remove uses of
      	macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(connect_traces): Likewise.
      	(rest_of_handle_reorder_blocks): Remove usage of EXIT_BLOCK_PTR macro.
      	(bb_to_key): Remove usage of ENTRY_BLOCK_PTR macro.
      	(fix_crossing_conditional_branches): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(find_traces_1_round): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(fix_up_fall_thru_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_traces): Remove usage of ENTRY_BLOCK_PTR macro.
      	(fix_up_crossing_landing_pad): Remove usage of EXIT_BLOCK_PTR macro.
      	(rotate_loop): Likewise.
      	* bt-load.c (migrate_btr_def): Remove usage of ENTRY_BLOCK_PTR macro.
      	* cfg.c (clear_aux_for_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(alloc_aux_for_edges): Likewise.
      	(clear_bb_flags): Remove usage of ENTRY_BLOCK_PTR macro.
      	(cached_make_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compact_blocks): Likewise.
      	(clear_edges): Likewise.
      	* cfganal.c (single_pred_before_succ_order): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(bitmap_union_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
      	(bitmap_union_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
      	(bitmap_intersection_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
      	(bitmap_intersection_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
      	(inverted_post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compute_dominance_frontiers_1): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(connect_infinite_loops_to_exit): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(remove_fake_edges): Remove usage of ENTRY_BLOCK_PTR macro.
      	(add_noreturn_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_pdom): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(remove_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(verify_edge_list): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(print_edge_list): Likewise.
      	(create_edge_list): Likewise.
      	(find_unreachable_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
      	(mark_dfs_back_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* cfgbuild.c (find_bb_boundaries): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(find_many_sub_basic_blocks): Remove usage of EXIT_BLOCK_PTR macro.
      	(make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* cfgcleanup.c (delete_unreachable_blocks): Likewise.
      	(try_optimize_cfg): Likewise.
      	(try_head_merge_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(try_crossjump_to_edge): Remove usage of ENTRY_BLOCK_PTR macro.
      	(try_crossjump_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(merge_blocks_move): Remove usage of ENTRY_BLOCK_PTR macro.
      	(outgoing_edges_match): Remove usage of EXIT_BLOCK_PTR macro.
      	(try_forward_edges): Likewise.
      	(try_simplify_condjump): Likewise.
      	* cfgexpand.c (gimple_expand_cfg): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(construct_exit_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(construct_init_block): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(expand_gimple_basic_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(expand_gimple_tailcall): Likewise.
      	* cfghooks.c (can_duplicate_block_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(tidy_fallthru_edges): Likewise.
      	(verify_flow_info): Likewise.
      	* cfgloop.c (flow_bb_inside_loop_p): Likewise.
      	(num_loop_branches): Remove usage of EXIT_BLOCK_PTR macro.
      	(disambiguate_multiple_latches): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(get_loop_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(bb_loop_header_p): Remove usage of ENTRY_BLOCK_PTR macro.
      	(get_loop_body_in_bfs_order): Remove usage of EXIT_BLOCK_PTR macro.
      	(get_loop_body_in_dom_order): Likewise.
      	(get_loop_body): Likewise.
      	* cfgloopanal.c (mark_irreducible_loops): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* cfgloopmanip.c (create_preheader): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(remove_path): Remove usage of EXIT_BLOCK_PTR macro.
      	(fix_bb_placement): Likewise.
      	* cfgrtl.c (rtl_block_empty_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(rtl_can_remove_branch_p): Remove usage of EXIT_BLOCK_PTR macro.
      	(cfg_layout_split_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(rtl_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
      	(cfg_layout_can_merge_blocks_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(cfg_layout_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(fixup_fallthru_exit_predecessor): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(fixup_reorder_chain): Likewise.
      	(relink_block_chain): Likewise.
      	(cfg_layout_delete_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(rtl_verify_bb_layout): Remove usage of ENTRY_BLOCK_PTR macro.
      	(cfg_layout_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(force_one_exit_fallthru): Likewise.
      	(rtl_verify_fallthru): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(rtl_verify_edges): Likewise.
      	(commit_edge_insertions): Likewise.
      	(commit_one_edge_insertion): Likewise.
      	(rtl_split_edge): Likewise.
      	(force_nonfallthru_and_redirect): Likewise.
      	(outof_cfg_layout_mode): Remove usage of EXIT_BLOCK_PTR macro.
      	(skip_insns_after_block): Likewise.
      	(fixup_partition_crossing): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(purge_dead_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(rtl_can_merge_blocks): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(contains_no_active_insn_p): Likewise.
      	(emit_insn_at_entry): Remove usage of ENTRY_BLOCK_PTR macro.
      	(entry_of_function): Likewise.
      	(last_bb_in_partition): Remove usage of EXIT_BLOCK_PTR macro.
      	(fixup_new_cold_bb): Likewise.
      	(patch_jump_insn): Likewise.
      	(try_redirect_by_replacing_jump): Likewise.
      	(block_label): Likewise.
      	(could_fall_through): Likewise.
      	(can_fallthru): Likewise.
      	* cgraphbuild.c (cgraph_rebuild_references): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(rebuild_cgraph_edges): Likewise.
      	* cgraphunit.c (init_lowered_empty_function): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(expand_thunk): Remove usage of EXIT_BLOCK_PTR macro.
      	* combine.c (get_last_value): Remove usage of ENTRY_BLOCK_PTR macro.
      	(distribute_links): Remove usage of EXIT_BLOCK_PTR macro.
      	(get_last_value_validate): Remove usage of ENTRY_BLOCK_PTR macro.
      	(try_combine): Remove usage of EXIT_BLOCK_PTR macro.
      	(reg_num_sign_bit_copies_for_combine): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(reg_nonzero_bits_for_combine): Likewise.
      	(set_nonzero_bits_and_sign_copies): Likewise.
      	(combine_instructions): Likewise.
      	* cprop.c (one_cprop_pass): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(bypass_conditional_jumps): Likewise.
      	(bypass_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_implicit_sets): Likewise.
      	(cprop_jump): Likewise.
      	* cse.c (cse_cc_succs): Likewise.
      	(cse_find_path): Likewise.
      	* df-problems.c (df_lr_confluence_0): Likewise.
      	* df-scan.c (df_entry_block_defs_collect): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(df_exit_block_uses_collect): Remove usage of EXIT_BLOCK_PTR macro.
      	* dominance.c (iterate_fix_dominators): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(calc_idoms): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(determine_dominators_for_sons): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(calc_dfs_tree): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(prune_bbs_to_update_dominators): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(calc_dfs_tree_nonrec): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* domwalk.c (cmp_bb_postorder): Likewise.
      	* dse.c (dse_step1): Remove usage of EXIT_BLOCK_PTR macro.
      	* except.c (finish_eh_generation): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(sjlj_emit_function_enter): Likewise.
      	* final.c (compute_alignments): Likewise.
      	* function.c (thread_prologue_and_epilogue_insns): Remove uses of
      	macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(reposition_prologue_and_epilogue_notes): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	(convert_jumps_to_returns): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(regno_clobbered_at_setjmp): Remove usage of ENTRY_BLOCK_PTR macro.
      	(next_block_for_reg): Remove usage of EXIT_BLOCK_PTR macro.
      	* gcse.c (hoist_code): Remove usage of ENTRY_BLOCK_PTR macro.
      	(update_bb_reg_pressure): Remove usage of EXIT_BLOCK_PTR macro.
      	(compute_code_hoist_vbeinout): Likewise.
      	(should_hoist_expr_to_dom): Remove usage of ENTRY_BLOCK_PTR macro.
      	(pre_expr_reaches_here_p_work): Likewise.
      	* gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
      	(gimple_find_edge_insert_loc): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* gimple-ssa-strength-reduction.c (slsr_process_phi): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* graph.c (draw_cfg_nodes_for_loop): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* graphite-clast-to-gimple.c (translate_clast_user): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* graphite-scop-detection.c (build_scops): Likewise.
      	(create_sese_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(scopdet_basic_block_info): Remove usage of ENTRY_BLOCK_PTR macro.
      	* haifa-sched.c (restore_bb_notes): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(unlink_bb_notes): Likewise.
      	(create_check_block_twin): Likewise.
      	(init_before_recovery): Likewise.
      	(sched_extend_bb): Likewise.
      	(priority): Likewise.
      	* hw-doloop.c (reorder_loops): Likewise.
      	(discover_loop): Likewise.
      	* ifcvt.c (dead_or_predicable): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(find_if_case_1): Remove usage of EXIT_BLOCK_PTR macro.
      	(block_has_only_trap): Likewise.
      	(cond_exec_find_if_block): Likewise.
      	(merge_if_block): Likewise.
      	* ipa-inline-analysis.c (param_change_prob): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(record_modified): Likewise.
      	* ipa-pure-const.c (execute_warn_function_noreturn): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	(local_pure_const): Likewise.
      	* ipa-split.c (split_function): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(find_split_points): Likewise.
      	(consider_split): Likewise.
      	(find_return_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(verify_non_ssa_vars): Remove usage of ENTRY_BLOCK_PTR macro.
      	* ira-build.c (ira_loop_tree_body_rev_postorder): Likewise.
      	* ira-color.c (print_loop_title): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* ira-emit.c (entered_from_non_parent_p): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(ira_emit): Remove usage of EXIT_BLOCK_PTR macro.
      	* ira-int.h (ira_assert): Remove usage of ENTRY_BLOCK_PTR macro.
      	* ira.c (split_live_ranges_for_shrink_wrap): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* lcm.c (compute_rev_insert_delete): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(compute_nearerout): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compute_farthest): Likewise.
      	(compute_available): Likewise.
      	(compute_insert_delete): Remove usage of EXIT_BLOCK_PTR macro.
      	(compute_laterin): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compute_earliest): Likewise.
      	(compute_antinout_edge): Likewise.
      	* loop-iv.c (simplify_using_initial_values): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* loop-unswitch.c (unswitch_loop): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* lra-assigns.c (find_hard_regno_for): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* lra-constraints.c (lra_inheritance): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* lra-lives.c (lra_create_live_ranges): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* lra.c (has_nonexceptional_receiver): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* lto-streamer-in.c (input_function): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* lto-streamer-out.c (output_cfg): Likewise.
      	* mcf.c (adjust_cfg_counts): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(create_fixup_graph): Remove usage of ENTRY_BLOCK_PTR macro.
      	* mode-switching.c (optimize_mode_switching): Likewise.
      	(create_pre_exit): Remove usage of EXIT_BLOCK_PTR macro.
      	* modulo-sched.c (rest_of_handle_sms): Likewise.
      	(canon_loop): Likewise.
      	* omp-low.c (build_omp_regions): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* postreload-gcse.c (eliminate_partially_redundant_loads): Remove uses
      	of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* predict.c (rebuild_frequencies): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(propagate_freq): Remove usage of EXIT_BLOCK_PTR macro.
      	(estimate_bb_frequencies): Remove usage of ENTRY_BLOCK_PTR macro.
      	(tree_estimate_probability_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(expensive_function_p): Remove usage of ENTRY_BLOCK_PTR macro.
      	(tree_bb_level_predictions): Remove usage of EXIT_BLOCK_PTR macro.
      	(counts_to_freqs): Remove usage of ENTRY_BLOCK_PTR macro.
      	(apply_return_prediction): Remove usage of EXIT_BLOCK_PTR macro.
      	(estimate_loops): Remove usage of ENTRY_BLOCK_PTR macro.
      	(gimple_predict_edge): Likewise.
      	(probably_never_executed): Likewise.
      	* profile.c (find_spanning_tree): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(branch_prob): Likewise.
      	(compute_branch_probabilities): Likewise.
      	(compute_frequency_overlap): Remove usage of ENTRY_BLOCK_PTR macro.
      	(is_inconsistent): Remove usage of EXIT_BLOCK_PTR macro.
      	(read_profile_edge_counts): Remove usage of ENTRY_BLOCK_PTR macro.
      	(set_bb_counts): Likewise.
      	(correct_negative_edge_counts): Likewise.
      	(get_exec_counts): Likewise.
      	(instrument_values): Likewise.
      	(instrument_edges): Likewise.
      	* reg-stack.c (convert_regs): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compensate_edges): Remove usage of ENTRY_BLOCK_PTR macro.
      	(convert_regs_exit): Remove usage of EXIT_BLOCK_PTR macro.
      	(convert_regs_entry): Remove usage of ENTRY_BLOCK_PTR macro.
      	(reg_to_stack): Likewise.
      	* regs.h (REG_N_SETS): Likewise.
      	* reload.c (find_dummy_reload): Likewise.
      	(combine_reloads): Likewise.
      	(push_reload): Likewise.
      	* reload1.c (has_nonexceptional_receiver): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	* resource.c (mark_target_live_regs): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(find_basic_block): Likewise.
      	* sched-ebb.c (ebb_add_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(schedule_ebbs): Likewise.
      	* sched-int.h (sel_sched_p): Likewise.
      	* sched-rgn.c (compute_dom_prob_ps): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(rgn_add_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(haifa_find_rgns): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(propagate_deps): Remove usage of EXIT_BLOCK_PTR macro.
      	(extend_rgns): Likewise.
      	(find_single_block_region): Likewise.
      	* sel-sched-ir.c (sel_remove_loop_preheader): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(setup_nop_and_exit_insns): Remove usage of EXIT_BLOCK_PTR macro.
      	(sel_create_recovery_block): Likewise.
      	(bb_ends_ebb_p): Likewise.
      	(sel_bb_end): Likewise.
      	(sel_bb_head): Likewise.
      	(free_lv_sets): Likewise.
      	(init_lv_sets): Likewise.
      	(tidy_control_flow): Likewise.
      	(maybe_tidy_empty_bb): Likewise.
      	* sel-sched-ir.h (_succ_iter_cond): Likewise.
      	(_succ_iter_start): Likewise.
      	(sel_bb_empty_or_nop_p): Likewise.
      	(get_loop_exit_edges_unique_dests): Likewise.
      	(inner_loop_header_p): Likewise.
      	* sel-sched.c (create_block_for_bookkeeping): Likewise.
      	(find_block_for_bookkeeping): Likewise.
      	* store-motion.c (remove_reachable_equiv_notes): Likewise.
      	(insert_store): Likewise.
      	* trans-mem.c (ipa_tm_transform_clone): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(tm_memopt_compute_available): Remove usage of EXIT_BLOCK_PTR macro.
      	(ipa_tm_scan_irr_function): Remove usage of ENTRY_BLOCK_PTR macro.
      	(gate_tm_init): Likewise.
      	(tm_region_init): Likewise.
      	* tree-cfg.c (execute_fixup_cfg): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(execute_warn_function_return): Remove usage of EXIT_BLOCK_PTR macro.
      	(split_critical_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(print_loops): Remove usage of ENTRY_BLOCK_PTR macro.
      	(move_sese_region_to_fn): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(gimple_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(gimple_verify_flow_info): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(remove_edge_and_dominated_blocks): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(gimple_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
      	(make_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
      	(build_gimple_cfg): Likewise.
      	(gimple_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(gimple_can_merge_blocks_p): Likewise.
      	* tree-cfgcleanup.c (tree_forwarder_block_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* tree-complex.c (update_parameter_components): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* tree-if-conv.c (get_loop_body_in_if_conv_order): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	* tree-inline.c (tree_function_versioning): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(delete_unreachable_blocks_update_callgraph): Likewise.
      	(initialize_cfun): Likewise.
      	(copy_cfg_body): Remove usage of ENTRY_BLOCK_PTR macro.
      	(copy_edges_for_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(remap_ssa_name): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-into-ssa.c (update_ssa): Likewise.
      	(maybe_register_def): Remove usage of EXIT_BLOCK_PTR macro.
      	(insert_updated_phi_nodes_for): Remove usage of ENTRY_BLOCK_PTR macro.
      	(rewrite_into_ssa): Likewise.
      	(rewrite_debug_stmt_uses): Likewise.
      	* tree-outof-ssa.c (expand_phi_nodes): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* tree-profile.c (gimple_gen_ic_func_profiler): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* tree-scalar-evolution.h (block_before_loop): Likewise.
      	* tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
      	(dump_dereferences_table): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(analyze_caller_dereference_legality): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(propagate_dereference_distances): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(initialize_parameter_reductions): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Likewise.
      	(optimize_stack_restore): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
      	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(remove_dead_stmt): Remove usage of EXIT_BLOCK_PTR macro.
      	(propagate_necessity): Remove usage of ENTRY_BLOCK_PTR macro.
      	(mark_control_dependent_edges_necessary): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* tree-ssa-dom.c (eliminate_degenerate_phis): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(tree_ssa_dominator_optimize): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-live.c (verify_live_on_entry): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(calculate_live_on_exit): Likewise.
      	(set_var_live_on_entry): Remove usage of ENTRY_BLOCK_PTR macro.
      	(loe_visit_block): Likewise.
      	* tree-ssa-live.h (live_on_exit): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(live_on_entry): Likewise.
      	* tree-ssa-loop-ivopts.c (find_interesting_uses): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	* tree-ssa-loop-manip.c (compute_live_loop_exits): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise.
      	(bound_difference): Likewise.
      	* tree-ssa-loop-prefetch.c (may_use_storent_in_loop_p): Remove usage
      	of EXIT_BLOCK_PTR macro.
      	* tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Remove usage
      	of ENTRY_BLOCK_PTR macro.
      	* tree-ssa-math-opts.c (register_division_in): Likewise.
      	* tree-ssa-phiprop.c (tree_ssa_phiprop): Likewise.
      	* tree-ssa-pre.c (compute_avail): Likewise.
      	(compute_antic): Remove usage of EXIT_BLOCK_PTR macro.
      	(insert): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-ssa-propagate.c (ssa_prop_init): Likewise.
      	(simulate_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(cfg_blocks_add): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(add_control_edge): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-reassoc.c (do_reassoc): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(build_and_add_sum): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
      	(execute_sink_code): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-uninit.c (find_dom): Remove usage of ENTRY_BLOCK_PTR macro.
      	(compute_control_dep_chain): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_pdom): Likewise.
      	(warn_uninitialized_vars): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-stdarg.c (reachable_at_most_once): Likewise.
      	* tree-tailcall.c (tree_optimize_tail_calls_1): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(eliminate_tail_call): Likewise.
      	* tsan.c (instrument_func_entry): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(instrument_func_exit): Remove usage of EXIT_BLOCK_PTR macro.
      	* var-tracking.c (vt_initialize): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(vt_add_function_parameter): Remove usage of ENTRY_BLOCK_PTR macro.
      	(vt_find_locations): Remove usage of EXIT_BLOCK_PTR macro.
      	(vt_stack_adjustments): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* varasm.c (assemble_start_function): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* config/bfin/bfin.c (hwloop_optimize): Likewise.
      	* config/nds32/nds32.c (nds32_fp_as_gp_check_available): Remove usage
      	of EXIT_BLOCK_PTR macro.
      	* config/arm/arm.c (require_pic_register): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(arm_r3_live_at_start_p): Likewise.
      	(any_sibcall_could_use_r3): Remove usage of EXIT_BLOCK_PTR macro.
      	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
      	* config/frv/frv.c (frv_optimize_membar_global): Likewise.
      	* config/alpha/alpha.c (alpha_gp_save_rtx): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* config/i386/i386.c (ix86_count_insn): Likewise.
      	(ix86_seh_fixup_eh_fallthru): Remove usage of EXIT_BLOCK_PTR macro.
      	(ix86_pad_short_function): Likewise.
      	(ix86_compute_frame_layout): Remove usage of ENTRY_BLOCK_PTR macro.
      	(ix86_pad_returns): Remove usage of EXIT_BLOCK_PTR macro.
      	(ix86_eax_live_at_start_p): Remove usage of ENTRY_BLOCK_PTR macro.
      	(add_condition_to_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(ix86_expand_epilogue): Likewise.
      	* config/ia64/ia64.c (ia64_asm_unwind_emit): Likewise.
      	(ia64_expand_prologue): Likewise.
      
      From-SVN: r205055
      David Malcolm committed
  2. 28 Sep, 2013 1 commit
    • alloc-pool.c, [...]: Add missing whitespace before "(". · c3284718
      gcc/
      	* alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
      	bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
      	cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
      	cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
      	combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
      	cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
      	df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
      	dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
      	errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
      	fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
      	gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
      	genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
      	genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
      	genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
      	gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
      	gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
      	gimple.h, godump.c, graphite-clast-to-gimple.c,
      	graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
      	graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
      	hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
      	ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
      	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
      	ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
      	loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
      	lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
      	mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
      	pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
      	predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
      	profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
      	regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
      	reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
      	sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
      	statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
      	system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
      	tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
      	tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
      	tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
      	tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
      	tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
      	tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
      	tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
      	tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
      	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
      	tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
      	tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
      	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
      	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
      	tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
      	tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
      	tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
      	tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
      	tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
      	tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
      	varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
      	whitespace before "(".
      
      From-SVN: r203004
      Richard Sandiford committed
  3. 08 Feb, 2013 1 commit
  4. 10 Jan, 2013 1 commit
  5. 05 Dec, 2012 1 commit
    • tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Update documentation. · aeb9f7cf
      	* doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Update documentation.
      	* doc/tm.texi: Regenerate.
      	* regs.h (REG_LIVE_LENGTH): Update comments to not refer to no longer
      	existing files global.c and local-alloc.c.
      	* regmove.c (copy_src_to_dest): Likewise.
      	* function.h (struct rtl_data): Likewise.
      	* ira-color.c (allocno_priority_compare_func): Likewise.
      	* regstat.c (regstat_compute_ri): Likewise.
      	* config/epiphany/epiphany.h, config/vax/vax.h, config/cris/cris.h,
      	config/h8300/h8300.h, config/alpha/alpha.h, config/sparc/sparc.h,
      	config/rs6000/rs6000.h, config/pdp11/pdp11.h, config/pa/pa.h,
      	config/v850/v850.h, config/mn10300/mn10300.h, config/m32r/m32r.h,
      	config/i386/i386.h, config/mcore/mcore.h, config/sh/sh.h,
      	config/arm/arm.h (REGNO_OK_FOR_BASE_P): Likewise.
      
      From-SVN: r194229
      Steven Bosscher committed
  6. 08 Jul, 2012 1 commit
    • basic-block.h: Re-group most prototypes per file. · 532aafad
      gcc/
      	* basic-block.h: Re-group most prototypes per file.
      	(struct edge_list): Remove num_blocks field.
      	(dump_bb_info): Adjust prototypes.
      	(dump_reg_info): Move prototype to regs.h.
      	* function.h: Do not include tree.h.
      	Include vec.h, vecir.h, input.h and machmode.h to compensate.
      	(function_name): New prototype.
      	* gimple.h: Include tree.h to compensate for basic-block.h change.
      	* langhooks.h: Note that tree.h is only necessary for enum tree_code.
      	* regs.h (dump_reg_info): Prototype here.
      	* regset.h: Adjust file reference in comment.
      	(debug_regset): Remove prototype.
      	* rtl.h: Include flags.h for flag_var_tracking_assignments.
      	(MAY_HAVE_DEBUG_INSNS): Define as flag_var_tracking_assignments
      	instead of no-longer-available tree.h's MAY_HAVE_DEBUG_STMTS.
      	(dump_reg_info, dump_flow_info): Remove prototypes.
      	* bb-reorder.c (set_edge_can_fallthru_flag): Move from cfganal.c
      	to here, the only user.  Make static.
      	(reorder_basic_blocks): Call dump_reg_info before dump_flow_info.
      	* cfg.c: Do not include tm.h, tree.h, rtl.h, hard-reg-set.h, regs.h,
      	flags.h, function.h, except.h, diagnostic-core.h, tm_p.h, timevar.h,
      	tree-pass.h, cfgloop.h, and tree-flow.h.
      	Include basic-block.h, the first header I'd expect to be included.
      	(reg_obstack): Move to df-core.c.
      	(free_edge): Remove bogus ATTRIBUTE_UNUSED.
      	(remove_edge_raw): Do not call tree-ssa's redirect_edge_var_map_clear.
      	(redirect_edge_succ_nodup): Move to cfghooks.c.
      	(dump_regset, debug_regset): Move to df-core.c.
      	(dump_bb_info): Move to cfgrtl.c.
      	(dump_reg_info): Move to regstat.c.
      	(dump_flow_info): Move to cfgrtl.c.
      	(debug_flow_info): Likewise.
      	(dump_edge_info): Do not look at cfun, a CFG without cfun is nonsense.
      	* cfganal.c: Do not include tm.h, rtl.h, obstack.h, hard-reg-set.h,
      	insn-config.h, recog.h, diagnostic-core.h, tm_p.h, and cfgloop.h.
      	(flow_active_insn_p, forwarder_block_p, can_fallthru,
      	could_fall_through): Move to cfgrtl.c.
      	(set_edge_can_fallthru_flag): Moved to bb-reorder.c.
      	(create_edge_list): Do not set edge_list's removed num_blocks.
      	(print_edge_list): Look at n_basic_blocks instead of num_blocks.
      	(flow_nodes_print): Remove.
      	(flow_edge_list_print): Remove.
      	(inverted_post_order_compute): Use FOR_ALL_BB.
      	*cfgrtl.c (dump_flow_info): Moved from cfg.c.
      	Do not call dump_reg_info.
      	(debug_flow_info): Moved from cfg.c
      	(dump_bb_info): Moved from cfg.c.  Take 'verbose' argument
      	to avoid looking at TDF_* flags from tree-pass.h.
      	(flow_active_insn_p, forwarder_block_p, can_fallthru,
      	could_fall_through): Moved from cfganal.c.
      	(print_rtl_with_bb): Adjust dump_bb_info calls.
      	* cfghooks.c (redirect_edge_succ_nodup): Moved from cfg.c.
      	(remove_edge): Call redirect_edge_var_map_clear if IR_GIMPLE.
      	(cfgcleanup.c): Look at MAY_HAVE_DEBUG_INSNS, not MAY_HAVE_DEBUG_STMTS.
      	* cselib.c: Include tree.h with a FIXME.
      	* df-core.c (reg_obstack): Moved from cfg.c.
      	(dump_regset): Likewise.
      	(debug_regset): Likewise.  Make a DEBUG_FUNCTION.
      	* final.c (compute_alignments): Call dump_reg_info before
      	dump_flow_info.
      	* function.c (function_name): New function.
      	(current_function_name): Use it.
      	* ifcvt.c (rest_of_handle_if_conversion): Call dump_reg_info before
      	dump_flow_info.
      	* ira-conflicts.c: Include tree.h with a note.
      	* regstat.c (dump_reg_info): Moved here from cfg.c.
      	* loop-init.c: Include regs.h instead of hard-reg-set.h.
      	(rtl_loop_init): Call dump_reg_info before dump_flow_info.
      	(rtl_loop_done): Likewise.
      	* mcf.c: Include tree.h before langhooks.h.
      	* predict.c (maybe_hot_count_p): Assert we have cfun.
      	(probably_never_executed_bb_p): Likewise.
      	* profile.c (compute_branch_probabilities): Use gimple_dump_cfg
      	instead of dump_flow_info.
      	* sched-deps.c: Include tree.h with a FIXME.
      	(call_may_noreturn_p): Add FIXME note why this function has to
      	look at function decls instead of function decl flags.
      	* sched-vis.c: Include tree.h with a FIXME.
      	(print_rtl_slim): Adjust dump_bb_info uses.
      	* statistics.c (statistics_fini_pass_2): Use current_function_name
      	to avoid including tree.h.
      	(statistics_counter_event): Use function_name for the same reason.
      	(statistics_histogram_event): Likewise.
      	* tracer.c (tracer): Remove bogus gcc_assert.  Use brief_dump_cfg
      	instead of dump_flow_info.
      	* var-tracking.c (variable_tracking_main_1): Call dump_reg_info
      	before dump_flow_info.
      	* doc/cfg.texi: Update CFG documentation.
      	* Makefile.in (RTL_H): Depend on FLAGS_H.
      	(GIMPLE_H): Depend on TREE_H.
      	(FUNCTION_H): Depend on VEC_H, vecir.h, INPUT_H and MACHMODE_H,
      	but no longer on TREE_H.
      	(C_COMMON_H): Depend on TREE_H.
      	(cselib.o, cse.o, cfganal.o, loop-init.o, ira-conflicts.o,
      	sched-deps.o, sched-vis.o): Fixup dependencies.
      
      c-family/
      	* c-common.h: Include tree.h.
      
      cp/
      	* decl.c (cp_finish_decl): Add FIXME at add_local_decl call site.
      
      From-SVN: r189359
      Steven Bosscher committed
  7. 31 May, 2012 1 commit
  8. 24 May, 2012 1 commit
  9. 07 Sep, 2011 1 commit
    • regrename.c (struct du_head): Make nregs signed. · 8ffa0351
      	* regrename.c (struct du_head): Make nregs signed.
      	(closed_chains): Remove.
      	(create_new_chain): Return the new chain.
      	(chain_from_id): New static function.
      	(dump_def_use_chain): Change argument to be an int, indicating
      	the first ID to print.  All callers changed.
      	(merge_overlapping_regs): Use chain_from_id.  Assert that
      	chains don't conflict with themselves.
      	(rename_chains): Take no argument.  Iterate over id_to_chain
      	rather to find chains to rename.  Clear tick before the main
      	loop.
      	(struct incoming_reg_info): New struct.
      	(struct bb_rename_info): New struct.
      	(init_rename_info, set_incoming_from_chain, merge_chains): New
      	static functions.
      	(regrename_analyze): New static function, broken out of
      	regrename_optimize.  Record and make use of open chain information
      	at basic block boundaries, and merge chains where possible.
      	(scan_rtx_reg): Make this_nregs signed.  Don't update
      	closed_chains.
      	(build_def_use): Return a bool to indicate success.  All callers
      	changed.  Don't initialize global data here.
      	(regrename_optimize): Move most code out of here into
      	regrename_analyze.
      	* regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
      	range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
      	static inline functions.
      	* vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
      
      From-SVN: r178645
      Bernd Schmidt committed
  10. 10 Apr, 2011 1 commit
  11. 03 Jan, 2011 1 commit
  12. 02 Sep, 2010 1 commit
    • target.def (class_likely_spilled_p): New hook. · 07b8f0a8
      	* target.def (class_likely_spilled_p): New hook.
      	* doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
      	* doc/tm.texi: Regenerate.
      	* targhooks.c (default_class_likely_spilled_p): New function.
      	* targhooks.h (default_class_likely_spilled_p): Declare.
      	* regs.h (CLASS_LIKELY_SPILLED_P): Remove.
      	* combine.c: (cant_combine_insn_p, likely_spilled_retval_p): Use
      	TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
      	Use fixed_reg_set instead of fixed_regs.
      	* cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
      	* calls.c (avoid_likely_spilled_reg): Ditto.
      	* ira-conflicts.c: (ira_build_conflicts): Ditto.
      	* ira.c (update_equiv_regs): Ditto.
      	* mode-switching.c (create_pre_exit): Ditto.
      	* regmove.c (find_matches): Ditto.
      	(regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target
      	hook.
      	* reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
      	(small_register_class_p): New inline function.
      	(push_secondary_reload, find_reusable_reload, find_reloads): Use
      	small_register_class_p instead of SMALL_REGISTER_CLASS_P.
      
      	* config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
      	* config/i386/i386.c (ix86_class_likely_spilled_p): New.
      	(TARGET_CLASS_LIKELY_SPILLED_P): Define.
      
      From-SVN: r163779
      Anatoly Sokolov committed
  13. 12 Jul, 2010 3 commits
    • regs.h (target_regs): Add x_direct_load, x_direct_store and x_float_extend_from_mem. · 9d86796b
      gcc/
      	* regs.h (target_regs): Add x_direct_load, x_direct_store and
      	x_float_extend_from_mem.
      	(direct_load, direct_store, float_extend_from_mem): New macros.
      	* expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
      
      From-SVN: r162100
      Richard Sandiford committed
    • regs.h (target_regs): Add x_hard_regs_of_mode... · 55e78c8c
      gcc/
      	* regs.h (target_regs): Add x_hard_regs_of_mode, x_contains_reg_of_mode,
      	x_move_cost, x_may_move_in_cost, x_may_move_out_cost and
      	x_last_mode_for_init_move_cost.
      	(have_regs_of_mode, contains_reg_of_mode, move_cost)
      	(may_move_in_cost, may_move_out_cost): Redefine as macros.
      	* reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
      	(may_move_in_cost, may_move_out_cost): Delete.
      	(last_mode_for_init_move_cost): Redefine as a macro.
      
      From-SVN: r162090
      Richard Sandiford committed
    • Makefile.in (target-globals.o): Depend on $(REGS_H). · 939dcd0d
      gcc/
      	* Makefile.in (target-globals.o): Depend on $(REGS_H).
      	* regs.h (target_reg_modes): New structure.
      	(default_target_reg_modes): Declare.
      	(this_target_reg_modes): Declare as a variable or define as a macro.
      	(hard_regno_nregs, reg_raw_mode): Redefine as macros.
      	* reginfo.c (default_target_reg_modes): New variable.
      	(this_target_reg_modes): New conditional variable.
      	(hard_regno_nregs, reg_raw_mode): Delete.
      	* target-globals.h (this_target_regs): Declare.
      	(target_globals): Add a regs field.
      	(restore_target_globals): Copy the regs field to this_target_regs.
      	* target-globals.c: Include regs.h.
      	(default_target_globals): Initialize the regs field.
      	(save_target_globals): Likewise.
      
      From-SVN: r162087
      Richard Sandiford committed
  14. 23 May, 2010 1 commit
    • regs.h: Do not include obstack.h, basic-block.h. · 2d1a4cc1
      	* regs.h: Do not include obstack.h, basic-block.h.
      	Include machmode.h.
      	* jump.c: Include basic-block.h.
      	* profile.c: Likewise.
      	* tree-profile.c: Likewise.
      	* coverage.c: Likewise.
      	* basic-block.h (optimize_function_for_size_p): Move to function.h.
      	(optimize_function_for_speed_p): Likewise.
      	* function.h (optimize_function_for_size_p,
      	optimize_function_for_speed_p): Moved here from basic-block.h.
      
      From-SVN: r159761
      Steven Bosscher committed
  15. 03 May, 2010 1 commit
    • tm.texi (defmac SMALL_REGISTER_CLASSES): Remove. · 42db504c
      	* doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
      	(TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
      	based on the above, for new target hook.
      
      	* hooks.c (hook_bool_mode_true): New generic hook.
      	* hooks.h (hook_bool_mode_true): Add prototype.
      
      	* target.h (struct gcc_target): Add small_register_classes_for_mode_p
      	target hook.
      	* target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
      	target hook, set to hook_bool_mode_false.
      	* regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
      	* reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
      	with targetm.small_register_classes_for_mode_p.
      	(find_reusable_reload): Likewise.
      	(combine_reloads): Likewise.
      	* reload1.c (reload_as_needed): Likewise.
      	* cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
      	* ifcvt.c (noce_process_if_block, check_cond_move_block,
      	dead_or_predicable): Likewise.
      	* regmove.c (optimize_reg_copy_1): Likewise.
      	* calls.c (prepare_call_address): Likewise.
      	(precompute_register_parameters): Likewise.
      
      	* config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
      	hook definition.
      	* config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
      	implementation of the hook that considers all register classes
      	small except for SH64.
      	(sh_override_options): Use the new hook.
      	* config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
      	Add prototype.
      
      	* config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
      	hook definition.
      	* config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
      	implementation of the hook that considers all register classes
      	small for THUMB1.
      	* config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
      	Add prototype.
      
      	* config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
      	hook definition.
      	* config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
      	implementation of the hook that considers all register classes
      	small for MIPS16.
      	* config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
      	Add prototype.
      
      	* config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
      	hook definition.
      	* config/m32c/m32c.h: Likewise.
      	* config/pdp11/pdp11.h: Likewise.
      	* config/avr/avr.h: Likewise.
      	* config/xtensa/xtensa.h: Likewise.
      	* config/m68hc11/m68hc11.h: Likewise.
      	* config/mn10300/mn10300.h: Likewise.
      	* config/mcore/mcore.h: Likewise.
      	* config/h8300/h8300.h: Likewise.
      	* config/bfin/bfin.h: Likewise.
      
      	* config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
      	* config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
      
      From-SVN: r158997
      Steven Bosscher committed
  16. 30 Apr, 2010 1 commit
    • toplev.c: Include varray.h for statistics dumping. · 9aae8d16
      gcc/ChangeLog:
      	* toplev.c: Include varray.h for statistics dumping.
      	* tree.h: Do not declare varray_head_tag.
      	* tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
      	regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
      	c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
      	gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
      	lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
      	tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
      	c-common.c, c-common.h, reg-stack.c, basic-block.h,
      	tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
      	include varray.h.
      	* Makefile.in: Update for abovementioned changes.
      
      objc/ChangeLog:
      	* objc-act.c: Do not include varray.h.
      
      objcp/ChangeLog:
      	* objcp-decl.c: Do not include varray.h.
      
      cp/ChangeLog:
      	* optimize.c, parser.c,mangle.c, cp-tree.h: DO not include varray.h.
      	* Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
      
      From-SVN: r158933
      Steven Bosscher committed
  17. 25 Nov, 2009 1 commit
    • Remove trailing white spaces. · b8698a0f
      2009-11-25  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* alias.c: Remove trailing white spaces.
      	* alloc-pool.c: Likewise.
      	* alloc-pool.h: Likewise.
      	* attribs.c: Likewise.
      	* auto-inc-dec.c: Likewise.
      	* basic-block.h: Likewise.
      	* bb-reorder.c: Likewise.
      	* bt-load.c: Likewise.
      	* builtins.c: Likewise.
      	* builtins.def: Likewise.
      	* c-common.c: Likewise.
      	* c-common.h: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-format.c: Likewise.
      	* c-lex.c: Likewise.
      	* c-omp.c: Likewise.
      	* c-opts.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* c-tree.h: Likewise.
      	* c-typeck.c: Likewise.
      	* caller-save.c: Likewise.
      	* calls.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfghooks.h: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloop.h: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cif-code.def: Likewise.
      	* collect2.c: Likewise.
      	* combine.c: Likewise.
      	* convert.c: Likewise.
      	* coverage.c: Likewise.
      	* crtstuff.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* dbgcnt.c: Likewise.
      	* dbgcnt.def: Likewise.
      	* dbgcnt.h: Likewise.
      	* dbxout.c: Likewise.
      	* dce.c: Likewise.
      	* ddg.c: Likewise.
      	* ddg.h: Likewise.
      	* defaults.h: Likewise.
      	* df-byte-scan.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* df.h: Likewise.
      	* dfp.c: Likewise.
      	* diagnostic.c: Likewise.
      	* diagnostic.h: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* double-int.c: Likewise.
      	* double-int.h: Likewise.
      	* dse.c: Likewise.
      	* dwarf2asm.c: Likewise.
      	* dwarf2asm.h: Likewise.
      	* dwarf2out.c: Likewise.
      	* ebitmap.c: Likewise.
      	* ebitmap.h: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* except.c: Likewise.
      	* except.h: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* expr.h: Likewise.
      	* final.c: Likewise.
      	* flags.h: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* fwprop.c: Likewise.
      	* gcc.c: Likewise.
      	* gcov-dump.c: Likewise.
      	* gcov-io.c: Likewise.
      	* gcov-io.h: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genattr.c: Likewise.
      	* genattrtab.c: Likewise.
      	* genautomata.c: Likewise.
      	* genchecksum.c: Likewise.
      	* genconfig.c: Likewise.
      	* genflags.c: Likewise.
      	* gengtype-parse.c: Likewise.
      	* gengtype.c: Likewise.
      	* gengtype.h: Likewise.
      	* genmddeps.c: Likewise.
      	* genmodes.c: Likewise.
      	* genopinit.c: Likewise.
      	* genpreds.c: Likewise.
      	* gensupport.c: Likewise.
      	* ggc-common.c: Likewise.
      	* ggc-page.c: Likewise.
      	* ggc-zone.c: Likewise.
      	* ggc.h: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple.c: Likewise.
      	* gimple.def: Likewise.
      	* gimple.h: Likewise.
      	* gimplify.c: Likewise.
      	* graphds.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* gthr-nks.h: Likewise.
      	* gthr-posix.c: Likewise.
      	* gthr-posix.h: Likewise.
      	* gthr-posix95.h: Likewise.
      	* gthr-single.h: Likewise.
      	* gthr-tpf.h: Likewise.
      	* gthr-vxworks.h: Likewise.
      	* gthr.h: Likewise.
      	* haifa-sched.c: Likewise.
      	* hard-reg-set.h: Likewise.
      	* hooks.c: Likewise.
      	* hooks.h: Likewise.
      	* hosthooks.h: Likewise.
      	* hwint.h: Likewise.
      	* ifcvt.c: Likewise.
      	* incpath.c: Likewise.
      	* init-regs.c: Likewise.
      	* integrate.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa-type-escape.h: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-utils.h: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-emit.c: Likewise.
      	* ira-int.h: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* jump.c: Likewise.
      	* lambda-code.c: Likewise.
      	* lambda-mat.c: Likewise.
      	* lambda-trans.c: Likewise.
      	* lambda.h: Likewise.
      	* langhooks.c: Likewise.
      	* lcm.c: Likewise.
      	* libgcov.c: Likewise.
      	* lists.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-iv.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-compress.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* lto-streamer.h: Likewise.
      	* lto-symtab.c: Likewise.
      	* lto-wpa-fixup.c: Likewise.
      	* matrix-reorg.c: Likewise.
      	* mcf.c: Likewise.
      	* mode-switching.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* omega.c: Likewise.
      	* omega.h: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* opts-common.c: Likewise.
      	* opts.c: Likewise.
      	* params.def: Likewise.
      	* params.h: Likewise.
      	* passes.c: Likewise.
      	* plugin.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* predict.def: Likewise.
      	* pretty-print.c: Likewise.
      	* pretty-print.h: Likewise.
      	* print-rtl.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* read-rtl.c: Likewise.
      	* real.c: Likewise.
      	* recog.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* reginfo.c: Likewise.
      	* regmove.c: Likewise.
      	* regrename.c: Likewise.
      	* regs.h: Likewise.
      	* regstat.c: Likewise.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.c: Likewise.
      	* rtl.def: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      	* sbitmap.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-int.h: Likewise.
      	* sched-rgn.c: Likewise.
      	* sched-vis.c: Likewise.
      	* sdbout.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* sel-sched-dump.h: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched-ir.h: Likewise.
      	* sel-sched.c: Likewise.
      	* sel-sched.h: Likewise.
      	* sese.c: Likewise.
      	* sese.h: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stack-ptr-mod.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* stringpool.c: Likewise.
      	* stub-objc.c: Likewise.
      	* sync-builtins.def: Likewise.
      	* target-def.h: Likewise.
      	* target.h: Likewise.
      	* targhooks.c: Likewise.
      	* targhooks.h: Likewise.
      	* timevar.c: Likewise.
      	* tlink.c: Likewise.
      	* toplev.c: Likewise.
      	* toplev.h: Likewise.
      	* tracer.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-affine.h: Likewise.
      	* tree-browser.def: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-chrec.h: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-data-ref.h: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-dump.h: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-flow.h: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-loop-linear.c: Likewise.
      	* tree-mudflap.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-operands.h: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vectorizer.h: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tree.def: Likewise.
      	* tree.h: Likewise.
      	* treestruct.def: Likewise.
      	* unwind-compat.c: Likewise.
      	* unwind-dw2-fde-glibc.c: Likewise.
      	* unwind-dw2.c: Likewise.
      	* value-prof.c: Likewise.
      	* value-prof.h: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* vec.c: Likewise.
      	* vec.h: Likewise.
      	* vmsdbgout.c: Likewise.
      	* web.c: Likewise.
      	* xcoffout.c: Likewise.
      
      From-SVN: r154645
      H.J. Lu committed
  18. 26 Aug, 2008 1 commit
    • [multiple changes] · 058e97ec
      2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
      	ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
      
      	* doc/passes.texi: Describe IRA.
      
      	* doc/tm.texi (IRA_COVER_CLASSES,
      	IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
      
      	* doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
      	(-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
      	-fira-propagate-cost, -fno-ira-share-save-slots,
      	-fno-ira-share-spill-slots, -fira-verbose): Describe new options.
      
      	* flags.h (ira_algorithm): New enumeration.
      	(flag_ira_algorithm, flag_ira_verbose): New external variable
      	declarations.
      
      	* postreload.c (gate_handle_postreload): Don't do post reload
      	optimizations unless the reload is completed.
      
      	* reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
      	IRA.
      
      	* tree-pass.h (pass_ira): New external variable declaration.
      
      	* reload.h: Add 2008 to the Copyright.
          
      	* cfgloopanal.c: Include params.h.
      	(estimate_reg_pressure_cost): Decrease cost for IRA optimization
      	mode.
          
      	* params.h (IRA_MAX_LOOPS_NUM): New macro.
      
      	* toplev.c (ira.h): New include.
      	(flag_ira_algorithm, flag_ira_verbose): New external variables.
      	(backend_init_target): Call ira_init.
      	(backend_init): Call ira_init_once.
      	(finalize): Call finish_ira_once.
      
      	* toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
      	flag_ira_share_save_slots, flag_ira_share_spill_slots): New
      	external variables.
      
      	* regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
      	may_move_out_cost): New external variable declarations.
      	(move_table): New typedef.
          
      	* caller-save.c: Include headers output.h and ira.h.
      	(no_caller_save_reg_set): New global variable.
      	(save_slots_num, save_slots): New variables.
      	(reg_save_code, reg_restore_code, add_stored_regs): Add
      	prototypes.
      	(init_caller_save): Set up no_caller_save_reg_set.
      	(init_save_areas): Reset save_slots_num.
      	(saved_hard_reg): New structure.
      	(hard_reg_map, saved_regs_num, all_saved_regs): New variables.
      	(initiate_saved_hard_regs, new_saved_hard_reg,
      	finish_saved_hard_regs, saved_hard_reg_compare_func): New
      	functions.
      	(setup_save_areas): Add code for sharing stack slots.
      	(all_blocks): New variable.
      	(save_call_clobbered_regs): Process pseudo-register too.
      	(mark_set_regs): Process pseudo-register too.
      	(insert_one_insn): Put the insn after bb note in a empty basic
      	block.  Add insn check.
          
      	* global.c (eliminable_regset): Make it external.
      	(mark_elimination): Use DF_LR_IN for IRA.
      	(pseudo_for_reload_consideration_p): New.
      	(build_insn_chain): Make it external.  Don't ignore spilled
      	pseudos for IRA.  Use pseudo_for_reload_consideration_p.
      	(gate_handle_global_alloc): New function.
      	(pass_global_alloc): Add the gate function.
      
      	* opts.c (decode_options): Set up flag_ira.  Print the warning for
      	-fira.
      	(common_handle_option): Process -fira-algorithm and -fira-verbose.
      
      	* timevar.def (TV_IRA, TV_RELOAD): New passes.
      
      	* regmove.c (regmove_optimize): Don't do replacement of output for
      	IRA.
      
      	* hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
      	New external variable declarations.
      
      	* local-alloc.c (update_equiv_regs): Make it external.  Return
      	true if jump label rebuilding should be done.  Rescan new_insn for
      	notes.
      	(gate_handle_local_alloc): New function.
      	(pass_local_alloc): Add the gate function.
      
      	* alias.c (value_addr_p, stack_addr_p): New functions.
      	(nonoverlapping_memrefs_p): Use them for IRA.
      
      	* common.opt (fira, fira-algorithm, fira-coalesce,
      	fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
      	fira-verbose): New options.
      
      	* regclass.c (reg_class_subclasses, contains_reg_of_mode,
      	move_cost, may_move_in_cost, may_move_out_cost): Make the
      	variables external.
      	(move_table): Remove typedef.
      	(init_move_cost): Make it external.
      	(allocate_reg_info, resize_reg_info, setup_reg_classes): New
      	functions.
      
      	* rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
      	setup_reg_classes): New function prototypes.
      	(eliminable_regset): New external variable declaration.
      	(build_insn_chain, update_equiv_regs): New function prototypes.
          
      	* Makefile.in (IRA_INT_H): New definition.
      	(OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
      	ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
      	(reload1.o, toplev.o): Add dependence on ira.h.
      	(cfgloopanal.o): Add PARAMS_H.
      	(caller-save.o): Add dependence on output.h and ira.h.
      	(ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
      	ira-emit.o, ira-lives.o): New entries.
      
      	* passes.c (pass_ira): New pass.
      
      	* params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
      
      	* reload1.c (ira.h): Include the header.
      	(changed_allocation_pseudos): New bitmap.
      	(init_reload): Initiate the bitmap.
      	(compute_use_by_pseudos): Permits spilled registers in FROM.
      	(temp_pseudo_reg_arr): New variable.
      	(reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
      	IRA.  Call alter_reg with the additional parameter.  Don't clear
      	spilled_pseudos for IRA.  Restore original insn chain for IRA.
      	Clear changed_allocation_pseudos at the end of reload.
      	(calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
      	(hard_regno_to_pseudo_regno): New variable.
      	(count_pseudo): Check spilled pseudos.  Set up
      	hard_regno_to_pseudo_regno.
      	(count_spilled_pseudo): Check spilled pseudos. Update
      	hard_regno_to_pseudo_regno.
      	(find_reg): Use better_spill_reload_regno_p.  Check
      	hard_regno_to_pseudo_regno.
      	(alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
      	code for IRA.
      	(eliminate_regs_1): Use additional parameter for alter_reg.
      	(finish_spills): Set up pseudo_previous_regs only for spilled
      	pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
      	more arguments.  Don't clear live_throughout and dead_or_set for
      	spilled pseudos.  Use additional parameter for alter_reg.  Call
      	mark_allocation_change.  Set up changed_allocation_pseudos.
      	Remove sanity check.
      	(emit_input_reload_insns, delete_output_reload): Use additional
      	parameter for alter_reg.  Call mark_allocation_change.
      	(substitute, gen_reload_chain_without_interm_reg_p): New
      	functions.
      	(reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
          
      	* testsuite/gcc.dg/20080410-1.c: New file.
      	
      	* config/s390/s390.h (IRA_COVER_CLASSES,
      	IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
      
      	* config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
      
      	* config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
      
      	* config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
          
      	* config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
          
      	2008-08-24  Jeff Law  <law@redhat.com>
      	* ira.c (setup_reg_class_intersect_union): Prefer smallest class
      	when ignoring unavailable registers.
      
      	2008-08-24  Jeff Law  <law@redhat.com>
      	* ira-color.c (coalesced_pseudo_reg_slot_compare): Check
      	FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
      	* ira.c (setup_eliminable_regset): Check stack_realign_needed.
      	* config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
      
      	2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
      	* ira-build.c (allocno_range_compare_func): Stabilize sort.
      
      	2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
      	* config/avr/avr.h (IRA_COVER_CLASSES): New macro.
      	* reload1.c (find_reg): Process registers in register allocation order.
      
      	2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
      	* toplev.c (backend_init_target): Move ira_init call from
      	here...
      	(lang_dependent_init_target): ...to here.
      
      	2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
      	* ira.c (setup_class_subset_and_memory_move_costs): Don't
      	calculate memory move costs for NO_REGS.
      
      	2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
      	* ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
      	STACK_REGS is defined.
      
      	2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
      	* config/spu/spu.h (IRA_COVER_CLASSES): New macro.
      
      	2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
      	* config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
      
      	2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
      	* config/sh/sh.h (IRA_COVER_CLASSES): Define.
      	* config/sh/sh.md (movsicc_true+3): Check if emit returns a
      	barrier.
      
      From-SVN: r139590
      Vladimir Makarov committed
  19. 06 Jun, 2008 1 commit
    • cgraph.c: Fix typos in comments. · fa10beec
      gcc/
      	* cgraph.c: Fix typos in comments.
      	(cgraph_availability_names): Fix string typo.
      	* fold-const.c: Fix typos in comments.
      	(fold_binary): Fix typo in warning.
      	* genautomata.c: Fix typos in comments.
      	(check_presence_pattern_sets): Fix typo in local variable.
      	(output_description): Fix typo in output.
      	* ggc-zone.c (ggc_pch_finish): Fix typo in error message.
      	* hwint.h: Likewise.
      	* matrix-reorg.c (check_allocation_function): Likewise.
      	* omega.c (smooth_weird_equations): Likewise.
      	* auto-inc-dec.c: Fix typos in comments.
      	* bb-reorder.c: Likewise.
      	* builtins.c: Likewise.
      	* c-common.c: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* coverage.c: Likewise.
      	* dbxout.c: Likewise.
      	* df-byte-scan.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dfp.c: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* dse.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* gcc.c: Likewise.
      	* gcov-io.c: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genattrtab.c: Likewise.
      	* ggc-page.c: Likewise.
      	* gimplify.c: Likewise.
      	* gthr-lynx.h: Likewise.
      	* haifa-sched.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* mips-tfile.c: Likewise.
      	* mkmap-flat.awk: Likewise.
      	* mkmap-symver.awk: Likewise.
      	* modulo-sched.c: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* opts.c: Likewise.
      	* passes.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* pretty-print.h: Likewise.
      	* profile.c: Likewise.
      	* protoize.c: Likewise.
      	* ra-conflict.c: Likewise.
      	* real.c: Likewise.
      	* recog.c: Likewise.
      	* regclass.c: Likewise.
      	* regs.h: Likewise.
      	* reload.c: Likewise.
      	* rtl-error.c: Likewise.
      	* rtlanal.c: Likewise.
      	* scan.h: Likewise.
      	* sched-rgn.c: Likewise.
      	* see.c: Likewise.
      	* stmt.c: Likewise.
      	* target.h: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-alias-warnings.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-vect-analyze.c: Likewise.
      	* tree-vect-transform.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vn.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tree.def: Likewise.
      	* tree.h: Likewise.
      	* unwind-dw2-fde.c: Likewise.
      	* unwind.inc: Likewise.
      	* value-prof.c: Likewise.
      	* vmsdbgout.c: Likewise.
      
      From-SVN: r136425
      Ralf Wildenhues committed
  20. 16 Jan, 2008 1 commit
    • re PR rtl-optimization/31396 (Inline code performance much worse than out-of-line) · a03c6d64
      	PR rtl-optimization/31396
      	* regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
      	* cfg.c (dump_reg_info): Print it.
      	* regs.h (struct reg_info_t): add freq_calls_crossed.
      	(REG_FREQ_CALLS_CROSSED): New macro.
      	* global.c (global_alloc): Compute freq_calls_crossed for allocno.
      	(find_reg): Update call of CALLER_SAVE_PROFITABLE.
      	* regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
      	regmove_optimize): Update call crossed frequencies.
      	* local-alloc.c (struct qty): Add freq_calls_crossed.
      	(alloc_qty): Copute freq_calls_crossed.
      	(update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
      	(find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
      	* ra.h (struct allocno): Add freq_calls_crossed.
      
      From-SVN: r131576
      Jan Hubicka committed
  21. 26 Jul, 2007 1 commit
  22. 11 Jun, 2007 1 commit
  23. 22 May, 2007 1 commit
    • regs.h (end_hard_regno): New function. · 09e18274
      gcc/
      	* regs.h (end_hard_regno): New function.
      	(END_HARD_REGNO, END_REGNO): New macros.
      	(add_to_hard_reg_set): New function.
      	(remove_from_hard_reg_set): Likewise.
      	(in_hard_reg_set_p): Likewise.
      	(overlaps_hard_reg_set_p): Likewise.
      	* bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
      	(note_btr_set): Use END_HARD_REGNO.
      	* caller-save.c (setup_save_areas): Use end_hard_regno.
      	(mark_set_regs): Use END_HARD_REGNO.
      	(add_stored_regs): Use end_hard_regno.
      	(mark_referenced_regs): Use add_to_hard_reg_set.
      	* combine.c (update_table_tick): Use END_REGNO.
      	(record_value_for_reg): Likewise.
      	(record_dead_and_set_regs): Likewise.
      	(get_last_value_validate): Likewise.
      	(use_crosses_set_p): Likewise.
      	(reg_dead_at_p_1): Likewise.
      	(reg_dead_at_p): Likewise.
      	(mark_used_regs_combine): Use add_to_hard_reg_set.
      	(move_deaths): Use END_HARD_REGNO.
      	(reg_bitfield_target_p): Use end_hard_regno.
      	(distribute_notes): Use END_HARD_REGNO.
      	* cse.c (mention_regs): Use END_REGNO.
      	(insert): Use add_to_hard_reg_set.
      	(invalidate): Use END_HARD_REGNO.
      	(invalidate_for_call): Likewise.
      	(exp_equiv_p): Use END_REGNO.
      	(cse_insn): Likewise.
      	* cselib.c (cselib_invalidate_regno): Use end_hard_regno.
      	* df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
      	* df-scan.c (df_ref_record): Use END_HARD_REGNO.
      	* function.c (keep_stack_depressed): Use end_hard_regno.
      	* global.c (global_alloc): Use end_hard_regno.
      	(global_conflicts): Use add_to_hard_reg_set instead of
      	mark_reg_live_nc.
      	(find_reg): Likewise.
      	(mark_reg_store): Likewise.
      	(mark_reg_conflicts): Likewise.
      	(mark_reg_death): Use remove_from_hard_reg_set.
      	(mark_reg_live_nc): Delete.
      	(set_preference): Use end_hard_regno.
      	* local-alloc.c (mark_life): Use add_to_hard_reg_set and
      	remove_from_hard_reg_set.
      	(post_mark_life): Use add_to_hard_reg_set.
      	* mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
      	(reg_becomes_live): Use add_to_hard_reg_set.
      	* recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
      	(peep2_find_free_register): Use add_to_hard_reg_set.
      	* reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
      	* regclass.c (record_reg_classes): Use in_hard_reg_set_p.
      	* regrename.c (note_sets): Use add_to_hard_reg_set.
      	(clear_dead_regs): Use remove_from_hard_reg_set.
      	(regrename_optimize): Use add_to_hard_reg_set.
      	(find_oldest_value_reg): Use in_hard_reg_set_p.
      	* reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
      	(hard_reg_set_here_p): Use end_hard_regno.
      	(decompose): Likewise.
      	(reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
      	(find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
      	* reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
      	(mark_home_live): Use end_hard_regno.
      	(spill_hard_reg): Likewise.
      	(clear_reload_reg_in_use): Likewise.
      	* reorg.c (delete_prior_computation): Use END_REGNO.
      	* resource.c (update_live_status): Use END_HARD_REGNO.
      	(mark_referenced_resources): Use add_to_hard_reg_set.
      	(mark_set_resources): Likewise.
      	(mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
      	* rtlanal.c (refers_to_regno_p): Use END_REGNO.
      	(reg_overlap_mentioned_p): Likewise.
      	(dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
      	(covers_regno_no_parallel_p): Use END_REGNO.
      	(find_regno_note): Likewise.
      	(find_reg_fusage): Use END_HARD_REGNO.
      	* stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
      	* var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
      
      From-SVN: r124961
      Richard Sandiford committed
  24. 01 Feb, 2007 1 commit
    • lower-subreg.c: New file. · e53a16e7
      gcc/:
      	* lower-subreg.c: New file.
      	* rtl.def (CONCATN): Define.
      	* passes.c (init_optimization_passes): Add pass_lower_subreg and
      	pass_lower_subreg2.
      	* emit-rtl.c (update_reg_offset): New static function, broken out
      	of gen_rtx_REG_offset.
      	(gen_rtx_REG_offset): Call update_reg_offset.
      	(gen_reg_rtx_offset): New function.
      	* regclass.c: Revert patch of 2006-03-05, restoring
      	reg_scan_update.
      	(clear_reg_info_regno): New function.
      	* dwarf2out.c (concatn_loc_descriptor): New static function.
      	(loc_descriptor): Handle CONCATN.
      	* common.opt (fsplit_wide_types): New option.
      	* opts.c (decode_options): Set flag_split_wide_types when
      	optimizing.
      	* timevar.def (TV_LOWER_SUBREG): Define.
      	* rtl.h (gen_reg_rtx_offset): Declare.
      	(reg_scan_update): Declare.
      	* regs.h (clear_reg_info_regno): Declare.
      	* tree-pass.h (pass_lower_subreg): Declare.
      	(pass_lower_subreg2): Declare.
      	* doc/invoke.texi (Option Summary): List -fno-split-wide-types.
      	(Optimize Options): Add -fsplit-wide-types to -O1 list.  Document
      	-fsplit-wide-types.
      	* doc/rtl.texi (Regs and Memory): Document concat and concatn.
      	* Makefile.in (OBJS-common): Add lower-subreg.o.
      	(lower-subreg.o): New target.
      gcc/testsuite/:
      	* gcc.dg/lower-subreg-1.c (test): New test.
      
      From-SVN: r121453
      Ian Lance Taylor committed
  25. 14 Apr, 2006 1 commit
    • basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY. · 1935e8a8
      	* basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
      	* flow.c (reg_n_info): Change the type to
      	VEC(reg_info_p,heap) *.
      	* regclass.c (allocate_reg_info, free_reg_info): Use VEC
      	instead of VARRAY.
      	* regs.h (reg_info_p): New.
      	(REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
      	REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
      	REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
      	instead of VARRAY.
      
      From-SVN: r112942
      Kazu Hirata committed
  26. 22 Aug, 2005 1 commit
  27. 25 Jun, 2005 1 commit
  28. 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
  29. 09 Oct, 2004 1 commit
  30. 24 Sep, 2004 1 commit
    • re PR middle-end/17503 (quadratic behaviour in invalid_mode_change_p) · 41bf2a8b
              PR rtl-opt/17503
              * regclass.c (subregs_of_mode): Turn into an htab.  Make static.
              (som_hash, som_eq): New.
              (init_subregs_of_mode, record_subregs_of_mode): New.
              (cannot_change_mode_set_regs): Rewrite for htab implementation.
              (invalid_mode_change_p): Likewise.
              * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode.
              * flow.c (mark_used_regs): Likewise.
              (life_analysis): Use init_subregs_of_mode.
              * regs.h (subregs_of_mode): Remove.
              * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare.
      
      From-SVN: r88067
      Richard Henderson committed
  31. 22 Jul, 2004 1 commit
    • tree-cfg.c (gimplify_val): Move from tree-complex.c. · 26277d41
      2004-07-22  Paolo Bonzini  <bonzini@gnu.org>
      
      	* tree-cfg.c (gimplify_val): Move from tree-complex.c.
      	(gimplify_build1): Move from tree-complex.c do_unop.
      	(gimplify_build2): Move from tree-complex.c do_binop.
      	(gimplify_build3): New.
      	* tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
      	Adjust throughout to call the functions above.
      	* tree-flow.h: Declare the functions above.
      	* tree-nested.c (gimplify_val): Rename to...
      	(tsi_gimplify_val): ... this.
      
      	* Makefile.in (tree_complex.o): Update dependencies.
      	(stor-layout.o): Depend on regs.h.
      	* c-common.c (handle_vector_size_attribute): Update for
      	vector types without corresponding vector modes.
      	* expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
      	a corresponding vector mode is not available.
      	* print-tree.c (print_node): Print nunits for vector types
      	* regclass.c (have_regs_of_mode): New.
      	(init_reg_sets_1): Initialize it and use it instead
      	of allocatable_regs_of_mode.
      	* regs.h (have_regs_of_mode): Declare it.
      	* stor-layout.c (layout_type): Pick a mode for vector types.
      	* tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
      	build_replicated_const, do_unop, do_binop, do_plus_minus,
      	do_negate, expand_vector_piecewise, expand_vector_parallel,
      	expand_vector_addition, expand_vector_operations_1,
      	expand_vector_operations, tree_lower_operations,
      	pass_lower_vector_ssa, pass_pre_expand): New.
      	(expand_complex_operations, pass_lower_complex): Remove.
      	* tree-optimize.c (init_tree_optimization_passes): Adjust
      	pass ordering for changes in tree-complex.c.
      	* tree-pass.h: Declare new passes.
      	* tree.c (finish_vector_type): Remove.
      	(make_vector_type): New.
      	(build_vector_type_for_mode, build_vector_type): Rewritten.
      	* tree.def (VECTOR_TYPE): Document where the number of
      	subparts is stored.
      	* tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
      	(make_vector): Remove declaration.
      
      From-SVN: r85039
      Paolo Bonzini committed
  32. 13 May, 2004 1 commit
  33. 04 Feb, 2004 1 commit
    • alloc-pool.h, [...]: Update copyright. · e146f815
      	gcc/
      	* alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
      	caller-save.c, df.h, genconfig.c, global.c, lcm.c,
      	ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
      	sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
      	config/arm/fpa.md, config/arm/iwmmxt.md,
      	config/arm/netbsd-elf.h, config/arm/netbsd.h,
      	config/m68hc11/m68hc11.md, config/mips/iris5.h,
      	config/mn10300/mn10300.md, config/rs6000/altivec.md,
      	config/sparc/netbsd-elf.h: Update copyright.
      
      	cp/
      	* error.c, search.c: Update copyright.
      
      	java/
      	* typeck.c: Update copyright.
      
      From-SVN: r77265
      Kazu Hirata committed
  34. 02 Feb, 2004 1 commit
    • alias.c (record_set): Use hard_regno_nregs. · 66fd46b6
      	* alias.c (record_set): Use hard_regno_nregs.
      	* bt-load.c (find_btr_reference, note_btr_set): Likewise.
      	* builtins.c (apply_args_size): Likewise.
      	* caller-save.c (setup_save_areas, save_call_clobbered_regs,
      	mark_set_regs, add_stored_regs, mark_referenced_regs,
      	insert_restore, insert_save, insert_one_insn): Likewise.
      	* cfgcleanup.c: Include regs.h
      	(mark_effect, mentions_nonequal_regs): Likewise.
      	* cfgrtl.c (mark_killed_regs): Likewise
      	* combine.c (update_table_tick, record_value_for_reg,
      	record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
      	reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
      	reg_bitfield_target_p, distribute_notes): Likewise.
      	* cse.c (mention_regs, insert, invalidate, invalidate_for_call,
      	exp_equiv_p, cse_insn): Likewise.
      	* cselib.c (cselib_lookup): Likewise.
      	(cselib_invalidate_regno, cselib_record_set): Likewise.
      	* df.c (df_ref_record): Likewise.
      	* dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
      	Likewise.
      	* flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
      	count_or_remove_death_notes_bb): Likewise.
      	* function.c (aggregate_value_p, keep_stack_depressed): Likewise.
      	* gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
      	mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
      	* integrate.c (mark_stores): Likewise.
      	* jump.c (delete_prior_computation): Likewise.
      	* lcm.c (reg_dies, reg_becomes_live): Likewise.
      	* local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
      	* loop.c (LOOP_REGNO_NREGS): Likewise.
      	* postreload.c (reload_combine, reload_combine_note_store,
      	reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
      	* ra-colorize.c (combine, color_usable_p, get_free_reg,
      	calculate_dont_begin, calculate_dont_begin, colorize_one_web,
      	try_recolor_web, insert_coalesced_conflicts, check_colors,
      	break_precolored_alias): Likewise.
      	* ra-debug.c: Include regs.h
      	(ra_print_rtx_object): Likewise.
      	* ra-rewrite (choose_spill_colors): Likewise.
      	(spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
      	* ra.c (init_ra): Likewise.
      	* recog.c (reg_fits_class_p, peep2_reg_dead_p,
      	peep2_find_free_register): Likewise.
      	* reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
      	* regclass.c (hard_regno_nregs): New array.
      	(init_reg_modes_once): Initialize it.
      	(choose_hard_reg_mode): Use it.
      	(record_reg_classes): Likewise.
      	* regmove.c (mark_flags_life_zones): Likewise.
      	* regrename.c (note_sets, clear_dead_regs, regrename_optimize,
      	scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
      	copy_value, maybe_mode_change, find_oldest_value_reg,
      	copyprop_hardreg_forward_1):
      	* regs.h (hard_regno_nregs): Declare.
      	* realod.c (reload_inner_reg_of_subreg): Use it.
      	(push_reload, combine_reloads, find_dummy_reload,
      	hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
      	refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
      	reload_adjust_reg_for_mode): Likewise.
      	* reload1.c (compute_use_by_pseudos, count_pseudo,
      	count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
      	spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
      	clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
      	allocate_reload_reg, choose_reload_regs, emit_reload_insns,
      	delete_output_reload): Likewise.
      	* resource.c (update_live_status, mark_referenced_resources,
      	mark_set_resources, mark_target_live_regs): Likewise.
      	* rtlanal.c:  Include regs.h
      	(refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
      	dead_or_set_regno_p, find_regno_note, find_reg_fusage,
      	subreg_regno_offset, subreg_offset_representable_p,
      	hoist_test_store): Likewise.
      	* sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
      	* sched-rgn.c (check_live_1, update_live_1): Likewise.
      	* stmt.c: Include regs.h
      	(decl_conflicts_with_clobbers_p): Likewise.
      	* varasm.c (make_decl_rtl): Likewise.
      	* Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
      
      From-SVN: r77088
      Jan Hubicka committed
  35. 06 Dec, 2003 1 commit
  36. 11 Jul, 2003 1 commit
  37. 06 Jul, 2003 1 commit
    • jump.c: Convert prototypes to ISO C90. · 0c20a65f
      	* jump.c: Convert prototypes to ISO C90.
      	* langhooks-def.h: Likewise.  Add extern to prototypes.
      	* langhooks.c: Likewise.
      	* langhooks.h: Likewise.
      	* lcm.c: Likewise.
      	* local-alloc.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* loop-unswitch.c: Likewise.
      	* loop.c: Likewise.
      	* loop.h: Likewise. Add extern to prototypes.
      	* machmode.h: Likewise.
      	* main.c: Likewise.
      	* mbchar.c: Likewise.
      	* mbchar.h: Likewise.
      	* mkdeps.c: Likewise.
      	* mkdeps.h: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* output.h: Likewise.
      	* gccspec.c: Likwise.
      	* postreload.c: Likewise.
      	* prefix.c: Likewise.
      	* prefix.h: Likewise.
      	* print-rtl.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* read-rtl.c: Likewise.
      	* real.c: Likewise.
      	* real.h: Likewise.
      	* recog.c: Likewise.
      	* recog.h: Likewise.
      	* reg-stack.c: Likewise.
      	* regclass.c: Likewise.
      	* regmove.c: Likewise.
      	* regrename.c: Likewise.
      	* regs.h: Likewise.
      	* reload.c: Likewise.
      	* reload.h: Likewise.
      	* reload1.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* resource.h: Likewise.
      	* rtl-error.c: Likewise.
      	* rtl.c: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      
      From-SVN: r68998
      Andreas Jaeger committed
  38. 19 Jun, 2003 1 commit
    • c-tree.h: Remove declaration of poplevel. · e295f317
      	* c-tree.h: Remove declaration of poplevel.
      
      	* tree.h: Remove declaration of approx_sqrt.
      
      	* c-lex.c: Remove redundant declaration of asm_out_file.
      
      	* flags.h: Remove declaration of warn_unknown_pragma and
      	main_input_filename.
      
      	* rtl.h: Remove functions from fold-const.c since they're already
      	declared in tree.h.
      
      	* regs.h: Remove redundant declaration of reg_names.
      
      cp:
      
      	* cp-tree.h: Remove duplicated declarations.
      
      From-SVN: r68193
      Andreas Jaeger committed