1. 04 Jan, 2016 1 commit
  2. 27 Oct, 2015 1 commit
    • cfg.c (free_edge): Add function argument and use it instead of cfun. · 61183076
      2015-10-27  Richard Biener  <rguenther@suse.de>
      
      	* cfg.c (free_edge): Add function argument and use it instead of cfun.
      	(clear_edges): Likewise.
      	* cfg.h (clear_edges): Adjust prototype.
      	* cfgexpand.c (pass_expand::execute): Adjust.
      	* cfgloop.c (release_recorded_exits): Add function argument and use
      	it instead of cfun.
      	* cfgloop.h (release_recorded_exits): Adjust prototype.
      	(loops_state_satisfies_p): Add overload with function argument.
      	(loops_state_set): Likewise.
      	(loops_state_clear): Likewise.
      	(struct loop_iterator): Add function argument to constructor
      	and iterator and use it instead of cfun.
      	(FOR_EACH_LOOP_FN): New macro.
      	(loop_optimizer_finalize): Add overload with function argument.
      	* loop-init.c (loop_optimizer_init): Adjust.
      	(fix_loop_structure): Likewise.
      	(loop_optimizer_finaliz): Add function argument and use it
      	instead of cfun.
      	* tree-cfg.c (delete_tree_cfg_annotations): Likewise.
      	* tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
      	* cgraph.c (release_function_body): Do not push/pop cfun.
      	* final.c (rest_of_clean_state): Adjust.
      	* graphite.c (graphite_finalize): Likewise.
      	* tree-ssa-copy.c (fini_copy_prop): Likewise.
      	* tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
      	* tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
      	(tree_unroll_loops_completely): Likewise.
      	(pass_complete_unrolli::execute): Likewise.
      	* tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
      	Add function argument and use it instead of cfun.
      	* tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
      	Adjust prototype.
      	* tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
      	* tree-ssa.c (delete_tree_ssa): Add function argument and use it
      	instead of cfun.
      	* tree-ssa.h (delete_tree_ssa): Adjust prototype.
      	* tree-ssanames.c (fini_ssanames): Add function argument and use it
      	instead of cfun.
      	* tree-ssanames.c (fini_ssanames): Adjust prototype.
      	* tree-vrp.c (execute_vrp): Adjust.
      	* value-prof.c (free_histograms): Add function argument and use it
      	instead of cfun.
      	* value-prof.h (free_histograms): Adjust prototype.
      
      From-SVN: r229405
      Richard Biener committed
  3. 20 Sep, 2015 1 commit
    • switch from gimple to gimple* · 355fe088
      This renames the gimple_statement_base struct to gimple removes the
      typedef of gimple_statement_base * to gimple, and then adjusts all of
      the places that use the type.
      
      gcc/ChangeLog:
      
      2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
      
      	* coretypes.h (gimple): Change typedef to be a forward
      	declaration.
      	* gimple.h (gimple_statement_base): rename to gimple.
      	* (all functions and types using gimple): Adjust.
      	* *.[ch]: Likewise.
      
      gcc/cp/ChangeLog:
      
      2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
      
      	* cp-gimplify.c (gimplify_must_not_throw_expr): Adjust.
      
      From-SVN: r227941
      Trevor Saunders committed
  4. 05 Jan, 2015 1 commit
  5. 19 Nov, 2014 1 commit
    • Merger of git branch "gimple-classes-v2-option-3" · 538dd0b7
      gcc/ChangeLog:
      	Merger of git branch "gimple-classes-v2-option-3".
      
      	* ChangeLog.gimple-classes: New.
      
      	* coretypes.h (struct gcond): Add forward decl.
      	(struct gdebug): Likewise.
      	(struct ggoto): Likewise.
      	(struct glabel): Likewise.
      	(struct gswitch): Likewise.
      	(struct gassign): Likewise.
      	(struct gasm): Likewise.
      	(struct gcall): Likewise.
      	(struct gtransaction): Likewise.
      	(struct greturn): Likewise.
      	(struct gbind): Likewise.
      	(struct gcatch): Likewise.
      	(struct geh_filter): Likewise.
      	(struct geh_mnt): Likewise.
      	(struct geh_else): Likewise.
      	(struct gresx): Likewise.
      	(struct geh_dispatch): Likewise.
      	(struct gphi): Likewise.
      	(struct gtry): Likewise.
      	(struct gomp_atomic_load): Likewise.
      	(struct gomp_atomic_store): Likewise.
      	(struct gomp_continue): Likewise.
      	(struct gomp_critical): Likewise.
      	(struct gomp_for): Likewise.
      	(struct gomp_parallel): Likewise.
      	(struct gomp_task): Likewise.
      	(struct gomp_sections): Likewise.
      	(struct gomp_single): Likewise.
      	(struct gomp_target): Likewise.
      	(struct gomp_teams): Likewise.
      
      	* doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
      	for renaming of gimple subclasses.
      
      	* gdbhooks.py: Update.
      
      	* gimple-iterator.c (gsi_for_phi): New.
      	(gsi_start_phis): Strengthen return type from gimple_stmt_iterator
      	to gphi_iterator.
      	* gimple-iterator.h (struct gphi_iterator): New subclass of
      	gimple_stmt_iterator.
      	(gsi_for_phi): New prototype.
      	(gsi_start_phis): Strengthen return type from gimple_stmt_iterator
      	to gphi_iterator.
      	(gsi_next_nonvirtual_phi): Strengthen param from
      	gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
      	gimple to gphi *.
      
      	* gsstruct.def: Update for renamings of classes.
      
      	* gimple.c (gimple_build_return): Strengthen return type from
      	gimple to greturn *.
      	(gimple_call_reset_alias_info): Strengthen param to gcall *.
      	(gimple_build_call_1): Strengthen return type from gimple to
      	gcall *.
      	(gimple_build_call_vec): Likewise.
      	(gimple_build_call): Likewise.
      	(gimple_build_call_valist): Likewise.
      	(gimple_build_call_internal_1): Likewise.
      	(gimple_build_call_internal): Likewise.
      	(gimple_build_call_internal_vec): Likewise.
      	(gimple_build_call_from_tree): Likewise.
      	(gimple_build_assign_stat): Strengthen return type from gimple to
      	gassign *.
      	(gimple_build_assign_with_ops): Likewise.
      	(gimple_build_assign_with_ops): Likewise.
      	(gimple_build_cond): Strengthen return type from gimple to
      	gcond *.
      	(gimple_build_cond_from_tree): Likewise.
      	(gimple_cond_set_condition_from_tree): Require a gcond *.
      	(gimple_build_label): Strengthen return type from gimple to
      	glabel *.
      	(gimple_build_goto): Strengthen return type from gimple to
      	ggoto *.
      	(gimple_build_bind): Strengthen return type from gimple to
      	gbind *.
      	(gimple_build_asm_1): Strengthen return type from gimple to
      	gasm *.
      	(gimple_build_asm_vec): Likewise.
      	(gimple_build_catch): Strengthen return type from gimple to
      	gcatch *.
      	(gimple_build_eh_filter): Strengthen return type from gimple to
      	geh_filter *.
      	(gimple_build_eh_must_not_throw): Strengthen return type from
      	gimple to geh_mnt *.
      	(gimple_build_eh_else): Strengthen return type from gimple to
      	geh_else *.
      	(gimple_build_try): Update for renaming of gimple_statement_try to
      	gtry.
      	(gimple_build_resx): Strengthen return type from gimple to
      	gresx *.
      	(gimple_build_switch_nlabels): Strengthen return type from gimple
      	to gswitch *.
      	(gimple_build_switch): Likewise.
      	(gimple_build_eh_dispatch): Strengthen return type from gimple to
      	geh_dispatch *.
      	(gimple_build_debug_bind_stat): Strengthen return type from gimple
      	to gdebug *.
      	(gimple_build_debug_source_bind_stat): Strengthen return type from
      	gimple to gdebug *.
      	(gimple_build_omp_critical): Strengthen return type from gimple to
      	gomp_critical *.
      	(gimple_build_omp_for): Strengthen return type from gimple to
      	gomp_for *.
      	(gimple_build_omp_parallel): Strengthen return type from gimple to
      	gomp_parallel *.
      	(gimple_build_omp_task): Strengthen return type from gimple to
      	gomp_task *.
      	(gimple_build_omp_continue): Strengthen return type from gimple to
      	gomp_continue *.
      	(gimple_build_omp_sections): Strengthen return type from gimple to
      	gomp_sections *.
      	(gimple_build_omp_single): Strengthen return type from gimple to
      	gomp_single *.
      	(gimple_build_omp_target): Strengthen return type from gimple to
      	gomp_target *.
      	(gimple_build_omp_teams): Strengthen return type from gimple to
      	gomp_teams *.
      	(gimple_build_omp_atomic_load): Strengthen return type from gimple
      	to gomp_atomic_load *.
      	(gimple_build_omp_atomic_store): Strengthen return type from gimple
      	to gomp_atomic_store *.
      	(gimple_build_transaction): Strengthen return type from gimple
      	to gtransaction *.
      	(empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
      	(gimple_call_fnspec): Require a const gcall *.
      	(gimple_call_arg_flags): Likewise.
      	(gimple_call_return_flags): Likewise.
      	(gimple_set_bb): Add a checked cast.
      	(gimple_copy): Within the cases, add locals of the appropriate
      	subclass and use in place of "stmt" and "copy" for typesafety.
      	(gimple_has_side_effects): Add a checked cast.
      	(gimple_could_trap_p_1): Likewise.
      	(gimple_call_copy_skip_args): Require a gcall *, and return one.
      	(gimple_asm_clobbers_memory_p): Require a const gasm *.
      	(infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
      	dyn_cast, introducing local "return_stmt" and using ti in place
      	of "stmt".
      
      	* gimple.h (gimple_vec): Eliminate this typedef.
      	(struct gimple_statement_call): Rename to...
      	(struct gcall): ...this.
      	(struct gimple_statement_bind): Rename to...
      	(struct gbind): ...this.
      	(struct gimple_statement_catch): Rename to...
      	(struct gcatch): ...this.
      	(struct gimple_statement_eh_filter): Rename to...
      	(struct geh_filter): ...this.
      	(struct gimple_statement_eh_else): Rename to...
      	(struct geh_else): ...this.
      	(struct gimple_statement_eh_mnt): Rename to...
      	(struct geh_mnt): ...this.
      	(struct gimple_statement_phi): Rename to...
      	(struct gphi): ...this.
      	(struct gimple_statement_resx): Rename to...
      	(struct gresx): ...this.
      	(struct gimple_statement_eh_dispatch): Rename to...
      	(struct geh_dispatch): ...this.
      	(struct gimple_statement_try): Rename to...
      	(struct gtry): ...this.
      	(struct gimple_statement_asm): Rename to...
      	(struct gasm): ...this.
      	(struct gimple_statement_omp_critical): Rename to...
      	(struct gomp_critical): ...this.
      	(struct gimple_statement_omp_for): Rename to...
      	(struct gomp_for): ...this.
      	(struct gimple_statement_omp_parallel): Rename to...
      	(struct gomp_parallel): ...this.
      	(struct gimple_statement_omp_target): Rename to...
      	(struct gomp_target): ...this.
      	(struct gimple_statement_omp_task): Rename to...
      	(struct gomp_task): ...this.
      	(struct gimple_statement_omp_sections): Rename to...
      	(struct gomp_sections): ...this.
      	(struct gimple_statement_omp_continue): Rename to...
      	(struct gomp_continue): ...this.
      	(struct gimple_statement_omp_single): Rename to...
      	(struct gomp_single): ...this.
      	(struct gimple_statement_omp_teams): Rename to...
      	(struct gomp_teams): ...this.
      	(struct gimple_statement_omp_atomic_load): Rename to...
      	(struct gomp_atomic_load): ...this.
      	(struct gimple_statement_omp_atomic_store :): Rename to...
      	(struct gomp_atomic_store :): ...this.
      	(struct gimple_statement_transaction): Rename to...
      	(struct gtransaction): ...this.
      	(struct gcond): New subclass.
      	(struct gdebug): New subclass.
      	(struct ggoto): New subclass.
      	(struct glabel): New subclass.
      	(struct gswitch): New subclass.
      	(struct gassign): New subclass.
      	(struct greturn): New subclass.
      	(is_a_helper <gimple_statement_asm *>::test): Rename to...
      	(is_a_helper <gasm *>::test): ...this.
      	(is_a_helper <gimple_statement_bind *>::test): Rename to...
      	(is_a_helper <gbind *>::test): ...this.
      	(is_a_helper <gassign *>::test): New.
      	(is_a_helper <gimple_statement_call *>::test): Rename to...
      	(is_a_helper <gcall *>::test): ...this.
      	(is_a_helper <gimple_statement_catch *>::test): Rename to...
      	(is_a_helper <gcatch *>::test): ...this.
      	(is_a_helper <gimple_statement_resx *>::test): Rename to...
      	(is_a_helper <gresx *>::test): ...this.
      	(is_a_helper <gcond *>::test): New.
      	(is_a_helper <gdebug *>::test): New.
      	(is_a_helper <ggoto *>::test): New.
      	(is_a_helper <glabel *>::test): New.
      	(is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
      	(is_a_helper <geh_dispatch *>::test): ...this.
      	(is_a_helper <gimple_statement_eh_else *>::test): Rename to...
      	(is_a_helper <geh_else *>::test): ...this.
      	(is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
      	(is_a_helper <geh_filter *>::test): ...this.
      	(is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
      	(is_a_helper <geh_mnt *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
      	(is_a_helper <gomp_atomic_load *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
      	(is_a_helper <gomp_atomic_store *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
      	(is_a_helper <gomp_continue *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
      	(is_a_helper <gomp_critical *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_for *>::test): Rename to...
      	(is_a_helper <gomp_for *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
      	(is_a_helper <gomp_parallel *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_target *>::test): Rename to...
      	(is_a_helper <gomp_target *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
      	(is_a_helper <gomp_sections *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_single *>::test): Rename to...
      	(is_a_helper <gomp_single *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
      	(is_a_helper <gomp_teams *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_task *>::test): Rename to...
      	(is_a_helper <gomp_task *>::test): ...this.
      	(is_a_helper <gimple_statement_phi *>::test): Rename to...
      	(is_a_helper <gphi *>::test): ...this.
      	(is_a_helper <gimple_statement_transaction *>::test): Rename to...
      	(is_a_helper <gtransaction *>::test): ...this.
      	(is_a_helper <greturn *>::test): New.
      	(is_a_helper <gswitch *>::test): New.
      	(is_a_helper <gimple_statement_try *>::test): Rename to...
      	(is_a_helper <gtry *>::test): ...this.
      	(is_a_helper <const gimple_statement_asm *>::test): Rename to...
      	(is_a_helper <const gasm *>::test): ...this.
      	(is_a_helper <const gimple_statement_bind *>::test): Rename to...
      	(is_a_helper <const gbind *>::test): ...this.
      	(is_a_helper <const gimple_statement_call *>::test): Rename to...
      	(is_a_helper <const gcall *>::test): ...this.
      	(is_a_helper <const gimple_statement_catch *>::test): Rename to...
      	(is_a_helper <const gcatch *>::test): ...this.
      	(is_a_helper <const gimple_statement_resx *>::test): Rename to...
      	(is_a_helper <const gresx *>::test): ...this.
      	(is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
      	(is_a_helper <const geh_dispatch *>::test): ...this.
      	(is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
      	(is_a_helper <const geh_filter *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_atomic_load *>::test):
      	Rename to...
      	(is_a_helper <const gomp_atomic_load *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_atomic_store *>::test):
      	Rename to...
      	(is_a_helper <const gomp_atomic_store *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_continue *>::test):
      	Rename to...
      	(is_a_helper <const gomp_continue *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_critical *>::test):
      	Rename to...
      	(is_a_helper <const gomp_critical *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
      	(is_a_helper <const gomp_for *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_parallel *>::test):
      	Rename to...
      	(is_a_helper <const gomp_parallel *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
      	(is_a_helper <const gomp_target *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_sections *>::test):
      	Rename to...
      	(is_a_helper <const gomp_sections *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
      	(is_a_helper <const gomp_single *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
      	(is_a_helper <const gomp_teams *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
      	(is_a_helper <const gomp_task *>::test): ...this.
      	(is_a_helper <const gimple_statement_phi *>::test): Rename to...
      	(is_a_helper <const gphi *>::test): ...this.
      	(is_a_helper <const gimple_statement_transaction *>::test): Rename to...
      	(is_a_helper <const gtransaction *>::test): ...this.
      	(gimple_build_return): Strengthen return type to greturn *.
      	(gimple_call_reset_alias_info): Require a gcall *.
      	(gimple_build_call_vec): Return a gcall *.
      	(gimple_build_call): Likewise.
      	(gimple_build_call_valist): Likewise.
      	(gimple_build_call_internal): Likewise.
      	(gimple_build_call_internal_vec): Likewise.
      	(gimple_build_call_from_tree): Likewise.
      	(gimple_build_assign_stat): Return a gassign *.
      	(gimple_build_assign_with_ops): Likewise.
      	(gimple_build_cond): Return a gcond *.
      	(gimple_build_cond_from_tree): Likewise.
      	(gimple_cond_set_condition_from_tree): Require a gcond *.
      	(gimple_build_label): Return a glabel *.
      	(gimple_build_goto): Return a ggoto *.
      	(gimple_build_bind): Return a gbind *.
      	(gimple_build_asm_vec): Return a gasm *.
      	(gimple_build_catch): Return a gcatch *.
      	(gimple_build_eh_filter): Return a geh_filter *.
      	(gimple_build_eh_must_not_throw): Return a geh_mnt *.
      	(gimple_build_eh_else): Return a geh_else *.
      	(gimple_build_try): Return a gtry *.
      	(gimple_build_resx): Return a gresx *.
      	(gimple_build_switch_nlabels): Return a gswitch *.
      	(gimple_build_switch): Return a gswitch *.
      	(gimple_build_eh_dispatch): Return a geh_dispatch *.
      	(gimple_build_debug_bind_stat): Return a gdebug *.
      	(gimple_build_debug_source_bind_stat): Return a gdebug *.
      	(gimple_build_omp_critical): Return a gomp_critical *.
      	(gimple_build_omp_for): Return a gomp_for *.
      	(gimple_build_omp_parallel): Return a gomp_parallel *.
      	(gimple_build_omp_task): Return a gomp_task *.
      	(gimple_build_omp_continue): Return a gomp_continue *.
      	(gimple_build_omp_sections): Return a gomp_sections *.
      	(gimple_build_omp_single): Return a gomp_single *.
      	(gimple_build_omp_target): Return a gomp_target *.
      	(gimple_build_omp_teams): Return a gomp_teams *.
      	(gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
      	(gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
      	(gimple_build_transaction): Return a gtransaction *.
      	(gimple_call_arg_flags): Require a const gcall *.
      	(gimple_call_return_flags): Likewise.
      	(gimple_call_copy_skip_args): Require and return a gcall *.
      	(gimple_asm_clobbers_memory_p): Require a const gasm *.
      	(gimple_seq_first_stmt_as_a_bind): New.
      	(gimple_assign_nontemporal_move_p): Require a const gassign *
      	rather than a const_gimple.
      	(gimple_call_internal_fn): Update for renaming to gcall.
      	(gimple_call_fntype): Likewise.
      	(gimple_call_set_fntype): Require a gcall * rather than a gimple.
      	(gimple_call_set_fn): Likewise.
      	(gimple_call_set_internal_fn): Likewise.
      	(gimple_call_set_chain): Likewise.
      	(gimple_call_set_tail): Likewise.
      	(gimple_call_tail_p): Likewise.
      	(gimple_call_set_return_slot_opt): Likewise.
      	(gimple_call_return_slot_opt_p): Likewise.
      	(gimple_call_set_from_thunk): Likewise.
      	(gimple_call_from_thunk_p): Likewise.
      	(gimple_call_set_va_arg_pack): Likewise.
      	(gimple_call_va_arg_pack_p): Likewise.
      	(gimple_call_set_nothrow): Likewise.
      	(gimple_call_nothrow_p): Likewise.
      	(gimple_call_set_alloca_for_var): Likewise.
      	(gimple_call_alloca_for_var_p): Likewise.
      	(gimple_call_use_set): Likewise.
      	(gimple_call_clobber_set): Likewise.
      	(gimple_call_return_type): Require a const gcall * rather than a
      	const_gimple.
      	(gimple_call_chain_ptr): Likewise.
      	(gimple_call_copy_flags): Require a pair of gcall *.
      	(gimple_cond_set_code): Require a gcond * rather than a gimple
      	(gimple_cond_set_lhs): Likewise.
      	(gimple_cond_set_rhs): Likewise.
      	(gimple_cond_set_true_label): Likewise.
      	(gimple_cond_set_false_label): Likewise.
      	(gimple_cond_make_false): Likewise.
      	(gimple_cond_make_true): Likewise.
      	(gimple_cond_lhs_ptr): Require a const gcond * rather than a
      	const_gimple.
      	(gimple_cond_rhs_ptr): Likewise.
      	(gimple_cond_true_label): Likewise.
      	(gimple_cond_false_label): Likewise.
      	(gimple_cond_true_p): Likewise.
      	(gimple_cond_false_p): Likewise.
      	(gimple_cond_set_condition): Likewise.
      	(gimple_label_label): Require a const glabel *.
      	(gimple_label_set_label): Require a glabel *.
      	(gimple_goto_set_dest): Require a ggoto *.
      	(gimple_bind_vars): Require a const gbind *.
      	(gimple_bind_block): Likewise.
      	(gimple_bind_set_vars): Require a gbind *.
      	(gimple_bind_append_vars): Likewise.
      	(gimple_bind_body_ptr): Likewise.
      	(gimple_bind_body): Likewise.
      	(gimple_bind_set_body): Likewise.
      	(gimple_bind_add_stmt): Likewise.
      	(gimple_bind_add_seq): Likewise.
      	(gimple_bind_set_block): Likewise.
      	(gimple_asm_ninputs): Require a const gasm *.
      	(gimple_asm_noutputs): Likewise.
      	(gimple_asm_nclobbers): Likewise.
      	(gimple_asm_nlabels): Likewise.
      	(gimple_asm_input_op): Likewise.
      	(gimple_asm_input_op_ptr): Likewise.
      	(gimple_asm_output_op): Likewise.
      	(gimple_asm_output_op_ptr): Likewise.
      	(gimple_asm_clobber_op): Likewise.
      	(gimple_asm_label_op): Likewise.
      	(gimple_asm_string): Likewise.
      	(gimple_asm_volatile_p): Likewise.
      	(gimple_asm_input_p): Likewise.
      	(gimple_asm_set_input_op): Require a gasm *.
      	(gimple_asm_set_output_op): Likewise.
      	(gimple_asm_set_clobber_op): Likewise.
      	(gimple_asm_set_label_op): Likewise.
      	(gimple_asm_set_volatile): Likewise.
      	(gimple_asm_set_input): Likewise.
      	(gimple_catch_types): Require a const gcatch *.
      	(gimple_catch_types_ptr): Require a gcatch *.
      	(gimple_catch_handler_ptr): Likewise.
      	(gimple_catch_handler): Likewise.
      	(gimple_catch_set_types): Likewise.
      	(gimple_catch_set_handler): Likewise.
      	(gimple_eh_filter_types): Update for renaming of subclass to
      	geh_filter.
      	(gimple_eh_filter_types_ptr): Likewise.
      	(gimple_eh_filter_failure_ptr): Likewise.
      	(gimple_eh_filter_set_types): Require a geh_filter *.
      	(gimple_eh_filter_set_failure): Likewise.
      	(gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
      	(gimple_eh_must_not_throw_set_fndecl): Likewise.
      	(gimple_eh_else_n_body_ptr): Require a geh_else *.
      	(gimple_eh_else_n_body): Likewise.
      	(gimple_eh_else_e_body_ptr): Likewise.
      	(gimple_eh_else_e_body): Likewise.
      	(gimple_eh_else_set_n_body): Likewise.
      	(gimple_eh_else_set_e_body): Likewise.
      	(gimple_try_set_kind): Require a gtry *.
      	(gimple_try_set_catch_is_cleanup): Likewise.
      	(gimple_try_set_eval): Likewise.
      	(gimple_try_set_cleanup): Likewise.
      	(gimple_try_eval_ptr): Update for renaming of subclass to gtry.
      	(gimple_try_cleanup_ptr): Likewise.
      	(gimple_phi_capacity): Update for renaming of subclass to gphi.
      	(gimple_phi_num_args): Likewise.
      	(gimple_phi_result): Likewise.
      	(gimple_phi_result_ptr): Likewise.
      	(gimple_phi_arg): Likewise.
      	(gimple_phi_set_result): Require a gphi *.
      	(gimple_phi_set_arg): Likewise.
      	(gimple_phi_arg_def_ptr): Likewise.
      	(gimple_phi_arg_edge): Likewise.
      	(gimple_phi_arg_location): Likewise.
      	(gimple_phi_arg_location_from_edge): Likewise.
      	(gimple_phi_arg_set_location): Likewise.
      	(gimple_phi_arg_has_location): Likewise.
      	(gimple_resx_region): Require a const gresx *.
      	(gimple_resx_set_region): Require a gresx *.
      	(gimple_eh_dispatch_region): Require a const geh_dispatch *.
      	(gimple_eh_dispatch_set_region): Require a geh_dispatch *.
      	(gimple_switch_num_labels): Require a const gswitch *.
      	(gimple_switch_set_num_labels): Likewise.
      	(gimple_switch_index): Likewise.
      	(gimple_switch_index_ptr): Likewise.
      	(gimple_switch_label): Likewise.
      	(gimple_switch_default_label): Likewise.
      	(gimple_switch_set_index): Require a gswitch *.
      	(gimple_switch_set_label): Likewise.
      	(gimple_switch_set_default_label): Likewise.
      	(gimple_omp_critical_name): Require a const gomp_critical *.
      	(gimple_omp_critical_name_ptr): Require a gomp_critical *.
      	(gimple_omp_critical_set_name): Likewise.
      	(gimple_omp_for_set_kind): Require a gomp_for *.
      	(gimple_omp_for_set_combined_p): Likewise.
      	(gimple_omp_for_set_combined_into_p): Likewise.
      	(gimple_omp_for_clauses): Update for renaming of subclass to
      	gomp_for.
      	(gimple_omp_for_clauses_ptr): Likewise.
      	(gimple_omp_for_set_clauses): Likewise.
      	(gimple_omp_for_collapse): Likewise.
      	(gimple_omp_for_index): Likewise.
      	(gimple_omp_for_index_ptr): Likewise.
      	(gimple_omp_for_set_index): Likewise.
      	(gimple_omp_for_initial): Likewise.
      	(gimple_omp_for_initial_ptr): Likewise.
      	(gimple_omp_for_set_initial): Likewise.
      	(gimple_omp_for_final): Likewise.
      	(gimple_omp_for_final_ptr): Likewise.
      	(gimple_omp_for_set_final): Likewise.
      	(gimple_omp_for_incr): Likewise.
      	(gimple_omp_for_incr_ptr): Likewise.
      	(gimple_omp_for_set_incr): Likewise.
      	(gimple_omp_for_pre_body): Likewise.
      	(gimple_omp_for_set_pre_body): Likewise.
      	(gimple_omp_parallel_clauses): Update for renaming of subclass to
      	gomp_parallel.
      	(gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
      	(gimple_omp_parallel_set_clauses): Likewise.
      	(gimple_omp_parallel_child_fn_ptr): Likewise.
      	(gimple_omp_parallel_set_child_fn): Likewise.
      	(gimple_omp_parallel_data_arg_ptr): Likewise.
      	(gimple_omp_parallel_set_data_arg): Likewise.
      	(gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
      	(gimple_omp_parallel_data_arg): Likewise.
      	(gimple_omp_task_clauses): Update for renaming of subclass to
      	gomp_task.
      	(gimple_omp_task_clauses_ptr): Likewise.
      	(gimple_omp_task_set_clauses): Likewise.
      	(gimple_omp_task_child_fn): Likewise.
      	(gimple_omp_task_child_fn_ptr): Likewise.
      	(gimple_omp_task_set_child_fn): Likewise.
      	(gimple_omp_task_data_arg): Likewise.
      	(gimple_omp_task_data_arg_ptr): Likewise.
      	(gimple_omp_task_set_data_arg): Likewise.
      	(gimple_omp_taskreg_clauses): Whitespace fixes.
      	(gimple_omp_taskreg_clauses_ptr): Likewise.
      	(gimple_omp_taskreg_set_clauses): Likewise.
      	(gimple_omp_taskreg_child_fn): Likewise.
      	(gimple_omp_taskreg_child_fn_ptr): Likewise.
      	(gimple_omp_taskreg_set_child_fn): Likewise.
      	(gimple_omp_taskreg_data_arg): Likewise.
      	(gimple_omp_taskreg_data_arg_ptr): Likewise.
      	(gimple_omp_taskreg_set_data_arg): Likewise.
      	(gimple_omp_task_copy_fn): Update for renaming of subclass to
      	gomp_task.
      	(gimple_omp_task_copy_fn_ptr): Likewise.
      	(gimple_omp_task_set_copy_fn): Likewise.
      	(gimple_omp_task_arg_size): Likewise.
      	(gimple_omp_task_arg_size_ptr): Likewise.
      	(gimple_omp_task_set_arg_size): Likewise.
      	(gimple_omp_task_arg_align): Likewise.
      	(gimple_omp_task_arg_align_ptr): Likewise.
      	(gimple_omp_task_set_arg_align): Likewise.
      	(gimple_omp_single_clauses): Update for renaming of subclass to
      	gomp_single.
      	(gimple_omp_single_clauses_ptr): Likewise.
      	(gimple_omp_single_set_clauses): Likewise.
      	(gimple_omp_target_clauses): Update for renaming of subclass to
      	gomp_target.
      	(gimple_omp_target_clauses_ptr): Likewise.
      	(gimple_omp_target_set_clauses): Require a gomp_target *.
      	(gimple_omp_target_set_kind): Likewise.
      	(gimple_omp_target_child_fn_ptr): Likewise.
      	(gimple_omp_target_set_child_fn): Likewise.
      	(gimple_omp_target_data_arg_ptr): Likewise.
      	(gimple_omp_target_set_data_arg): Likewise.
      	(gimple_omp_target_child_fn): Require a const gomp_target *.
      	(gimple_omp_target_data_arg): Likewise.
      	(gimple_omp_teams_clauses): Update for renaming of subclass to
      	gomp_teams.
      	(gimple_omp_teams_clauses_ptr): Likewise.
      	(gimple_omp_teams_set_clauses): Require a gomp_teams *.
      	(gimple_omp_sections_clauses): Update for renaming of subclass to
      	gomp_sections.
      	(gimple_omp_sections_clauses_ptr): Likewise.
      	(gimple_omp_sections_set_clauses): Likewise.
      	(gimple_omp_sections_control): Likewise.
      	(gimple_omp_sections_control_ptr): Likewise.
      	(gimple_omp_sections_set_control): Likewise.
      	(gimple_omp_for_set_cond): Likewise.
      	(gimple_omp_for_cond): Likewise.
      	(gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
      	(gimple_omp_atomic_store_val_ptr): Likewise.
      	(gimple_omp_atomic_load_set_lhs): Likewise.
      	(gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
      	(gimple_omp_atomic_load_lhs): Likewise.
      	(gimple_omp_atomic_load_rhs): Likewise.
      	(gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
      	(gimple_omp_atomic_load_set_rhs): Likewise.
      	(gimple_omp_atomic_load_rhs_ptr): Likewise.
      	(gimple_omp_continue_control_def): Require a const gomp_continue *.
      	(gimple_omp_continue_control_use): Likewise.
      	(gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
      	(gimple_omp_continue_set_control_def): Likewise.
      	(gimple_omp_continue_control_use_ptr): Likewise.
      	(gimple_omp_continue_set_control_use): Likewise.
      	(gimple_transaction_body_ptr): Require a gtransaction *.
      	(gimple_transaction_body): Likewise.
      	(gimple_transaction_label_ptr): Likewise.
      	(gimple_transaction_label): Require a const gtransaction *.
      	(gimple_transaction_subcode): Likewise.
      	(gimple_transaction_set_body): Require a gtransaction *.
      	(gimple_transaction_set_label): Likewise.
      	(gimple_transaction_set_subcode): Likewise.
      	(gimple_return_retval_ptr): Require a const greturn *.
      	(gimple_return_retval): Likewise.
      	(gimple_return_set_retval): Require a greturn *.
      	(gimple_expr_type): Introduce local "call_stmt" and use in place of
      	"stmt" for typesafety.
      
      	* asan.c: Use gimple subclasses.
      	* auto-profile.c: Likewise.
      	* builtins.c: Likewise.
      	* builtins.h: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* expr.h: Likewise.
      	* gimple-builder.c: Likewise.
      	* gimple-builder.h: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple-ssa-isolate-paths.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimple-streamer-in.c: Likewise.
      	* gimple-streamer-out.c: Likewise.
      	* gimple-walk.c: Likewise.
      	* gimplify-me.c: Likewise.
      	* gimplify.c: Likewise.
      	* gimplify.h: Likewise.
      	* graphite-scop-detection.c: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* internal-fn.c: Likewise.
      	* internal-fn.def:: Likewise.
      	* internal-fn.h: Likewise.
      	* ipa-icf-gimple.c: Likewise.
      	* ipa-icf-gimple.h: Likewise.
      	* ipa-icf.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-split.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* omp-low.c: Likewise.
      	* predict.c: Likewise.
      	* sanopt.c: Likewise.
      	* sese.c: Likewise.
      	* ssa-iterators.h: Likewise.
      	* stmt.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfg.h: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chkp.c: Likewise.
      	* tree-chkp.h: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-eh.h: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-inline.h: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-into-ssa.h: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-phinodes.h: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-scalar-evolution.h
      	* tree-sra.cn_function):
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-alias.h: 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-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.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-math-opts.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-propagate.h: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sccvn.h: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-strlen.c
      	* tree-ssa-structalias.c
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadedge.h: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-stdarg.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.h: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* ubsan.c: Likewise.
      	* value-prof.c: Likewise.
      	* value-prof.h: Likewise.
      	* vtable-verify.c: Likewise.
      
      gcc/c-family/ChangeLog:
      	Merger of git branch "gimple-classes-v2-option-3".
      	* ChangeLog.gimple-classes: New.
      	* c-gimplify.c (add_block_to_enclosing): Strengthen local "stack"
      	from being just a vec<gimple> to a vec<gbind *>.
      
      gcc/java/ChangeLog:
      	Merger of git branch "gimple-classes-v2-option-3".
      	* ChangeLog.gimple-classes: New.
      	* java-gimplify.c (java_gimplify_block): Strengthen local "outer"
      	from gimple to gbind *.
      
      From-SVN: r217787
      David Malcolm committed
  6. 21 Oct, 2014 1 commit
    • Add AutoFDO. · be3c16c4
      gcc/ChangeLog:
      
      2014-10-21  Dehao Chen  <dehao@google.com>
      
      	* auto-profile.c: New file.
      	* auto-profile.h: New file.
      	* basic-block.h (maybe_hot_count_p): New export func.
      	(add_working_set): New export func.
      	* gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
      	(GCOV_TAG_AFDO_FUNCTION): Likewise.
      	(GCOV_TAG_AFDO_WORKING_SET): Likewise.
      	* opts.c (enable_fdo_optimizations): New func.
      	(common_handle_option): Handle -fauto-profile flag.
      	* ipa-inline.c (want_early_inline_function_p): Iterative-einline.
      	(class pass_early_inline): Export early_inliner.
      	(early_inliner): Likewise.
      	(pass_early_inline::execute): Likewise.
      	* ipa-inline.h (early_inliner): Likewise.
      	* predict.c (maybe_hot_count_p): New export func.
      	(counts_to_freqs): AutoFDO logic.
      	(rebuild_frequencies): Likewise.
      	* tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
      	* profile.c (add_working_set): New func.
      	* Makefile.in (auto-profile.o): New object file.
      	* passes.def (pass_ipa_auto_profile): New pass.
      	* tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
      	* tree-pass.h (make_pass_ipa_auto_profile): New pass.
      	* toplev.c (compile_file): AutoFDO logic.
      	* doc/invoke.texi (-fauto-profile): New doc.
      	* coverage.c (coverage_init): AutoFDO logic.
      	* common.opt (-fauto-profile): New flag.
      	* timevar.def (TV_IPA_AUTOFDO): New tag.
      	* value-prof.c (gimple_alloc_histogram_value): New export func.
      	(check_ic_target): Likewise.
      	* value-prof.h (gimple_alloc_histogram_value): Likewise.
      	(check_ic_target): Likewise.
      
      From-SVN: r216523
      Dehao Chen committed
  7. 07 Oct, 2014 1 commit
    • params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param. · 0a750165
      2014-10-06  Rong Xu  <xur@google.com>
      
      	* gcc/params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
      	* gcc/tree-profile.c: (params.h): New include.
              (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
              and __gcov_indirect_call_topn_counters for
              indirect_call_topn_profile.
      	(gimple_init_edge_profiler): New decls for 
              __gcov_indirect_call_topn_profiler.
      	(gimple_gen_ic_profiler): Generate the correct profiler call.
      	(gimple_gen_ic_func_profiler): Fix format.
      	* gcc/value-prof.c (params.h): New include.
              (dump_histogram_value): Hanlde indirect_call_topn counters.
      	(stream_in_histogram_value): Ditto.
      	(gimple_indirect_call_to_profile): Use indirect_call_topn
              profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
      	(gimple_find_values_to_profile): Hanlde indirect_call_topn
              counters.
      	* gcc/value-prof.h (enum hist_type): Histrogram type for
              indirect_call_topn counters.
      	* gcc/profile.c (instrument_values): Instrument
              indirect_call_topn counters.
      
      From-SVN: r215963
      Rong Xu committed
  8. 02 Jan, 2014 1 commit
  9. 11 Nov, 2013 1 commit
  10. 09 Aug, 2013 2 commits
    • cgraph.h (cgraph_node): Add profile_id. · 2fa3d31b
      	* cgraph.h (cgraph_node): Add profile_id.
      	* value-prof.c (cgraph_node_map): Turn into pointer_map.
      	(init_node_map): Rewrite to handle hashes increas of incremental
      	IDs.
      	(del_node_map): Update.
      	(find_func_by_funcdef_no): Replace by ...
      	(find_func_by_profile_id): ... this one.
      	(gimple_ic_transform): Do not remove useful histograms when
      	speculation is not done; dump info when indirect call removal
      	can happen at LTO.
      	* value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
      	* gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
      	(__gcov_indirect_call_profiler_v2): .. this one.
      	* profile.h (init_node_map): Update.
      	* coverage.c (coverage_compute_profile_id): New function.
      	* coverage.h (coverage_compute_profile_id): Declare.
      	* tree-profile.c (init_ic_make_global_vars): Make
      	__gcov_indirect_call_callee and  __gcov_indirect_call_counters global.
      	(gimple_init_edge_profiler): Update prototype of
      	__gcov_indirect_call_profiler.
      	(gimple_gen_ic_func_profiler): Simplify.
      	(tree_profiling): Use init_node_map
      
      From-SVN: r201634
      Jan Hubicka committed
    • cgraphbuild.c (cgraph_rebuild_references): Rebuild only non-speculative refs. · 042ae7d2
      	* cgraphbuild.c (cgraph_rebuild_references): Rebuild only non-speculative
      	refs.
      	* cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
      	(cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
      	(cgraph_set_call_stmt): Likewise.
      	(cgraph_create_edge_1): Fix release checking compilatoin;
      	clear lto_stmt_uid.
      	(cgraph_free_edge): Free indirect info.
      	(cgraph_turn_edge_to_speculative): New function.
      	(cgraph_speculative_call_info): New function.
      	(cgraph_make_edge_direct): Return direct edge; handle speculation.
      	(cgraph_redirect_edge_call_stmt_to_callee): Expand speculative
      	edges.
      	(dump_cgraph_node): Dump speculation.
      	(verify_edge_count_and_frequency): Accept speculative edges.
      	(verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
      	(verify_cgraph_node): Handle speculation.
      	* cgraph.h (cgraph_edge): Add SPECULATIVE flag.
      	(cgraph_set_call_stmt): Update prototype.
      	(cgraph_make_edge_direct): Update prototype.
      	(cgraph_speculative_call_info): Declare.
      	* ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
      	to change; update call of ipa_find_references.
      	* ipa-ref.c (ipa_record_reference): Fix return value; clear
      	lto_stmt_uid and speculative flags.
      	(ipa_dump_references): Dump speculation.
      	(ipa_clone_references): Clone speculative flag.
      	(ipa_clone_referring): Likewise.
      	(ipa_clone_ref): New function.
      	(ipa_find_reference): Look into lto_stmt_uids
      	(ipa_clear_stmts_in_references): Do not clear speculative calls.
      	* ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
      	(ipa_find_reference): Update declaration.
      	(ipa_clone_ref): Declare.
      	* lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
      	stream speculative flag.
      	(lto_output_ref): Stream statements uids and speculation.
      	(input_ref): Likewise.
      	(input_edge): Stream speuclation.
      	* cgraphclones.c (cgraph_clone_edge): Clone speculation.
      	(cgraph_set_call_stmt_including_clones): Handle speculation.
      	* ipa-inline.c (heap_edge_removal_hook): New function.
      	(inline_small_functions): Register it.
      	* lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
      	also initialize refs.
      	* ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
      	edge to change.
      	(try_make_edge_direct_simple_call): Likewise.
      	(try_make_edge_direct_simple_call): Likewise.
      	(update_indirect_edges_after_inlining): Likewise.
      	(remove_described_reference): Look proper lto_stmt_uid.
      	(propagate_controlled_uses): Likewise.
      	(propagate_controlled_uses): Liekwise.
      	* tree-inline.c (copy_bb): Copy speculative edges.
      	(redirect_all_calls): New function.
      	(copy_cfg_body): Do redirection after loop info
      	is updated.
      	(delete_unreachable_blocks_update_callgraph): Updadte
      	speculation.
      
      From-SVN: r201632
      Jan Hubicka committed
  11. 28 Mar, 2013 1 commit
    • data-streamer-in.c (streamer_read_gcov_count): New function. · 89ab31c1
      	* data-streamer-in.c (streamer_read_gcov_count): New function.
      	* gimple-streamer-out.c: Include value-prof.h.
      	(output_gimple_stmt): Output histogram.
      	(output_bb): Use streamer_write_gcov_count.
      	* value-prof.c: Include data-streamer.h
      	(dump_histogram_value): Add HIST_TYPE_MAX.
      	(stream_out_histogram_value): New function.
      	(stream_in_histogram_value): New function.
      	* value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
      	(stream_out_histogram_value, stream_in_histogram_value): Declare.
      	* data-streamer-out.c (streamer_write_gcov_count): New function.
      	(streamer_write_gcov_count_stream): New function.
      	* lto-cgraph.c (lto_output_edge): Update counter streaming.
      	(lto_output_node): Likewise.
      	(input_node, input_edge): Likewise.
      	* lto-streamer-out.c (output_cfg): Update streaming.
      	* lto-streamer-in.c (input_cfg): Likewise.
      	* data-streamer.h (streamer_write_gcov_count,
      	streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
      	* gimple-streamer-in.c: Include value-prof.h
      	(input_gimple_stmt): Input histograms.
      	(input_bb): Update profile streaming.
      
      From-SVN: r197205
      Jan Hubicka committed
  12. 10 Jan, 2013 1 commit
  13. 04 Jan, 2013 1 commit
  14. 18 Nov, 2012 1 commit
    • This patch rewrites the old VEC macro-based interface into a new one based on… · 9771b263
      This patch rewrites the old VEC macro-based interface into a new one based on the template class 'vec'.
      
      This patch rewrites the old VEC macro-based interface into a new one
      based on the template class 'vec'.  The user-visible changes are
      described in http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec.
      
      I have tested the patch pretty extensively:
      
      - Regular bootstraps on x86_64, ppc, ia64, sparc and hppa.
      - Bootstraps with --enable-checking=release
      - Bootstraps with --enable-checking=gc,gcac
      - Basic builds on all targets (using contrib/config-list.mk).
      
      We no longer access the vectors via VEC_* macros.  The pattern is
      "VEC_operation (T, A, V, args)" becomes "V.operation (args)".
      
      The only thing I could not do is create proper ctors and dtors for the
      vec class.  Since these vectors are stored in unions, we
      have to keep them as PODs (C++03 does not allow non-PODs in unions).
      
      This means that creation and destruction must be explicit.  There is a
      new method vec<type, allocation, layout>::create() and another vec<type,
      allocation, layout>::destroy() to allocate the internal vector.
      
      For vectors that must be pointers, there is a family of free functions
      that implement the operations that need to tolerate NULL vectors.
      These functions all start with the prefix 'vec_safe_'.  See the wiki
      page for details.
      
      The gengtype change removes the special handling for VEC() that used
      to exist in gengtype. Additionally, it allows gengtype to recognize
      templates of more than one argument and introduces the concept of an
      undefined type (useful for template arguments that may or may not be
      types).
      
      When a TYPE_UNDEFINED is reached, gengtype will ignore it if it
      happens inside a type marked with GTY((user)).  Otherwise, it will
      emit an error.
      
      Finally, gengtype rejects root types marked GTY((user)) that are not
      first class pointers.
      
      2012-11-16  Diego Novillo  <dnovillo@google.com>
      
      	VEC API overhaul (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
      
      	* vec.c (register_overhead): Convert it into
      	member function of vec_prefix.
      	(release_overhead): Likewise.
      	(calculate_allocation): Likewise.
      	(vec_heap_free): Remove.
      	(vec_gc_o_reserve_1): Remove.
      	(vec_heap_o_reserve_1): Remove.
      	(vec_stack_o_reserve_1): Remove.
      	(vec_stack_o_reserve_exact): Remove.
      	(register_stack_vec): New.
      	(stack_vec_register_index): New.
      	(unregister_stack_vec): New.
      	(vec_assert_fail): Remove.
      	* vec.h: Conditionally include ggc.h.  Document conditional
      	hackery.
      	Update top-level documentation.
      	(ALONE_VEC_CHECK_INFO): Remove.
      	(VEC_CHECK_INFO): Remove.
      	(ALONE_VEC_CHECK_DECL): Remove.
      	(VEC_CHECK_DECL): Remove.
      	(ALONE_VEC_CHECK_PASS): Remove.
      	(VEC_CHECK_PASS): Remove.
      	(VEC_ASSERT): Remove.
      	(vec_prefix): Add friends va_gc, va_gc_atomic, va_heap and
      	va_stack.
      	Mark fields alloc_ and num_ as protected.
      	(struct vec_t): Remove.  Remove all function members.
      	(struct vl_embed): Declare.
      	(struct vl_ptr): Declare.
      	(free): Remove.
      	(reserve_exact): Remove.
      	(reserve): Remove.
      	(safe_splice): Remove.
      	(safe_push): Remove.
      	(safe_grow): Remove.
      	(safe_grow_cleared): Remove.
      	(safe_insert): Remove.
      	(DEF_VEC_I): Remove.
      	(DEF_VEC_ALLOC_I): Remove.
      	(DEF_VEC_P): Remove.
      	(DEF_VEC_ALLOC_P): Remove.
      	(DEF_VEC_O): Remove.
      	(DEF_VEC_ALLOC_O): Remove.
      	(DEF_VEC_ALLOC_P_STACK): Remove.
      	(DEF_VEC_ALLOC_O_STACK): Remove.
      	(DEF_VEC_ALLOC_I_STACK): Remove.
      	(DEF_VEC_A): Remove.
      	(DEF_VEC_ALLOC_A): Remove.
      	(vec_stack_p_reserve_exact_1): Remove.
      	(vec_stack_o_reserve): Remove.
      	(vec_stack_o_reserve_exact): Remove.
      	(VEC_length): Remove.
      	(VEC_empty): Remove.
      	(VEC_address): Remove.
      	(vec_address): Remove.
      	(VEC_last): Remove.
      	(VEC_index): Remove.
      	(VEC_iterate): Remove.
      	(VEC_embedded_size): Remove.
      	(VEC_embedded_init): Remove.
      	(VEC_free): Remove.
      	(VEC_copy): Remove.
      	(VEC_space): Remove.
      	(VEC_reserve): Remove.
      	(VEC_reserve_exact): Remove.
      	(VEC_splice): Remove.
      	(VEC_safe_splice): Remove.
      	(VEC_quick_push): Remove.
      	(VEC_safe_push): Remove.
      	(VEC_pop): Remove.
      	(VEC_truncate): Remove.
      	(VEC_safe_grow): Remove.
      	(VEC_replace): Remove.
      	(VEC_quick_insert): Remove.
      	(VEC_safe_insert): Remove.
      	(VEC_ordered_remove): Remove.
      	(VEC_unordered_remove): Remove.
      	(VEC_block_remove): Remove.
      	(VEC_lower_bound): Remove.
      	(VEC_alloc): Remove.
      	(VEC_qsort): Remove.
      
      	(va_heap): Declare.
      	(va_heap::default_layout): New typedef to vl_ptr.
      	(va_heap::reserve): New.
      	(va_heap::release): New.
      	(va_gc): Declare.
      	(va_gc::default_layout): New typedef to vl_embed.
      	(va_gc::reserve): New.
      	(va_gc::release): New.
      	(va_gc_atomic): Declare.  Inherit from va_gc.
      	(va_stack): Declare.
      	(va_stack::default_layout): New typedef to vl_ptr.
      	(va_stack::alloc): New.
      	(va_stack::reserve): New.
      	(va_stack::release): New.
      	(register_stack_vec): Declare.
      	(stack_vec_register_index): Declare.
      	(unregister_stack_vec): Declare.
      
      	(vec<T, A = va_heap, L = typename A::default_layout>): Declare
      	empty vec template.
      	(vec<T, A, vl_embed>): Partial specialization for embedded
      	layout.
      	(vec<T, A, vl_embed>::allocated): New.
      	(vec<T, A, vl_embed>::length): New.
      	(vec<T, A, vl_embed>::is_empty): New.
      	(vec<T, A, vl_embed>::address): New.
      	(vec<T, A, vl_embed>::operator[]): New.
      	(vec<T, A, vl_embed>::last New.
      	(vec<T, A, vl_embed>::space): New.
      	(vec<T, A, vl_embed>::iterate): New.
      	(vec<T, A, vl_embed>::iterate): New.
      	(vec<T, A, vl_embed>::copy): New.
      	(vec<T, A, vl_embed>::splice): New.
      	(vec<T, A, vl_embed>::quick_push New.
      	(vec<T, A, vl_embed>::pop New.
      	(vec<T, A, vl_embed>::truncate): New.
      	(vec<T, A, vl_embed>::quick_insert): New.
      	(vec<T, A, vl_embed>::ordered_remove): New.
      	(vec<T, A, vl_embed>::unordered_remove): New.
      	(vec<T, A, vl_embed>::block_remove): New.
      	(vec<T, A, vl_embed>::qsort): New.
      	(vec<T, A, vl_embed>::lower_bound): New.
      	(vec<T, A, vl_embed>::embedded_size): New.
      	(vec<T, A, vl_embed>::embedded_init): New.
      	(vec<T, A, vl_embed>::quick_grow): New.
      	(vec<T, A, vl_embed>::quick_grow_cleared): New.
      	(vec_safe_space): New.
      	(vec_safe_length): New.
      	(vec_safe_address): New.
      	(vec_safe_is_empty): New.
      	(vec_safe_reserve): New.
      	(vec_safe_reserve_exact): New.
      	(vec_alloc): New.
      	(vec_free): New.
      	(vec_safe_grow): New.
      	(vec_safe_grow_cleared): New.
      	(vec_safe_iterate): New.
      	(vec_safe_push): New.
      	(vec_safe_insert): New.
      	(vec_safe_truncate): New.
      	(vec_safe_copy): New.
      	(vec_safe_splice): New.
      
      	(vec<T, A, vl_ptr>): New partial specialization for the space
      	efficient layout.
      	(vec<T, A, vl_ptr>::exists): New.
      	(vec<T, A, vl_ptr>::is_empty): New.
      	(vec<T, A, vl_ptr>::length): New.
      	(vec<T, A, vl_ptr>::address): New.
      	(vec<T, A, vl_ptr>::operator[]): New.
      	(vec<T, A, vl_ptr>::operator!=): New.
      	(vec<T, A, vl_ptr>::operator==): New.
      	(vec<T, A, vl_ptr>::last): New.
      	(vec<T, A, vl_ptr>::space): New.
      	(vec<T, A, vl_ptr>::iterate): New.
      	(vec<T, A, vl_ptr>::copy): New.
      	(vec<T, A, vl_ptr>::reserve): New.
      	(vec<T, A, vl_ptr>::reserve_exact): New.
      	(vec<T, A, vl_ptr>::splice): New.
      	(vec<T, A, vl_ptr>::safe_splice): New.
      	(vec<T, A, vl_ptr>::quick_push): New.
      	(vec<T, A, vl_ptr>::safe_push): New.
      	(vec<T, A, vl_ptr>::pop): New.
      	(vec<T, A, vl_ptr>::truncate): New.
      	(vec<T, A, vl_ptr>::safe_grow): New.
      	(vec<T, A, vl_ptr>::safe_grow_cleared): New.
      	(vec<T, A, vl_ptr>::quick_grow): New.
      	(vec<T, A, vl_ptr>::quick_grow_cleared): New.
      	(vec<T, A, vl_ptr>::quick_insert): New.
      	(vec<T, A, vl_ptr>::safe_insert): New.
      	(vec<T, A, vl_ptr>::ordered_remove): New.
      	(vec<T, A, vl_ptr>::unordered_remove): New.
      	(vec<T, A, vl_ptr>::block_remove): New.
      	(vec<T, A, vl_ptr>::qsort): New.
      	(vec<T, A, vl_ptr>::lower_bound): New.
      	(vec_stack_alloc): Define.
      	(FOR_EACH_VEC_SAFE_ELT): Define.
      	* vecir.h: Remove.  Update all users.
      	* vecprim.h: Remove.  Update all users.
      	Move uchar to coretypes.h.
      
      	* Makefile.in (VEC_H): Add $(GGC_H).
      	Remove vecir.h and vecprim.h dependencies everywhere.
      
      2012-11-16  Diego Novillo  <dnovillo@google.com>
      
      	* gengtype-lex.l (VEC): Remove.
      	Add characters in the set [\!\>\.-].
      	* gengtype-parse.c (token_names): Remove "VEC".
      	(require_template_declaration): Remove handling of VEC_TOKEN.
      	(type): Likewise.
      	Call create_user_defined_type when parsing GTY((user)).
      	* gengtype-state.c (type_lineloc): handle TYPE_UNDEFINED.
      	(write_state_undefined_type): New.
      	(write_state_type): Call write_state_undefined_type for
      	TYPE_UNDEFINED.
      	(read_state_type): Call read_state_undefined_type for
      	TYPE_UNDEFINED.
      	* gengtype.c (dbgprint_count_type_at): Handle TYPE_UNDEFINED.
      	(create_user_defined_type): Make extern.
      	(type_for_name): Factor out of resolve_typedef.
      	(create_undefined_type): New
      	(resolve_typedef): Call it when we cannot find a previous
      	typedef and the type is not a template.
      	(find_structure): Accept TYPE_UNDEFINED.
      	(set_gc_used_type): Add argument ALLOWED_UNDEFINED_TYPES,
      	default to false.
      	Emit an error for TYPE_UNDEFINED unless LEVEL is GC_UNUSED or
      	ALLOWED_UNDEFINED_TYPES is set.
      	Set ALLOWED_UNDEFINED_TYPES to true for TYPE_USER_STRUCT.
      	(filter_type_name): Accept templates with more than one
      	argument.
      	(output_mangled_typename): Handle TYPE_UNDEFINED
      	(walk_type): Likewise.
      	(write_types_process_field): Likewise.
      	(write_func_for_structure): If CHAIN_NEXT is set, ORIG_S
      	should not be a user-defined type.
      	(write_types_local_user_process_field): Handle TYPE_ARRAY,
      	TYPE_NONE and TYPE_UNDEFINED.
      	(write_types_local_process_field): Likewise.
      	(contains_scalar_p): Return 0 for TYPE_USER_STRUCT.
      	(write_root): Reject user-defined types that are not pointers.
      	Handle TYPE_NONE, TYPE_UNDEFINED, TYPE_UNION, TYPE_LANG_STRUCT
      	and TYPE_PARAM_STRUCT.
      	(output_typename): Handle TYPE_NONE, TYPE_UNDEFINED, and
      	TYPE_ARRAY.
      	(dump_typekind): Handle TYPE_UNDEFINED.
      	* gengtype.h (enum typekind): Add TYPE_UNDEFINED.
      	(create_user_defined_type): Declare.
      	(enum gty_token): Remove VEC_TOKEN.
      
      2012-11-16  Diego Novillo  <dnovillo@google.com>
      
      	Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
      
      	* coretypes.h (uchar): Define.
      	* alias.c: Use new vec API in vec.h.
      	* asan.c: Likewise.
      	* attribs.c: Likewise.
      	* basic-block.h: Likewise.
      	* bb-reorder.c: Likewise.
      	* builtins.c: Likewise.
      	* calls.c: Likewise.
      	* cfg.c: Likewise.
      	* cfganal.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfghooks.h: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloop.h: Likewise.
      	* cfgloopanal.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* combine.c: Likewise.
      	* compare-elim.c: Likewise.
      	* coverage.c: Likewise.
      	* cprop.c: Likewise.
      	* data-streamer.h: Likewise.
      	* dbxout.c: Likewise.
      	* dce.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* domwalk.h: Likewise.
      	* dse.c: Likewise.
      	* dwarf2cfi.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* dwarf2out.h: Likewise.
      	* emit-rtl.c: Likewise.
      	* except.c: Likewise.
      	* except.h: Likewise.
      	* expr.c: Likewise.
      	* expr.h: Likewise.
      	* final.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* fwprop.c: Likewise.
      	* gcc.c: Likewise.
      	* gcse.c: Likewise.
      	* genattr.c: Likewise.
      	* genattrtab.c: Likewise.
      	* genautomata.c: Likewise.
      	* genextract.c: Likewise.
      	* genopinit.c: Likewise
      	* ggc-common.c: Likewise.
      	* ggc.h: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimple-streamer-in.c: Likewise.
      	* gimple.c: Likewise.
      	* gimple.h: Likewise.
      	* gimplify.c: Likewise.
      	* graph.c: Likewise.
      	* graphds.c: Likewise.
      	* graphds.h: Likewise.
      	* graphite-blocking.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* graphite-dependences.c: Likewise.
      	* graphite-interchange.c: Likewise.
      	* graphite-optimize-isl.c: Likewise.
      	* graphite-poly.c: Likewise.
      	* graphite-poly.h: Likewise.
      	* graphite-scop-detection.c: Likewise.
      	* graphite-scop-detection.h: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* graphite.c: Likewise.
      	* godump.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* hw-doloop.c: Likewise.
      	* hw-doloop.h: Likewise.
      	* ifcvt.c: Likewise.
      	* insn-addr.h: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-inline-transform.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-inline.h: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-ref-inline.h: Likewise.
      	* ipa-ref.c: Likewise.
      	* ipa-ref.h: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa-utils.h: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-emit.c: Likewise.
      	* ira-int.h: Likewise.
      	* ira.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lra-lives.c: Likewise.
      	* lra.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.h: Likewise.
      	* lto-symtab.c: Likewise.
      	* mcf.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* omp-low.c: Likewise.
      	* opts-common.c: Likewise.
      	* opts-global.c: Likewise.
      	* opts.c: Likewise.
      	* opts.h: Likewise.
      	* passes.c: Likewise.
      	* predict.c: Likewise.
      	* print-tree.c: Likewise.
      	* profile.c: Likewise.
      	* profile.h: Likewise.
      	* read-rtl.c: Likewise.
      	* ree.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regrename.c: Likewise.
      	* regrename.h: Likewise.
      	* reload.c: Likewise.
      	* reload.h: Likewise.
      	* reload1.c: Likewise.
      	* rtl.h: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-int.h: Likewise.
      	* sdbout.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched-ir.h: Likewise.
      	* sel-sched.c: Likewise.
      	* sese.c: Likewise.
      	* sese.h: Likewise.
      	* statistics.h: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* tlink.c: Likewise.
      	* toplev.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-browser.c: 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-diagnostic.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-flow.h: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-inline.h: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-iterator.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-mudflap.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.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-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-math-opts.c: Likewise.
      	* tree-ssa-operands.c: 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-sccvn.h: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* tree-streamer.c: Likewise.
      	* tree-streamer.h: Likewise.
      	* tree-switch-conversion.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.h: Likewise.
      	* value-prof.c: Likewise.
      	* value-prof.h: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* vmsdbgout.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/c6x/c6x.c: Likewise.
      	* config/darwin.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/rs6000/rs6000-c.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/rx/rx.c: Likewise.
      	* config/spu/spu-c.c: Likewise.
      	* config/vms/vms.c: Likewise.
      	* config/vxworks.c: Likewise.
      	* config/epiphany/resolve-sw-modes.c: Likewise.
      
      From-SVN: r193595
      Diego Novillo committed
  15. 03 Jan, 2011 1 commit
  16. 21 Dec, 2010 1 commit
    • value-prof.c (value_prof_hooks): Remove. · e0cb7e1e
      	* value-prof.c (value_prof_hooks): Remove.
      	(struct value_prof_hooks): Remove.
      	(gimple_value_prof_hooks): Remove.
      	(gimple_register_value_prof_hooks): Remove.
      	(find_values_to_profile): Remove.
      	(value_profile_transformations): Remove.
      	(gimple_value_profile_transformations): No longer static.
      	(gimple_find_values_to_profile): Likewise.
      	* value-prof.h (gimple_register_value_prof_hooks): Remove prototype.
      	(find_values_to_profile): Likewise.
      	(value_profile_transformations): Likewise.
      	(tree_register_profile_hooks): Likewise.
      	(struct profile_hooks): Remove.
      	(tree_profile_hooks): Remove.
      	(gimple_find_values_to_profile): New protoype.
      	(gimple_value_profile_transformations): Likewise.
      	(gimple_init_edge_profiler): Likewise.
      	(gimple_gen_edge_profiler): Likewise.
      	(gimple_gen_interval_profiler): Likewise.
      	(gimple_gen_pow2_profiler): Likewise.
      	(gimple_gen_one_value_profiler): Likewise.
      	(gimple_gen_ic_profiler): Likewise.
      	(gimple_gen_ic_func_profiler): Likewise.
      	(gimple_gen_const_delta_profiler): Likewise.
      	(gimple_gen_average_profiler): Likewise.
      	(gimple_gen_ior_profiler): Likewise.
      	* profile.c (profile_hooks): Remove.
      	(instrument_edges): Call profiling functions directly instead
      	of through removed profile_hooks.
      	(instrument_values): Likewise.
      	(branch_prob): Call gimple_find_values_to_profile instead of
      	removed find_values_to_profile.
      	Call gimple_init_edge_profiler instead of removed hook.
      	(tree_register_profile_hooks): Remove.
      	* tree-profile.c (tree_init_ic_make_global_vars): Rename to
      	init_ic_make_global_vars.
      	(tree_init_edge_profiler): Rename to gimple_init_edge_profiler
      	and no longer static.
      	(tree_gen_edge_profiler, tree_gen_interval_profiler,
      	tree_gen_pow2_profiler, tree_gen_one_value_profiler,
      	tree_gen_ic_profiler, tree_gen_ic_func_profiler,
      	tree_gen_const_delta_profiler, tree_gen_average_profiler,
      	tree_gen_ior_profiler): Similarly renamed and no longer static.
      	(tree_profiling): Do not initialize tree profiling hooks.
      	(tree_profile_hooks): Remove.
      
      From-SVN: r168141
      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. 20 Feb, 2009 1 commit
  19. 28 Jul, 2008 1 commit
    • backport: ChangeLog.tuples: ChangeLog from gimple-tuples-branch. · 726a989a
      2008-07-28  Richard Guenther  <rguenther@suse.de>
      
      	Merge from gimple-tuples-branch.
      
      	* ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
      	* gimple.def: New file.
      	* gsstruct.def: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* tree-gimple.c: Removed.  Merged into ...
      	* gimple.c: ... here.  New file.
      	* tree-gimple.h: Removed.  Merged into ...
      	* gimple.h: ... here.  New file.
      
      	* Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
      	* configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
      	--enable-checking=gimple flag.
      	* config.in: Likewise.
      	* configure: Regenerated.
      
      	* tree-ssa-operands.h: Tuplified.
      	* tree-vrp.c: Likewise.
      	* tree-loop-linear.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-complex.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tracer.c: Likewise.
      	* gengtype.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* value-prof.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* value-prof.h: Likewise.
      	* tree.c: Likewise.
      	* tree.h: Likewise.
      	* tree-pass.h: Likewise.
      	* ipa-cp.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-scalar-evolution.h: Likewise.
      	* target.h: Likewise.
      	* lambda-mat.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* diagnostic.h: Likewise.
      	* builtins.c: Likewise.
      	* tree-ssa-alias-warnings.c: Likewise.
      	* cfghooks.c: Likewise.
      	* fold-const.c: Likewise.
      	* cfghooks.h: Likewise.
      	* omp-low.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* toplev.c: Likewise.
      	* tree-gimple.c: Likewise.
      	* tree-gimple.h: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-chrec.h: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sccvn.h: Likewise.
      	* cgraphunit.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* c-format.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* tree-ssa-propagate.h: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* gimple-low.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* c-semantics.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* expr.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* predict.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* matrix-reorg.c: Likewise.
      	* c-decl.c: Likewise.
      	* tree-eh.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* lambda-trans.c: Likewise.
      	* function.c: Likewise.
      	* langhooks.c: Likewise.
      	* ebitmap.h: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* function.h: Likewise.
      	* langhooks.h: Likewise.
      	* tree-vectorizer.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa-type-escape.h: Likewise.
      	* domwalk.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* profile.c: Likewise.
      	* domwalk.h: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-data-ref.h: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-vect-analyze.c: Likewise.
      	* c-typeck.c: Likewise.
      	* gimplify.c: Likewise.
      	* coretypes.h: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* calls.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree.def: Likewise.
      	* tree-dfa.c: Likewise.
      	* except.c: Likewise.
      	* except.h: Likewise.
      	* cfgexpand.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-predcom.c: Likewise.
      	* lambda.h: Likewise.
      	* tree-mudflap.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* print-tree.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* ggc-page.c: Likewise.
      	* c-omp.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* lambda-code.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-inline.h: Likewise.
      	* tree-iterator.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-vect-transform.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* cfgloop.c: Likewise.
      	* system.h: Likewise.
      	* tree-profile.c: Likewise.
      	* cfgloop.h: Likewise.
      	* c-gimplify.c: Likewise.
      	* c-common.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-flow.h: Likewise.
      	* c-common.h: Likewise.
      	* basic-block.h: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-ssa-structalias.h: Likewise.
      	* tree-cfg.c: Likewise.
      	* passes.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* varpool.c: Likewise.
      	* stmt.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* langhooks-def.h: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/m32c/m32c-protos.h: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/mips/mips.c: Likewise.
      
      From-SVN: r138207
      Richard Biener committed
  20. 28 May, 2008 1 commit
  21. 21 Aug, 2007 1 commit
  22. 26 Jul, 2007 1 commit
  23. 25 Jul, 2007 1 commit
    • c-lex.c (c_lex_with_flags, lex_string): Constify. · 5f754896
      	* c-lex.c (c_lex_with_flags, lex_string): Constify.
      	* c-ppoutput.c (print_line, pp_dir_change): Likewise.
      	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
      	* cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
      	* cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
      	* ddg.c (compare_sccs): Likewise.
      	* df-scan.c (df_ref_compare, df_mw_compare): Likewise.
      	* dfp.c (decimal_real_from_string, decimal_to_decnumber,
      	decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
      	decimal_do_fix_trunc, decimal_real_to_integer,
      	decimal_real_to_integer2, decimal_real_maxval): Likewise.
      	* dse.c (const_group_info_t): New.
      	(invariant_group_base_eq, invariant_group_base_hash): Constify.
      	* dwarf2out.c (const_dw_die_ref): New.
      	(decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
      	* tree-browser.c (TB_parent_eq): Likewise.
      	* unwind-dw2-fde.c (__register_frame_info_bases,
      	__deregister_frame_info_bases, fde_unencoded_compare, fde_split,
      	add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
      	Likewise.
      	* unwind-dw2-fde.h (get_cie, next_fde): Likewise.
      	* unwind-dw2.c (uw_frame_state_for): Likewise.
      	* value-prof.c (histogram_hash, histogram_eq): Likewise.
      	* value-prof.h (const_histogram_value): New.
      
      From-SVN: r126920
      Kaveh R. Ghazi committed
  24. 28 Jan, 2007 1 commit
    • expr.c (emit_block_move_via_movmem, [...]): Add variant handling histograms; add wrapper. · 079a182e
      	* expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall): Add
      	variant handling histograms; add wrapper.
      	(clear_storage_via_libcall): Export.
      	(emit_block_move_hints): Break out from ...; add histograms.
      	(emit_block_move): ... this one.
      	(clear_storage_hints): Break out from ...; add histograms.
      	(clear_storage): ... this one.
      	(set_storage_via_memset): Handle histogram.
      	* expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
      	(clear_storage_hints, clear_storage_via_libcall): Declare.
      	(set_storage_via_setmem): Update prototype.
      	* doc/md.texi (movmem, setmem): Document new arguments.
      
      	* value-prof.c (dump_histogram_value, tree_find_values_to_profile): Add
      	new histograms.
      	(stringop_block_profile): New global function.
      	(tree_stringops_values_to_profile): Profile block size and alignment.
      	* value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
      	HIST_TYPE_IOR.
      	(struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
      	(stringop_block_profile): Declare.
      	* builtins.c: Include value-prof.h.
      	(expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
      	* gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
      	(GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
      	(GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
      	* profile.c (instrument_values): Add new counters.
      	* cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
      	calls.
      	* tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
      	(tree_init_edge_profiler): Build new profilers.
      	(tree_gen_average_profiler, tree_gen_ior_profiler): New.
      	(pass_tree_profile): Add dump.
      	(tree_profile_hooks): Update.
      	* Makefile.in (LIBGCOV): Add new constants.
      	* libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
      	__gcov_ior_profiler): New.
      	* i386.md (movmem/setmem expanders): Add new optional arguments.
      
      From-SVN: r121270
      Jan Hubicka committed
  25. 19 Jan, 2007 1 commit
    • Patch by Tomas Bily <tbily@suse.cz> · 6bad2617
      Patch by Tomas Bily  <tbily@suse.cz>
              * cgraphunit.c (cgraph_finalize_function): Updating of pid
              * tree-profile.c:
              (tree_init_ic_make_global_vars): New function
              (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
              (tree_gen_ic_profiler): New function
              (tree_gen_ic_func_profiler): New function
              (tree_profiling): Added calling of tree_gen_ic_func_profiler
              (tree_profile_hooks): Added hook for indirec/virtual calls
              * value-prof.c (tree_find_values_to_profile): New case for
              indirect calls
              (tree_values_to_profile): Call for determining indirect/virtual
              counters
              (tree_indirect_call_to_profile): New function
              (tree_ic_transform): New function
              (tree_ic): New function
              (find_func_by_pid): New function
              (init_pid_map): New function
              (tree_value_profile_transformations): Added check for
              indirect/virtual call transformation
              * value-prof.h (enum hist_type): New counter type for
              indirect/virtual calls
              (profile_hooks): Added new hook for profiling indirect/virtual
              calls
              * profile.c (instrument_values): New case for indirect/virtual
              call added
              * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
              (GCOV_COUNTER_V_INDIR): New counter type
              (GCOV_COUNTER_NAMES): New name of counter "indirect" added
              (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
              call added
              * cgraph.c: Definition of cgraph_max_pid
              (cgraph_create_node): Default init of pid attribute
              * cgraph.h: Declaration of cgraph_max_pid
              (struct cgraph_node): Added pid attribute
              * libgcov.c (__gcov_indirect_call_profiler): New function
      	(__gcov_one_value_profiler_body): New function
      	(__gcov_one_value_profiler): Body was moved to
      	__gcov_one_value_profiler_body and calls it
      
      	gcc.dg/tree-prof/indir-call-prof.c: New.
      	g++.dg/dg.exp: Add tree-prof subdirectory.
      	g++.dg/tree-prof/indir-call-prof.C: New.
      	g++.dg/tree-prof/tree-prof.exp: New.
      
      From-SVN: r120975
      Tomas Bily committed
  26. 13 Dec, 2006 1 commit
    • Makefile.in: Add dependencies. · 6946b3f7
      	
      	* Makefile.in: Add dependencies.
      	* tree-pretty-print.c: Include value-prof.h
      	(dump_generic_bb_buff): Dump histograms
      	* value-prof.c: Include pointer-set.h
      	(gimple_alloc_histogram_value, histogram_hash, histogram_eq,
      	set_histogram_value, gimple_histogram_value,
      	gimple_add_histogram_value, gimple_remove_histogram_value,
      	gimple_histogram_value_of_type, dump_histogram_value,
      	dump_histograms_for_stmt, gimple_remove_stmt_histograms,
      	gimple_duplicate_stmt_histograms, visit_hist,
      	verify_histograms): New functions.
      	(tree_value_profile_transformations): Update for new histogram API.
      	(tree_divmod_fixed_value): Update for new histogram API.
      	(tree_divmod_fixed_value_transform): Update for new histogram API.
      	(tree_mod_pow2): Update for new histogram API.
      	(tree_mod_pow2_value_transform): Update for new histogram API.
      	(tree_mod_subtract): Update for new histogram API.
      	(tree_mod_subtract_transform): Update for new histogram API.
      	(tree_stringops_transform): Update for new histogram API.
      	(tree_divmod_values_to_profile): Update for new histogram API.
      	(tree_stringops_values_to_profile): Update for new histogram API.
      	(tree_find_values_to_profile): Update for new histogram API.
      	* value-prof.h (gimple_histogram_value): Declare.
      	(gimple_histogram_value_of_type): Declare.
      	(gimple_add_histogram_value): Declare.
      	(gimple_remove_histogram_value): Declare.
      	(dump_histograms_for_stmt): Declare.
      	(gimple_remove_histogram_value): Declare.
      	(gimple_remove_stmt_histograms): Declare.
      	(gimple_duplicate_stmt_histograms): Declare.
      	(verify_histograms): Declare.
      	* function.h
      	(struct funrction): Add value_histograms hash.
      	(VALUE_HISTOGRAMS): New macro.
      	* profile.c (compute_value_histograms): update for new API.
      	* tree-inline.c: Include value-prof.h
      	(copy_bb): Update histograms.
      	* tree-flow.h (struct stmt_ann_d): Do not contain pointer to histograms;
      	reorder to get smaller memory layout.
      	* tree-cfg.c: Include value-prof.h
      	(bsi_remove): Update histograms.
      	(bsi_replace): Update histograms.
      	(verify_stmts): Call histogram verifier.
      	(tree_duplicate_bb): Update histograms.
      	(move_block_to_fn): Update histograms.
      
      From-SVN: r119829
      Jan Hubicka committed
  27. 06 Feb, 2006 1 commit
    • tree-vrp.c (execute_vrp): Do not pass dump argument to. · 10d22567
      	* tree-vrp.c (execute_vrp): Do not pass dump argument to.
      	loop_optimizer_init and loop_optimizer_finalize
      	* tree-ssa-sink.c (execute_sink_code): Ditto.
      	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
      	* tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
      	tree_ssa_loop_done): Ditto.
      	* tree-ssa-pre.c (init_pre, fini_pre): Ditto.
      	* sched-ebb.c: Include output.h.
      	(schedule_ebbs): Do not use dump argument.
      	* value-prof.h (struct profile_hooks): Remove profile_dump_file.
      	* loop.c (loop_dump_stream): Removed.
      	(loop_optimize, rest_of_handle_loop_optimize): Do not use dump
      	argument.
      	(scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
      	emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
      	final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
      	loop_iterations, strength_reduce, record_biv, record_giv,
      	final_giv_value, check_final_value, check_ext_dependent_givs,
      	combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
      	try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
      	dump_file instead of loop_dump_stream.
      	* ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
      	argument dump_file.
      	* reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
      	dump argument.
      	* flow.c (life_analysis, rest_of_handle_life): Ditto.
      	* haifa-sched.c: Include output.h
      	(schedule_insns, sched_init): Do not use dump argument.
      	* mode-switching.c (optimize_mode_switching): Ditto.
      	* modulo-sched.c (stats_file): Removed.
      	(print_node_sched_params): Do not call argument dump_file.
      	(sms_schedule_by_order, loop_canon_p, sms_schedule,
      	rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
      	of stats_file.
      	* cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
      	use dump argument.
      	* loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
      	rtl_loop_init, rtl_loop_done): Ditto.
      	* global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
      	* predict.c (combine_predictions_for_bb, tree_estimate_probability):
      	Ditto.
      	* recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
      	* lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
      	* regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
      	rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
      	* emit-rtl.c (renumber_insns): Ditto.
      	* cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
      	expand_gimple_basic_block, tree_expand_cfg): Ditto.
      	* regclass.c (regclass): Ditto.
      	* tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
      	remove_ssa_form, rewrite_out_of_ssa): Ditto.
      	* reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
      	convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
      	Ditto.
      	* sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
      	* local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
      	to regclass.
      	* gcse.c (gcse_file, debug_stderr): Removed.
      	(gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
      	rest_of_handle_gcse): Do not use dump argument.
      	(cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
      	one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
      	pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
      	compute_code_hoist_vbeinout, compute_code_hoist_data,
      	one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
      	compute_store_table, build_store_vectors, insert_insn_start_bb,
      	insert_store, remove_reachable_equiv_notes, replace_store_insn,
      	store_motion): Use dump_file instead of gcse_file.
      	* ipa-type-escape.c (type_escape_execute): Remove debugging comments.
      	* profile.c (profile_dump_file): Removed.
      	(branch_prob): Use dump_file instead of profile_dump_file.
      	* ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
      	dump_file.
      	* tree-ssa-copy.c (dump_copy_of): Ditto.
      	* rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
      	dump file to life_analysis.
      	* bt-load.c (branch_target_load_optimize): Ditto.
      	* cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
      	renumber_insns.
      	* rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
      	regclass, dbr_schedule): Declaration changed.
      	* sched-int.h (sched_init): Declaration changed.
      	* tree-profile.c (tree_profile_dump_file): Removed.
      	(tree_profile_hooks): Removed profile_dump_file hook.
      	* rtl-profile (rtl_profile_dump_file): Removed.
      	(rtl_profile_hooks): emoved profile_dump_file hook.
      	* cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
      	changed.
      	* c-gimplify.c (c_genericize): Do not call local variable dump_file.
      	* tree-cfg.c (build_tree_cfg): Ditto.
      	* Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
      	* basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
      	Declaration changed.
      	* config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
      	life_analysis and schedule_insns.
      	* config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
      	life_analysis.
      	* config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
      	dbr_schedule.
      	* config/mips/mips.c (mips_reorg): Ditto.
      	* config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
      	schedule_ebbs.
      
      From-SVN: r110656
      Zdenek Dvorak committed
  28. 28 Jul, 2005 1 commit
    • Makefile.in (rtl-profile.o): Kill all traces of it. · 8a76829c
      	* Makefile.in (rtl-profile.o): Kill all traces of it.
      	* common.opt (fspeculative-prefetching, ftree-based-profiling): Kill.
      	* coverage.h (rtl_coverage_counter_ref): Kill.
      	* opts.c (flag_speculative_prefetching_set): Kill.
      	(flag_loop_optimize_set): New.
      	(common_handle_option): Disable loop optimizer when profiling;
      	do not handle speculative prefetching.
      	* passes.c (init_optimization_passes): Replace pass_profiling combo
      	by branch_prob pass.
      	* profile.c (compute_value_histograms): Update for simplified value
      	profiles.
      	(rtl_register_profile_hooks): Kill.
      	(pass_profiling): Kill.
      	(rest_of_handle_branch_prob): Do not profile.
      	* toplev.c (process_options): Remove speculative prefetching.
      	* toplev.h (flag_tree_based_profiling): Kill.
      	* tree-profile.c (prepare_instrumented_value,
      	tree_gen_interval_profiler, tree_gen_pow2_profiler,
      	tree_gen_one_value_profiler, do_tree_profiling): Update for
      	simplified datastructures.
      	* value-prof.c: Add comment that speculative prefetching was dropped;
      	update rest of file for simplified datastructures.
      	(NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX,
      	rtl_divmod_values_to_profile, insn_prefetch_values_to_profile,
      	find_mem_reference_1, find_mem_reference_2, find_mem_reference,
      	rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2,
      	rtl_mod_subtract, gen_speculative_prefetch,
      	rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform,
      	rtl_mod_subtract_transform, speculative_prefetching_transform): Kill.
      	(gate_handle_value_profile_transformations,
      	rest_of_handle_value_profile_transformations,
      	pass_value_profile_transformations): Kill.
      	* value-prof.h (histogram_value_t): Remove IL based unions.
      	(rtl_register_value_prof_hooks, rtl_register_profile_hooks,
      	rtl_profile_hooks): Remove hooks.
      
      	* invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill.
      
      	* inliner-1.c: Do not dump everything.
      	* tree-prof.exp: Do not pass -ftree-based-profiling.
      	* bprob.exp: Likewise.
      
      From-SVN: r102522
      Jan Hubicka committed
  29. 25 Jun, 2005 1 commit
  30. 22 Apr, 2005 1 commit
    • Makefile.in (LIBGCOV): Add _gcov_interval_profiler, _gcov_pow2_profiler and… · 9885da8e
      Makefile.in (LIBGCOV): Add _gcov_interval_profiler, _gcov_pow2_profiler and _gcov_one_value_profiler.
      
      	* Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
      	_gcov_pow2_profiler and _gcov_one_value_profiler.
      	(tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
      	(GTFILES): Add $(srcdir)/tree-profile.c.
      	* gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
      	__gcov_one_value_profiler): Declare.
      	* gimplify.c (force_gimple_operand): Check whether the statements
      	should be produced in ssa form.
      	(force_gimple_operand_bsi): New function.
      	* libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
      	__gcov_one_value_profiler): New functions.
      	* rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
      	the profiled value is a power of two or not.
      	* tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
      	* tree-flow.h (in_ssa_p): Declare.
      	(force_gimple_operand_bsi): Declare.
      	* tree-into-ssa.c (in_ssa_p): New variable.
      	(rewrite_into_ssa): Set in_ssa_p.
      	* tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
      	* tree-profile.c: Include ggc.h and gt-tree-profile.h.
      	(gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
      	tree_one_value_profiler_fn): New variables.
      	(tree_init_edge_profiler): Initialize the profiler function decls.
      	(tree_gen_edge_profiler): Use global gcov_type_node.
      	(prepare_instrumented_value): New function.
      	(tree_gen_interval_profiler, tree_gen_interval_profiler,
      	tree_gen_one_value_profiler): Call the library functions instead of
      	creating instrumentation code.
      	* tree.c (build_fn_decl): New function.
      	* tree.h (build_fn_decl): Declare.
      	* value-prof.c (rtl_divmod_values_to_profile,
      	rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
      	tree_mod_pow2_value_transform, tree_find_values_to_profile):
      	Do not handle may_be_other and precise values of exponents at pow2
      	profiler.
      	(tree_mod_subtract_transform): Reflect that value field of
      	histogram has changed meaning.
      	(tree_divmod_values_to_profile): Record the values correctly.
      	(tree_values_to_profile): Update comment.
      	* value-prof.h (struct histogram_value_t): Remove pow2 data.
      
      From-SVN: r98555
      Zdenek Dvorak committed
  31. 21 Apr, 2005 1 commit
    • vec.h: Update API to separate allocation mechanism from type. · d4e6fecb
      	* vec.h: Update API to separate allocation mechanism from type.
      	(VEC_safe_grow): New.
      	* vec.c (calculate_allocation): New.
      	(vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
      	(vec_gc_free, vec_heap_free): Remove.
      	* gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
      	(VEC): Likewise.
      	(mangle_macro_name): New.
      	(struct macro_def): New.
      	(struct macro): Add multiple argument values.
      	(macro_expans_end): New.
      	(push_macro_expansion):  Chain on new macro. Process multiple
      	args, create follow on expansion. Return follow on argument.
      	(macro_input): Deal with multiple arguments.
      
      	* tree.h: Define VEC(tree,heap) and VEC(tree,gc).
      	(struct tree_binfo): Adjust.
      	* basic-block.h: Define VEC(edge,gc).
      	(struct edge_def): Adjust.
      	(struct basic_block_def, struct edge_iterator): Likewise.
      	(ei_container, ei_start_1, ei_last_1): Likewise.
      	* cfg.c (connect_src, connect_dest): Likewise.
      	* cfgrtl.c (force_nonfallthru_and_redirect)
      	* dbxout.c (dbxout_type)
      	* dwarf2out.c (gen_member_die)
      	* lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
      	(gcc_tree_to_linear_expression): Adjust.
      	(gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
      	lbv_to_gcc_expression, lle_to_gcc_expression,
      	lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
      	perfect_nestify): Likewise.
      	* lambda.h (gcc_loopnest_to_lambda_loopnest,
      	lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
      	* profile.c (instrument_values): Adjust.
      	* tree-cfg.c (modified_noreturn_calls): Adjust.
      	(remove_fallthru_edge): Likewise.
      	* tree-dump.c (dequeue_and_dump): Adjust.
      	* tree-flow-inline.h (mark_stmt_modified): Adjust.
      	* tree-flow.h (modified_noreturn_calls): Adjust.
      	(tree_on_heap): Remove. (yay!)
      	(register_new_def): Adjust.
      	* tree-into-ssa.c: Define VEC(int,heap).
      	(block_defs_stack): Adjust.
      	(find_idf, insert_phi_nodes, register_new_def,
      	rewrite_initialize_block, rewrite_finalize_block,
      	register_new_update_single, rewrite_update_init_block,
      	rewrite_update_fini_block, rewrite_blocks,
      	ssa_rewrite_finalize_block, ssa_register_new_def,
      	ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
      	* tree-loop-linear.c (linear_transform_loops): Adjust.
      	* tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
      	(push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
      	* tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
      	stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
      	vrp_variables_stack): Adjust declarations.
      	(tree_ssa_dominator_optimize): Adjust.
      	(dom_opt_initialize_block, remove_local_expressions_from_table,
      	restore_nonzero_vars_to_original_value,
      	restore_vars_to_original_value,
      	restore_currdefs_to_original_value, dom_opt_finalize_block,
      	record_var_is_nonzero, record_cond, record_const_or_copy_1,
      	optimize_stmt, update_rhs_and_lookup_avail_expr,
      	lookup_avail_expr, record_range): Likewise.
      	* tree-ssa-pre.c: Define VEC(basic_block,heap).
      	(compute_antic_aux): Adjust.
      	(inserted_exprs, create_expression_by_pieces,
      	insert_into_preds_of_block, eliminate, mark_operand_necessary,
      	remove_dead_inserted_code, fini_pre): Likewise.
      	* tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
      	(varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
      	ssa_prop_init): Likewise.
      	* tree-ssa.c: Define VEC(bitmap,heap).
      	(verify_name_tags): Adjust.
      	* value-prof.c (rtl_divmod_values_to_profile): Adjust.
      	(insn_prefetch_values_to_profile, rtl_find_values_to_profile,
      	tree_divmod_values_to_profile, tree_find_values_to_profile,
      	value_profile_transformations): Likewise.
      	* value-prof.h: Define VEC(histogram_value,heap).
      	* varasm.c: Remove alias_pair pointer typedef, define
      	VEC(alias_pair,gc).
      	(finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
      
      	* config/pa/pa.c (typedef extern_symbol): Typedef the structure,
      	not a pointer to it.  Create an object vector.
      	(extern_symbols): Turn into an object vector.
      	(pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
      
      	* cp/cp-tree.h: Adjust for new VEC API.
      	Define VEC(tree_pair_s,gc).
      	(struct save_scope): Adjust.
      	(struct lang_type_class): Adjust.
      	(unemitted_tinfo_decls): Adjust.
      	* cp/class.c (add_method, resort_type_method_vec,
      	finish_struct_methods, struct find_final_overrider_data,
      	dfs_find_final_overrider_pre, find_final_overrider,
      	get_vcall_index, warn_hidden, walk_subobject_offsets,
      	check_methods, fixup_inline_methods, end_of_class,
      	warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
      	add_vcall_offset): Adjust.
      	* cp/decl.c (xref_basetypes, finish_method): Adjust.
      	* cp/decl2.c (check_classfn): Adjust.
      	* cp/init.c (sort_mem_initializers, push_base_cleanups): Adjust.
      	* cp/method.c (do_build_copy_constructor): Adjust.
      	* cp/name-lookup.c (new_class_binding, store_binding,
      	store_bindings, store_class_bindings): Adjust.
      	* cp/name-lookup.h: Define VEC(cxx_saved_binding,gc),
      	VEC(cp_class_binding,gc).
      	(struct cp_binding_level): Adjust.
      	* cp/parser.c: Define VEC(cp_token_position,heap).
      	(struct cp_lexer): Adjust.
      	(cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
      	cp_lexer_save_tokens): Adjust.
      	* cp/pt.c (retrieve_specialization,
      	check_explicit_specialization): Adjust.
      	* cp/rtti.c (unemitted_tinfo_decls): Adjust.
      	(init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
      	get_pseudo_ti_desc): Adjust.
      	* cp/search.c (dfs_access_in_type, lookup_conversion_operator,
      	lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
      	dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
      	* cp/semantics.c: Define VEC(deferred_access,gc).
      	(push_deferring_access_checks): Adjust.
      	* cp/typeck2.c (abstract_virtuals_error): Adjust.
      
      From-SVN: r98498
      Nathan Sidwell committed
  32. 29 Mar, 2005 2 commits
    • builtin-types.def, [...]: Update copyright. · 5f996627
      	* builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
      	debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
      	rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
      	tree-profile.c, tsystem.h, value-prof.h: Update copyright.
      
      From-SVN: r97209
      Kazu Hirata committed
    • Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H) $(TREE_H) and $(COVERAGE_H). · 1f1e8527
      	* Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
      	$(TREE_H) and $(COVERAGE_H).
      	* coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
      	* opts.c (common_handle_option): Enable tree-based value transforms.
      	* toplev.c (process_options): Ditto.
      	* value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
      	refers to references to this type.
      	* tree-flow.h: (struct stmt_ann_d): Add histograms field.
      	* rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
      	for may_be_more, may_be_less.
      	(rtl_gen_pow2_profiler): Adjust.
      	(rtl_gen_one_value_profiler_no_edge_manip): Adjust.
      	(rtl_gen_one_value_profiler): Adjust.
      	(rtl_gen_const_delta_profiler): Adjust.
      	* tree-profile.c (tree_gen_interval_profiler): Implement.
      	(tree_gen_pow2_profiler): Ditto.
      	(tree_gen_one_value_profiler): Ditto.
      	(tree_profiling): New.
      	(pass_tree_profile): Reference it.
      	* value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
      	tree.h, gcov-io.h.
      	(insn_divmod_values_to_profile): Rename to
      	rtl_divmod_values_to_profile. Adjust.
      	(insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
      	(insn_prefetch_values_to_profile): Adjust.
      	(rtl_value_profile_transformations): Adjust.
      	(gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
      	(gen_mod_pow2): Rename to rtl_mod_pow2.
      	(gen_mod_subtract): Rename to rtl_mod_subtract.
      	(divmod_fixed_value_transform): Rename to
      	rtl_divmod_fixed_value_transform.
      	(mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
      	(mod_subtract_transform): Rename to rtl_mod_subtract_transform.
      	(rtl_find_values_to_profile): Adjust.
      	(tree_value_profile_transformations): Implement.
      	(tree_divmod_values_to_profile): New.
      	(tree_values_to_profile): New.
      	(tree_divmod_fixed_value): New.
      	(tree_mod_pow2): New.
      	(tree_mod_subtract): New.
      	(tree_divmod_fixed_value_transform): New.
      	(tree_mod_pow2_value_transform): New.
      	(tree_mod_subtract_transform): New.
      	(tree_find_values_to_profile): Implement.
      	* profile.c (instrument_values):  Free histograms.
      	(compute_value_histograms): Adjust. Implement tree version.
      
      From-SVN: r97156
      Dale Johannesen committed
  33. 28 Oct, 2004 1 commit
    • profile.c (branch_prob): Call to init_edge_profiler added. · f3df9541
      	* profile.c (branch_prob): Call to init_edge_profiler added.
      	* rtl-profile.c (rtl_init_edge_profiler): New function.
      	(rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with
      	call to safe_insert_insn_on_edge.
      	(rtl_profile_hooks): rtl_init_edge_profiler added.
      	* tree-profile.c (tree_init_edge_profiler): New function.
      	(tree_profile_hooks): tree_init_edge_profiler added.
      	* value-prof.h (profile_hooks) init_edge_profiler prototype added.
      
      From-SVN: r89764
      Andreas Krebbel committed
  34. 15 Oct, 2004 1 commit
    • bitmap.c, [...]: Update copyright. · f30278e8
      	* bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
      	collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
      	gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
      	genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
      	gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
      	gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
      	lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
      	predict.def, predict.h, protoize.c, reload.h, resource.h,
      	rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
      	tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
      	unwind-sjlj.c, value-prof.h: Update copyright.
      
      From-SVN: r89097
      Kazu Hirata committed
  35. 08 Sep, 2004 1 commit
    • vec.c (vec_p_reserve, [...]): Rename to ... · 4c254e68
      	* vec.c (vec_p_reserve, vec_o_reserve): Rename to ...
      	(vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to
      	(vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust.
      	(vec_gc_free, vec_heap_free): New.
      	* vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New.
      	(DEF_VEC_P): Add allocator argument. Adjust.
      	(DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New.
      	(DEF_VEC_O): Add allocator argument. Adjust.
      	(VEC(free)): New.
      
      	* tree.h (tree): Define a GC'd vector.
      	* lamba-code.c (lambda_loop): Likewise.
      	* value-prof.h (histogram_value): Likewise.
      	* cp/cp-tree.h (tree_pair_s): Likewise.
      	* cp/name-lookup.h (cxx_saved_binding, cp_class_binding): Likewise.
      	* cp/semantics.c (deferred_access): Likewise.
      
      From-SVN: r87179
      Nathan Sidwell committed
  36. 01 Sep, 2004 1 commit
    • Makefile.in (rtl-profile.o, [...]): Add GCC_H dependency. · 6d9901e7
      	* Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
      	* common.opt (fspeculative-prefetching): New.
      	* flags.h (flag_speculative_prefetching_set): Declare.
      	* gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
      	values.
      	* opts.c (flag_sepculative_prefetching_set): New variable.
      	(common_handle_option): Handle -fspeculative-prefetching.
      	* passes.c (rest_of_compilation): Ditto.
      	* profile.c (instrument_values, compute_value_histograms, branch_prob):
      	Use vectors instead of arrays.
      	* toplev.c (process_options): Handle -fspeculative-prefetching.
      	* rtl-profile.c: Include ggc.h.
      	(rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
      	rtl_gen_one_value_profiler_no_edge_manipulation,
      	rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
      	argument changed.
      	* tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
      	tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
      	argument changed.
      	* value-prof.c: Include ggc.h.
      	(NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
      	macros.
      	(insn_prefetch_values_to_profile, find_mem_reference_1,
      	find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
      	speculative_prefetching_transform): New.
      	(value_profile_transformations): Call speculative_prefetching_transform.
      	(insn_values_to_profile): Call insn_prefetch_values_to_profile.
      	(insn_divmod_values_to_profile, rtl_find_values_to_profile,
      	tree_find_values_to_profile, find_values to profile): Use vectors
      	instead of arrays.
      	(free_profiled_values): Removed.
      	* value-prof.h (struct histogram_value): Renamed to
      	struct histogram_value_t.
      	(histogram_value, histogram_values): New types.
      	(find_values_to_profile): Declaration changed.
      	(free_profiled_values): Removed.
      	(struct profile_hooks): Type of argument of the hooks changed to
      	histogram_value.
      	* doc/invoke.texi (-fspeculative-prefetching): Document.
      
      From-SVN: r86930
      Zdenek Dvorak committed
  37. 30 May, 2004 1 commit
    • bb-reorder.c, [...]: Fix comment formatting. · 9cf737f8
      	* bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
      	c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
      	expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
      	passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
      	tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
      	tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
      	tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
      	tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
      	tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
      	formatting.
      
      From-SVN: r82463
      Kazu Hirata committed
  38. 13 May, 2004 1 commit