1. 03 Jan, 2018 1 commit
  2. 17 May, 2017 1 commit
    • Introduce dump_flags_t type and use it instead of int type. · 1a817418
      2017-05-17  Martin Liska  <mliska@suse.cz>
      
      	* class.c (dump_class_hierarchy): Introduce dump_flags_t type and
      	use it instead of int type.
      	(dump_vtable): Likewise.
      	(dump_vtt): Likewise.
      	* decl2.c (dump_tu): Likewise.
      2017-05-17  Martin Liska  <mliska@suse.cz>
      
      	* c-common.h: Introduce dump_flags_t type and
      	use it instead of int type.
      	* c-gimplify.c (c_genericize): Likewise.
      	* c-opts.c: Likewise.
      2017-05-17  Martin Liska  <mliska@suse.cz>
      
      	* c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and
      	use it instead of int type.
      2017-05-17  Martin Liska  <mliska@suse.cz>
      
      	* cfg.c: Introduce dump_flags_t type and
      	use it instead of int type.
      	* cfg.h: Likewise.
      	* cfghooks.c: Likewise.
      	* cfghooks.h (struct cfg_hooks): Likewise.
      	* cfgrtl.c: Likewise.
      	* cfgrtl.h: Likewise.
      	* cgraph.c (cgraph_node::get_body): Likewise.
      	* coretypes.h: Likewise.
      	* domwalk.c: Likewise.
      	* domwalk.h: Likewise.
      	* dumpfile.c (struct dump_option_value_info): Likewise.
      	(dump_enable_all): Likewise.
      	(dump_switch_p_1): Likewise.
      	(opt_info_switch_p): Likewise.
      	* dumpfile.h (enum tree_dump_index): Likewise.
      	(struct dump_file_info): Likewise.
      	* genemit.c: Likewise.
      	* generic-match-head.c: Likewise.
      	* gengtype.c (open_base_files): Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple-pretty-print.h: Likewise.
      	* graph.c (print_graph_cfg): Likewise.
      	* graphite-scop-detection.c (dot_all_sese): Likewise.
      	* ipa-devirt.c (build_type_inheritance_graph): Likewise.
      	* loop-unroll.c (report_unroll): Likewise.
      	* passes.c (pass_manager::register_one_dump_file): Likewise.
      	* print-tree.c: Likewise.
      	* statistics.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfg.h: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-dfa.h: Likewise.
      	* tree-dump.c (dump_function): Likewise.
      	* tree-dump.h (struct dump_info): Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-pretty-print.h: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      
      From-SVN: r248140
      Martin Liska committed
  3. 01 Jan, 2017 1 commit
  4. 15 Nov, 2016 1 commit
  5. 04 Jan, 2016 1 commit
  6. 28 Oct, 2015 1 commit
    • [PATCH 7/9] ENABLE_CHECKING refactoring: middle-end, LTO FE · b2b29377
      [PATCH 7/9] ENABLE_CHECKING refactoring: middle-end, LTO FE
      gcc/lto/ChangeLog:
      2015-10-27  Mikhail Maltsev  <maltsevm@gmail.com>
      
      	* lto.c (unify_scc): Use flag_checking and remove ENABLE_CHECKING
      	conditionals.
      	(lto_fixup_state): Likewise.
      	(do_whole_program_analysis): Use
      	symtab_node::checking_verify_symtab_nodes and remove ENABLE_CHECKING
      	conditionals.
      
      gcc/ChangeLog:
      
      2015-10-27  Mikhail Maltsev  <maltsevm@gmail.com>
      
      	* attribs.c (check_attribute_tables): New function, broken out from...
      	(init_attributes): Use it.
      	* cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
      	gcc_checking_assert and checking_* functions to eliminate
      	ENABLE_CHECKING conditionals.
      	* cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
      	(pass_expand::execute): Likewise.
      	* cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
      	* cgraphunit.c (mark_functions_to_output): Likewise.
      	(cgraph_node::expand_thunk): Likewise.
      	(symbol_table::compile): Likewise.
      	* ddg.c (add_cross_iteration_register_deps): Likewise.
      	(create_ddg_all_sccs): Likewise.
      	* df-core.c (df_finish_pass, df_analyze): Likewise.
      	* diagnostic-core.h: Likewise.
      	* diagnostic.c (diagnostic_report_diagnostic): Likewise.
      	* dominance.c (calculate_dominance_info): Likewise.
      	* dwarf2out.c (add_AT_die_ref): Likewise.
      	(const_ok_for_output_1, mem_loc_descriptor): Likewise.
      	(loc_list_from_tree, gen_lexical_block_die): Likewise.
      	gen_type_die_with_usage, gen_type_die): Likewise.
      	(dwarf2out_decl): Likewise.
      	* emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
      	* except.c (duplicate_eh_regions): Likewise.
      	* fwprop.c (register_active_defs, update_df_init): Likewise.
      	(fwprop_init, fwprop_done): Likewise.
      	(update_uses): Likewise.
      	* ggc-page.c (ggc_grow): Likewise.
      	* gimplify.c (gimplify_body): Likewise.
      	(gimplify_hasher::equal): Likewise.
      	* graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
      	* graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
      	Likewise.
      	* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
      	(rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
      	* hash-table.h (::find_empty_slot_for_expand): Likewise.
      	* ifcvt.c (if_convert): Likewise.
      	* ipa-cp.c (ipcp_propagate_stage): Likewise.
      	* ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
      	(odr_type_p, odr_types_equivalent_p): Likewise.
      	(add_type_duplicate, get_odr_type): Likewise.
      	* ipa-icf.c (sem_item_optimizer::execute): Likewise.
      	(sem_item_optimizer::subdivide_classes_by_equality): Likewise.
      	(sem_item_optimizer::verify_classes): Likewise.
      	(sem_item_optimizer::traverse_congruence_split): Likewise.
      	(sem_item_optimizer::checking_verify_classes): New.
      	* ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
      	method.
      	* cfgrtl.c (commit_edge_insertions): Likewise.
      	(fixup_reorder_chain, cfg_layout_finalize): Likewise.
      	(rtl_flow_call_edges_add): Likewise.
      	* cgraph.c (symbol_table::create_edge): Likewise.
      	(cgraph_edge::redirect_call_stmt_to_callee): Likewise.
      	* cgraph.h (symtab_node): Likewise.
      	(symtab_node::checking_verify_symtab_nodes): Define.
      	(cgraph_node::checking_verify_cgraph_nodes): Define.
      	* cfghooks.h (checking_verify_flow_info): Define.
      	* cfgloop.h (checking_verify_loop_structure): Define.
      	* dominance.h (checking_verify_dominators): Define.
      	* et-forest.c: Fix comment.
      	* ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
      	CHECKING_P gcc_checking_assert and checking_* functions to eliminate
      	ENABLE_CHECKING conditionals.
      	* ipa-inline-transform.c (save_inline_function_body): Likewise.
      	* ipa-inline.c (inline_small_functions): Likewise.
      	(early_inliner): Likewise.
      	* ipa-inline.h (estimate_edge_growth): Likewise.
      	* ipa-visibility.c (function_and_variable_visibility): Likewise.
      	* ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
      	(ipa_single_use): Likewise.
      	* ira-int.h: Likewise.
      	* ira.c (ira): Likewise.
      	* loop-doloop.c (doloop_optimize_loops): Likewise.
      	* loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
      	* loop-invariant.c (move_loop_invariants): Likewise.
      	* lra-assigns.c (lra_assign): Likewise.
      	* lra-constraints.c (lra_constraints): Likewise.
      	* lra-eliminations.c (lra_eliminate): Likewise.
      	* lra-int.h (struct lra_reg): Likewise.
      	* lra-lives.c (check_pseudos_live_through_calls): Likewise.
      	(lra_create_live_ranges_1): Likewise.
      	* lra-remat.c (create_remat_bb_data): Likewise.
      	* lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
      	(lra): Likewise.
      	(check_rtl): Always define. Remove incorrect guard around
      	extract_constrain_insn call.
      	* lto-cgraph.c (input_cgraph_1: Use flag_checking,
      	CHECKING_P gcc_checking_assert and checking_* functions to eliminate
      	ENABLE_CHECKING conditionals.
      	* lto-streamer-out.c (DFS::DFS): Likewise.
      	(lto_output): Likewise.
      	* lto-streamer.c (lto_streamer_init): Likewise.
      	* omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
      	expand_omp_target, execute_expand_omp): Likewise.
      	(lower_omp_target): Likewise.
      	* passes.c (execute_function_todo): Likewise.
      	(execute_todo, execute_one_pass): Likewise.
      	(verify_curr_properties): Always define.
      	* predict.c (tree_estimate_probability: Use flag_checking,
      	CHECKING_P gcc_checking_assert and checking_* functions to eliminate
      	ENABLE_CHECKING conditionals.
      	(propagate_freq): Likewise.
      	* pretty-print.c (pp_format): Likewise.
      	* real.c (real_to_decimal_for_mode): Likewise.
      	* recog.c (split_all_insns): Likewise.
      	* regcprop.c (kill_value_one_regno): Likewise.
      	(copy_value): Likewise.
      	(validate_value_data): Define unconditionally.
      	* reload.c: Fix comment.
      	* timevar.c: Include options.h
      	* tree-ssa.h (checking_verify_ssa): Define.
      	* tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
      	* sched-deps.c (CHECK): Remove unused macro.
      	(add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
      	gcc_checking_assert and checking_* functions to eliminate
      	ENABLE_CHECKING conditionals.
      	* sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
      	* sel-sched.c (struct moveop_static_params): Likewise.
      	(find_best_reg_for_expr, move_cond_jump): Likewise.
      	(move_op_orig_expr_not_found): Likewise.
      	(code_motion_process_successors, move_op): Likewise.
      	* ssa-iterators.h (first_readonly_imm_use): Likewise.
      	(next_readonly_imm_use): Likewise.
      	* store-motion.c (compute_store_table): Likewise.
      	* symbol-summary.h (function_summary::function_summary): Likewise.
      	* target.h (cumulative_args_t): Likewise.
      	(get_cumulative_args, pack_cumulative_args): Likewise.
      	* timevar.c: (timer::print): Likewise.
      	* trans-mem.c (ipa_tm_execute): Likewise.
      	* tree-cfg.c (move_stmt_op): Likewise.
      	(move_sese_region_to_fn): Likewise.
      	(gimple_flow_call_edges_add): Likewise.
      	* tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
      	Likewise.
      	* tree-eh.c (remove_unreachable_handlers): Likewise.
      	* tree-if-conv.c (pass_if_conversion::execute): Likewise.
      	* tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
      	* tree-into-ssa.c (update_ssa): Likewise.
      	* tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
      	* tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
      	* tree-parloops.c (pass_parallelize_loops::execute): Likewise.
      	* tree-predcom.c (suitable_component_p): Likewise.
      	* tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
      	* tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
      	* tree-ssa-live.c (verify_live_on_entry): Likewise.
      	* tree-ssa-live.h (register_ssa_partition): Likewise.
      	* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
      	* tree-ssa-loop-manip.c (add_exit_phi): Likewise.
      	(tree_transform_and_unroll_loop): Likewise.
      	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
      	* tree-ssa-operands.c (get_expr_operands): Likewise.
      	* tree-ssa-propagate.c (replace_exp_1): Likewise.
      	* tree-ssa-structalias.c (rewrite_constraints): Likewise.
      	* tree-ssa-ter.c (free_temp_expr_table): Likewise.
      	* tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
      	* tree-ssanames.c (release_ssa_name_fn): Likewise.
      	* tree-stdarg.c (expand_ifn_va_arg): Likewise.
      	* tree-vect-loop-manip.c
      	(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
      	(slpeel_checking_verify_cfg_after_peeling): Likewise.
      	(vect_do_peeling_for_loop_bound): Likewise.
      	(vect_do_peeling_for_alignment): Likewise.
      	* tree-vrp.c (supports_overflow_infinity): Likewise.
      	(set_value_range): Likewise.
      	* tree.c (free_lang_data_in_cgraph): Likewise.
      	* value-prof.c (gimple_remove_histogram_value): Likewise.
      	(free_hist): Likewise.
      	* var-tracking.c (canonicalize_values_star): Likewise.
      	(compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.
      
      From-SVN: r229470
      Mikhail Maltsev committed
  7. 14 Aug, 2015 1 commit
    • [PR64164] Drop copyrename, use coalescible partition as base when optimizing. · 1f9ceff1
      for  gcc/ChangeLog
      
      	PR rtl-optimization/64164
      	PR bootstrap/66978
      	PR middle-end/66983
      	PR rtl-optimization/67000
      	PR middle-end/67034
      	PR middle-end/67035
      	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
      	* tree-ssa-copyrename.c: Removed.
      	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
      	-ftree-coalesce-vars.
      	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
      	* common.opt (ftree-copyrename): Ignore.
      	(ftree-coalesce-inlined-vars): Likewise.
      	* doc/invoke.texi: Remove the ignored options above.
      	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
      	* tree-ssa-coalesce.h: ... here.
      	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
      	headers required by it.
      	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
      	across variables when flag_tree_coalesce_vars.  Check register
      	use and promoted modes to allow coalescing.  Do not coalesce
      	maybe-byref parms with SSA_NAMEs of other variables, or
      	anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
      	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
      	with its member functions to tree-ssa-coalesce.c.
      	(var_map_base_init): Likewise.  Renamed to
      	compute_samebase_partition_bases.
      	(partition_view_normal): Drop want_bases parameter.
      	(partition_view_bitmap): Likewise.
      	* tree-ssa-live.h: Adjust declarations.
      	* tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
      	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
      	default defs at the entry point.
      	(dump_part_var_map): New.
      	(compute_optimized_partition_bases): New, called by...
      	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
      	of compute_samebase_partition_bases.  Adjust.
      	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
      	* cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
      	(ssa_default_def_partition): New.
      	(get_rtl_for_parm_ssa_default_def): New.
      	(align_local_variable, add_stack_var): Support anonymous SSA
      	names.
      	(defer_stack_allocation): Likewise.  Declare earlier.
      	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
      	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
      	Do no record deferred-allocation marker in
      	SA.partition_to_pseudo.
      	(expand_stack_vars): Adjust check for the marker in it.
      	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
      	redundant MEM attr setting.
      	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
      	from...
      	(expand_one_stack_var): ... this.  New wrapper to check and
      	skip already expanded SSA partitions.
      	(record_alignment_for_reg_var): New, factored out of...
      	(expand_one_var): ... this.
      	(expand_one_ssa_partition): New.
      	(adjust_one_expanded_partition_var): New.
      	(expand_one_register_var): Check and skip already expanded SSA
      	partitions.
      	(expand_used_vars): Don't create DECLs for anonymous SSA
      	names.  Expand all SSA partitions, then adjust all SSA names.
      	(pass::execute): Replace the loops that set
      	SA.partition_to_pseudo from partition leaders and cleared
      	DECL_RTL for multi-location variables, and that which used to
      	rename vars and set attrs, with one that clears DECL_RTL and
      	checks that PARMs and RESULTs default_defs match DECL_RTL.
      	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
      	* emit-rtl.c: Include stor-layout.h.
      	(set_reg_attrs_for_parm): Handle NULL decl.
      	(set_reg_attrs_for_decl_rtl): Take mode from expression if
      	it's not a DECL.
      	* stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
      	rather than its possibly-NULL DECL.
      	* explow.c (promote_ssa_mode): New.
      	* explow.h (promote_ssa_mode): Declare.
      	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
      	(read_complex_part): Export.
      	* expr.h (read_complex_part): Declare.
      	* cfgexpand.h (parm_maybe_byref_p): Declare.
      	* function.c: Include cfgexpand.h.
      	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
      	(use_register_for_parm_decl): Wrapper for the above to
      	special-case the result_ptr.
      	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
      	(split_complex_args): Take assign_parm_data_all argument.
      	Pass it to rtl_for_parm.  Set up rtl and context for split
      	args.  Reset complex parm before fetching its default decl
      	rtl.
      	(assign_parms_unsplit_complex): Use the default-def complex
      	parm rtl if it matches the components.
      	(assign_parms_augmented_arg_list): Adjust.
      	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
      	multiple locations.  Recognize split complex args.
      	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
      	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
      	(assign_parm_setup_block): Prefer SSA-assigned location, and
      	fill in its address if the memory location of a maybe-byref
      	parm was not assigned by cfgexpand.
      	(assign_parm_setup_reg): Likewise.  Adjust its mode as
      	needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
      	sure passed_pointer parms don't need conversion.  Copy address
      	or value as needed.
      	(assign_parm_setup_stack): Prefer SSA-assigned location.
      	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
      	rtl before testing for pointer bounds.  Special-case result_ptr.
      	(expand_function_start): Maybe reset DECL_RTL of result.
      	Prefer SSA-assigned location for result and static chain.
      	Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
      	to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
      	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
      	anonymous SSA names.  Use promote_ssa_mode.
      	(get_temp_reg): Likewise.
      	(remove_ssa_form): Adjust.
      	* stor-layout.c (layout_decl): Don't set mem attributes of
      	non-MEMs.
      	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
      	and get its reg_usage for reg invalidation.
      	(compute_bb_dataflow): Pass it insn.
      	(emit_notes_in_bb): Likewise.
      
      for  gcc/testsuite/ChangeLog
      
      	* gcc.dg/guality/pr54200.c: Add -fno-tree-coalesce-vars.
      	* gcc.dg/ssp-1.c: Make counter a register.
      	* gcc.dg/ssp-2.c: Likewise.
      	* gcc.dg/torture/parm-coalesce.c: New.
      
      From-SVN: r226901
      Alexandre Oliva committed
  8. 25 Jul, 2015 1 commit
  9. 23 Jul, 2015 1 commit
    • [PR64164] Drop copyrename, use coalescible partition as base when optimizing. · 7eb9f42e
      for  gcc/ChangeLog
      
      	PR rtl-optimization/64164
      	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
      	* tree-ssa-copyrename.c: Removed.
      	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
      	-ftree-coalesce-vars.
      	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
      	* common.opt (ftree-copyrename): Ignore.
      	(ftree-coalesce-inlined-vars): Likewise.
      	* doc/invoke.texi: Remove the ignored options above.
      	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
      	* tree-ssa-coalesce.h: ... here.
      	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
      	headers required by it.
      	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
      	across variables when flag_tree_coalesce_vars.  Check register
      	use and promoted modes to allow coalescing.  Moved to
      	tree-ssa-coalesce.c.
      	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
      	with its member functions to tree-ssa-coalesce.c.
      	(var_map_base_init): Likewise.  Renamed to
      	compute_samebase_partition_bases.
      	(partition_view_normal): Drop want_bases parameter.
      	(partition_view_bitmap): Likewise.
      	* tree-ssa-live.h: Adjust declarations.
      	* tree-ssa-coalesce.c: Include explow.h.
      	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
      	default defs at the entry point.
      	(dump_part_var_map): New.
      	(compute_optimized_partition_bases): New, called by...
      	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
      	of compute_samebase_partition_bases.  Adjust.
      	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
      	* cfgexpand.c (leader_merge): New.
      	(get_rtl_for_parm_ssa_default_def): New.
      	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
      	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
      	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
      	redundant MEM attr setting.
      	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
      	from...
      	(expand_one_stack_var): ... this.  New wrapper to check and
      	skip already expanded SSA partitions.
      	(record_alignment_for_reg_var): New, factored out of...
      	(expand_one_var): ... this.
      	(expand_one_ssa_partition): New.
      	(adjust_one_expanded_partition_var): New.
      	(expand_one_register_var): Check and skip already expanded SSA
      	partitions.
      	(expand_used_vars): Don't create DECLs for anonymous SSA
      	names.  Expand all SSA partitions, then adjust all SSA names.
      	(pass::execute): Replace the loops that set
      	SA.partition_to_pseudo from partition leaders and cleared
      	DECL_RTL for multi-location variables, and that which used to
      	rename vars and set attrs, with one that clears DECL_RTL and
      	checks that PARMs and RESULTs default_defs match DECL_RTL.
      	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
      	* emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
      	* explow.c (promote_ssa_mode): New.
      	* explow.h (promote_ssa_mode): Declare.
      	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
      	* function.c: Include cfgexpand.h.
      	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
      	(use_register_for_parm_decl): Wrapper for the above to
      	special-case the result_ptr.
      	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
      	(split_complex_args): Take assign_parm_data_all argument.
      	Pass it to rtl_for_parm.  Set up rtl and context for split
      	args.
      	(assign_parms_augmented_arg_list): Adjust.
      	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
      	multiple locations.  Recognize split complex args.
      	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
      	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
      	(assign_parm_setup_block): Prefer SSA-assigned location.
      	(assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
      	if stack_parm is NULL.
      	(assign_parm_setup_stack): Prefer SSA-assigned location.
      	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
      	rtl before testing for pointer bounds.  Special-case result_ptr.
      	(expand_function_start): Maybe reset DECL_RTL of result.
      	Prefer SSA-assigned location for result and static chain.
      	Factor out DECL_RESULT and SET_DECL_RTL.
      	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
      	anonymous SSA names.  Use promote_ssa_mode.
      	(get_temp_reg): Likewise.
      	(remove_ssa_form): Adjust.
      	* stor-layout.c (layout_decl): Don't set mem attributes of
      	non-MEMs.
      	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
      	and get its reg_usage for reg invalidation.
      	(compute_bb_dataflow): Pass it insn.
      	(emit_notes_in_bb): Likewise.
      
      for  gcc/testsuite/ChangeLog
      
      	* gcc.dg/guality/pr54200.c: Add -fno-tree-coalesce-vars.
      	* gcc.dg/ssp-1.c: Make counter a register.
      	* gcc.dg/ssp-2.c: Likewise.
      	* gcc.dg/torture/parm-coalesce.c: New.
      
      From-SVN: r226113
      Alexandre Oliva committed
  10. 10 Jun, 2015 1 commit
  11. 09 Jun, 2015 1 commit
    • [PR64164] Drop copyrename, use coalescible partition as base when optimizing. · 7b337d20
      for  gcc/ChangeLog
      
      	PR rtl-optimization/64164
      	* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
      	* tree-ssa-copyrename.c: Removed.
      	* opts.c (default_options_table): Drop -ftree-copyrename.  Add
      	-ftree-coalesce-vars.
      	* passes.def: Drop all occurrences of pass_rename_ssa_copies.
      	* common.opt (ftree-copyrename): Ignore.
      	(ftree-coalesce-inlined-vars): Likewise.
      	* doc/invoke.texi: Remove the ignored options above.
      	* gimple-expr.h (gimple_can_coalesce_p): Move declaration
      	* tree-ssa-coalesce.h: ... here.
      	* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
      	headers required by it.
      	* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
      	across variables when flag_tree_coalesce_vars.  Check register
      	use and promoted modes to allow coalescing.  Moved to
      	tree-ssa-coalesce.c.
      	* tree-ssa-live.c (struct tree_int_map_hasher): Move along
      	with its member functions to tree-ssa-coalesce.c.
      	(var_map_base_init): Likewise.  Renamed to
      	compute_samebase_partition_bases.
      	(partition_view_normal): Drop want_bases parameter.
      	(partition_view_bitmap): Likewise.
      	* tree-ssa-live.h: Adjust declarations.
      	* tree-ssa-coalesce.c: Include explow.h.
      	(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
      	default defs at the entry point.
      	(dump_part_var_map): New.
      	(compute_optimized_partition_bases): New, called by...
      	(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
      	of compute_samebase_partition_bases.  Adjust.
      	* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
      	* cfgexpand.c (leader_merge): New.
      	(get_rtl_for_parm_ssa_default_def): New.
      	(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
      	vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
      	(expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
      	redundant MEM attr setting.
      	(expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
      	from...
      	(expand_one_stack_var): ... this.  New wrapper to check and
      	skip already expanded SSA partitions.
      	(record_alignment_for_reg_var): New, factored out of...
      	(expand_one_var): ... this.
      	(expand_one_ssa_partition): New.
      	(adjust_one_expanded_partition_var): New.
      	(expand_one_register_var): Check and skip already expanded SSA
      	partitions.
      	(expand_used_vars): Don't create DECLs for anonymous SSA
      	names.  Expand all SSA partitions, then adjust all SSA names.
      	(pass::execute): Replace the loops that set
      	SA.partition_to_pseudo from partition leaders and cleared
      	DECL_RTL for multi-location variables, and that which used to
      	rename vars and set attrs, with one that clears DECL_RTL and
      	checks that PARMs and RESULTs default_defs match DECL_RTL.
      	* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
      	* emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
      	* explow.c (promote_ssa_mode): New.
      	* explow.h (promote_ssa_mode): Declare.
      	* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
      	* function.c: Include cfgexpand.h.
      	(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
      	(use_register_for_parm_decl): Wrapper for the above to
      	special-case the result_ptr.
      	(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
      	(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
      	multiple locations.
      	(assign_parm_adjust_stack_rtl): Add all and parm arguments,
      	for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
      	(assign_parm_setup_block): Prefer SSA-assigned location.
      	(assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
      	if stack_parm is NULL.
      	(assign_parm_setup_stack): Prefer SSA-assigned location.
      	(assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
      	rtl before testing for pointer bounds.  Special-case result_ptr.
      	(expand_function_start): Maybe reset DECL_RTL of result.
      	Prefer SSA-assigned location for result and static chain.
      	Factor out DECL_RESULT and SET_DECL_RTL.
      	* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
      	anonymous SSA names.  Use promote_ssa_mode.
      	(get_temp_reg): Likewise.
      	(remove_ssa_form): Adjust.
      	* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
      	and get its reg_usage for reg invalidation.
      	(compute_bb_dataflow): Pass it insn.
      	(emit_notes_in_bb): Likewise.
      	* tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
      	fail assert on conversion between unsigned types.
      
      for  gcc/testsuite/ChangeLog
      
      	* gcc.dg/guality/pr54200.c: Add -fno-tree-coalesce-vars.
      	* gcc.dg/ssp-1.c: Make counter a register.
      	* gcc.dg/ssp-2.c: Likewise.
      	* gcc.dg/torture/parm-coalesce.c: New.
      
      From-SVN: r224262
      Alexandre Oliva committed
  12. 06 Mar, 2015 1 commit
    • re PR middle-end/64928 (Inordinate cpu time and memory usage in "phase opt and… · 87d0d6c4
      re PR middle-end/64928 (Inordinate cpu time and memory usage in "phase opt and generate" with -ftest-coverage -fprofile-arcs)
      
      2015-03-06  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/64928
      	* tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
      	and liveout_obstack members.
      	(calculate_live_on_exit): Remove.
      	(calculate_live_ranges): Change declaration.
      	* tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
      	(new_tree_live_info): Adjust.
      	(calculate_live_ranges): Delete livein when not wanted.
      	(calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
      	Deal with partly deleted live info.
      	(loe_visit_block): Remove temporary bitmap by using
      	bitmap_ior_and_compl_into.
      	(live_worklist): Adjust accordingly.
      	(calculate_live_on_exit): Make static.
      	* tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
      	we do not need livein.
      
      From-SVN: r221237
      Richard Biener committed
  13. 05 Jan, 2015 1 commit
  14. 02 Jan, 2014 1 commit
  15. 19 Nov, 2013 1 commit
    • Eliminate ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros · fefa31b5
      gcc/
      
      	* basic-block.h (ENTRY_BLOCK_PTR_FOR_FUNCTION): Rename macro to...
      	(EXIT_BLOCK_PTR_FOR_FUNCTION): ...this.
      	(ENTRY_BLOCK_PTR_FOR_FN): Renamed macro to...
      	(EXIT_BLOCK_PTR_FOR_FN): ...this.
      	(ENTRY_BLOCK_PTR): Eliminate macro as work towards making uses of
      	cfun be explicit.
      	(EXIT_BLOCK_PTR): Likewise.
      	(FOR_ALL_BB): Rework for now to eliminate use of "ENTRY_BLOCK_PTR".
      	(FOR_ALL_BB_FN): Update for renaming of
      	"ENTRY_BLOCK_PTR_FOR_FUNCTION" to "ENTRY_BLOCK_PTR_FOR_FN".
      
      	* cfg.c (init_flow): Likewise.
      	(check_bb_profile): Likewise.
      	* cfganal.c (pre_and_rev_post_order_compute_fn): Likewise.
      	* cfgcleanup.c (walk_to_nondebug_insn): Likewise.
      	* cfghooks.c (account_profile_record): Likewise.
      	* cfgloop.c (init_loops_structure): Likewise.
      	* cgraphbuild.c (record_eh_tables): Likewise.
      	(compute_call_stmt_bb_frequency): Likewise.
      	* ipa-inline-analysis.c (compute_bb_predicates): Likewise.
      	* lto-streamer-in.c (input_cfg): Likewise.
      	* predict.c (maybe_hot_frequency_p): Likewise.
      	* tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
      	* tree-inline.c (initialize_cfun): Likewise.
      	(copy_cfg_body): Likewise.
      	(copy_body): Likewise.
      	(tree_function_versioning): Likewise.
      
      	* bb-reorder.c (add_labels_and_missing_jumps): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(duplicate_computed_gotos): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_rarely_executed_basic_blocks_and_crossing_edges): Remove uses of
      	macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(connect_traces): Likewise.
      	(rest_of_handle_reorder_blocks): Remove usage of EXIT_BLOCK_PTR macro.
      	(bb_to_key): Remove usage of ENTRY_BLOCK_PTR macro.
      	(fix_crossing_conditional_branches): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(find_traces_1_round): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(fix_up_fall_thru_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_traces): Remove usage of ENTRY_BLOCK_PTR macro.
      	(fix_up_crossing_landing_pad): Remove usage of EXIT_BLOCK_PTR macro.
      	(rotate_loop): Likewise.
      	* bt-load.c (migrate_btr_def): Remove usage of ENTRY_BLOCK_PTR macro.
      	* cfg.c (clear_aux_for_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(alloc_aux_for_edges): Likewise.
      	(clear_bb_flags): Remove usage of ENTRY_BLOCK_PTR macro.
      	(cached_make_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compact_blocks): Likewise.
      	(clear_edges): Likewise.
      	* cfganal.c (single_pred_before_succ_order): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(bitmap_union_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
      	(bitmap_union_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
      	(bitmap_intersection_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
      	(bitmap_intersection_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
      	(inverted_post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compute_dominance_frontiers_1): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(connect_infinite_loops_to_exit): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(remove_fake_edges): Remove usage of ENTRY_BLOCK_PTR macro.
      	(add_noreturn_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_pdom): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(remove_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(verify_edge_list): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(print_edge_list): Likewise.
      	(create_edge_list): Likewise.
      	(find_unreachable_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
      	(mark_dfs_back_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* cfgbuild.c (find_bb_boundaries): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(find_many_sub_basic_blocks): Remove usage of EXIT_BLOCK_PTR macro.
      	(make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* cfgcleanup.c (delete_unreachable_blocks): Likewise.
      	(try_optimize_cfg): Likewise.
      	(try_head_merge_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(try_crossjump_to_edge): Remove usage of ENTRY_BLOCK_PTR macro.
      	(try_crossjump_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(merge_blocks_move): Remove usage of ENTRY_BLOCK_PTR macro.
      	(outgoing_edges_match): Remove usage of EXIT_BLOCK_PTR macro.
      	(try_forward_edges): Likewise.
      	(try_simplify_condjump): Likewise.
      	* cfgexpand.c (gimple_expand_cfg): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(construct_exit_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(construct_init_block): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(expand_gimple_basic_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(expand_gimple_tailcall): Likewise.
      	* cfghooks.c (can_duplicate_block_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(tidy_fallthru_edges): Likewise.
      	(verify_flow_info): Likewise.
      	* cfgloop.c (flow_bb_inside_loop_p): Likewise.
      	(num_loop_branches): Remove usage of EXIT_BLOCK_PTR macro.
      	(disambiguate_multiple_latches): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(get_loop_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(bb_loop_header_p): Remove usage of ENTRY_BLOCK_PTR macro.
      	(get_loop_body_in_bfs_order): Remove usage of EXIT_BLOCK_PTR macro.
      	(get_loop_body_in_dom_order): Likewise.
      	(get_loop_body): Likewise.
      	* cfgloopanal.c (mark_irreducible_loops): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* cfgloopmanip.c (create_preheader): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(remove_path): Remove usage of EXIT_BLOCK_PTR macro.
      	(fix_bb_placement): Likewise.
      	* cfgrtl.c (rtl_block_empty_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(rtl_can_remove_branch_p): Remove usage of EXIT_BLOCK_PTR macro.
      	(cfg_layout_split_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(rtl_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
      	(cfg_layout_can_merge_blocks_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(cfg_layout_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(fixup_fallthru_exit_predecessor): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(fixup_reorder_chain): Likewise.
      	(relink_block_chain): Likewise.
      	(cfg_layout_delete_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(rtl_verify_bb_layout): Remove usage of ENTRY_BLOCK_PTR macro.
      	(cfg_layout_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(force_one_exit_fallthru): Likewise.
      	(rtl_verify_fallthru): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(rtl_verify_edges): Likewise.
      	(commit_edge_insertions): Likewise.
      	(commit_one_edge_insertion): Likewise.
      	(rtl_split_edge): Likewise.
      	(force_nonfallthru_and_redirect): Likewise.
      	(outof_cfg_layout_mode): Remove usage of EXIT_BLOCK_PTR macro.
      	(skip_insns_after_block): Likewise.
      	(fixup_partition_crossing): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(purge_dead_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(rtl_can_merge_blocks): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(contains_no_active_insn_p): Likewise.
      	(emit_insn_at_entry): Remove usage of ENTRY_BLOCK_PTR macro.
      	(entry_of_function): Likewise.
      	(last_bb_in_partition): Remove usage of EXIT_BLOCK_PTR macro.
      	(fixup_new_cold_bb): Likewise.
      	(patch_jump_insn): Likewise.
      	(try_redirect_by_replacing_jump): Likewise.
      	(block_label): Likewise.
      	(could_fall_through): Likewise.
      	(can_fallthru): Likewise.
      	* cgraphbuild.c (cgraph_rebuild_references): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(rebuild_cgraph_edges): Likewise.
      	* cgraphunit.c (init_lowered_empty_function): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(expand_thunk): Remove usage of EXIT_BLOCK_PTR macro.
      	* combine.c (get_last_value): Remove usage of ENTRY_BLOCK_PTR macro.
      	(distribute_links): Remove usage of EXIT_BLOCK_PTR macro.
      	(get_last_value_validate): Remove usage of ENTRY_BLOCK_PTR macro.
      	(try_combine): Remove usage of EXIT_BLOCK_PTR macro.
      	(reg_num_sign_bit_copies_for_combine): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(reg_nonzero_bits_for_combine): Likewise.
      	(set_nonzero_bits_and_sign_copies): Likewise.
      	(combine_instructions): Likewise.
      	* cprop.c (one_cprop_pass): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(bypass_conditional_jumps): Likewise.
      	(bypass_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_implicit_sets): Likewise.
      	(cprop_jump): Likewise.
      	* cse.c (cse_cc_succs): Likewise.
      	(cse_find_path): Likewise.
      	* df-problems.c (df_lr_confluence_0): Likewise.
      	* df-scan.c (df_entry_block_defs_collect): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(df_exit_block_uses_collect): Remove usage of EXIT_BLOCK_PTR macro.
      	* dominance.c (iterate_fix_dominators): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(calc_idoms): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(determine_dominators_for_sons): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(calc_dfs_tree): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(prune_bbs_to_update_dominators): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(calc_dfs_tree_nonrec): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* domwalk.c (cmp_bb_postorder): Likewise.
      	* dse.c (dse_step1): Remove usage of EXIT_BLOCK_PTR macro.
      	* except.c (finish_eh_generation): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(sjlj_emit_function_enter): Likewise.
      	* final.c (compute_alignments): Likewise.
      	* function.c (thread_prologue_and_epilogue_insns): Remove uses of
      	macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(reposition_prologue_and_epilogue_notes): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	(convert_jumps_to_returns): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(regno_clobbered_at_setjmp): Remove usage of ENTRY_BLOCK_PTR macro.
      	(next_block_for_reg): Remove usage of EXIT_BLOCK_PTR macro.
      	* gcse.c (hoist_code): Remove usage of ENTRY_BLOCK_PTR macro.
      	(update_bb_reg_pressure): Remove usage of EXIT_BLOCK_PTR macro.
      	(compute_code_hoist_vbeinout): Likewise.
      	(should_hoist_expr_to_dom): Remove usage of ENTRY_BLOCK_PTR macro.
      	(pre_expr_reaches_here_p_work): Likewise.
      	* gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
      	(gimple_find_edge_insert_loc): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* gimple-ssa-strength-reduction.c (slsr_process_phi): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* graph.c (draw_cfg_nodes_for_loop): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* graphite-clast-to-gimple.c (translate_clast_user): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* graphite-scop-detection.c (build_scops): Likewise.
      	(create_sese_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(scopdet_basic_block_info): Remove usage of ENTRY_BLOCK_PTR macro.
      	* haifa-sched.c (restore_bb_notes): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(unlink_bb_notes): Likewise.
      	(create_check_block_twin): Likewise.
      	(init_before_recovery): Likewise.
      	(sched_extend_bb): Likewise.
      	(priority): Likewise.
      	* hw-doloop.c (reorder_loops): Likewise.
      	(discover_loop): Likewise.
      	* ifcvt.c (dead_or_predicable): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(find_if_case_1): Remove usage of EXIT_BLOCK_PTR macro.
      	(block_has_only_trap): Likewise.
      	(cond_exec_find_if_block): Likewise.
      	(merge_if_block): Likewise.
      	* ipa-inline-analysis.c (param_change_prob): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(record_modified): Likewise.
      	* ipa-pure-const.c (execute_warn_function_noreturn): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	(local_pure_const): Likewise.
      	* ipa-split.c (split_function): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(find_split_points): Likewise.
      	(consider_split): Likewise.
      	(find_return_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(verify_non_ssa_vars): Remove usage of ENTRY_BLOCK_PTR macro.
      	* ira-build.c (ira_loop_tree_body_rev_postorder): Likewise.
      	* ira-color.c (print_loop_title): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* ira-emit.c (entered_from_non_parent_p): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(ira_emit): Remove usage of EXIT_BLOCK_PTR macro.
      	* ira-int.h (ira_assert): Remove usage of ENTRY_BLOCK_PTR macro.
      	* ira.c (split_live_ranges_for_shrink_wrap): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* lcm.c (compute_rev_insert_delete): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(compute_nearerout): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compute_farthest): Likewise.
      	(compute_available): Likewise.
      	(compute_insert_delete): Remove usage of EXIT_BLOCK_PTR macro.
      	(compute_laterin): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compute_earliest): Likewise.
      	(compute_antinout_edge): Likewise.
      	* loop-iv.c (simplify_using_initial_values): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* loop-unswitch.c (unswitch_loop): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* lra-assigns.c (find_hard_regno_for): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* lra-constraints.c (lra_inheritance): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* lra-lives.c (lra_create_live_ranges): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* lra.c (has_nonexceptional_receiver): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* lto-streamer-in.c (input_function): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* lto-streamer-out.c (output_cfg): Likewise.
      	* mcf.c (adjust_cfg_counts): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(create_fixup_graph): Remove usage of ENTRY_BLOCK_PTR macro.
      	* mode-switching.c (optimize_mode_switching): Likewise.
      	(create_pre_exit): Remove usage of EXIT_BLOCK_PTR macro.
      	* modulo-sched.c (rest_of_handle_sms): Likewise.
      	(canon_loop): Likewise.
      	* omp-low.c (build_omp_regions): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* postreload-gcse.c (eliminate_partially_redundant_loads): Remove uses
      	of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* predict.c (rebuild_frequencies): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(propagate_freq): Remove usage of EXIT_BLOCK_PTR macro.
      	(estimate_bb_frequencies): Remove usage of ENTRY_BLOCK_PTR macro.
      	(tree_estimate_probability_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(expensive_function_p): Remove usage of ENTRY_BLOCK_PTR macro.
      	(tree_bb_level_predictions): Remove usage of EXIT_BLOCK_PTR macro.
      	(counts_to_freqs): Remove usage of ENTRY_BLOCK_PTR macro.
      	(apply_return_prediction): Remove usage of EXIT_BLOCK_PTR macro.
      	(estimate_loops): Remove usage of ENTRY_BLOCK_PTR macro.
      	(gimple_predict_edge): Likewise.
      	(probably_never_executed): Likewise.
      	* profile.c (find_spanning_tree): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(branch_prob): Likewise.
      	(compute_branch_probabilities): Likewise.
      	(compute_frequency_overlap): Remove usage of ENTRY_BLOCK_PTR macro.
      	(is_inconsistent): Remove usage of EXIT_BLOCK_PTR macro.
      	(read_profile_edge_counts): Remove usage of ENTRY_BLOCK_PTR macro.
      	(set_bb_counts): Likewise.
      	(correct_negative_edge_counts): Likewise.
      	(get_exec_counts): Likewise.
      	(instrument_values): Likewise.
      	(instrument_edges): Likewise.
      	* reg-stack.c (convert_regs): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compensate_edges): Remove usage of ENTRY_BLOCK_PTR macro.
      	(convert_regs_exit): Remove usage of EXIT_BLOCK_PTR macro.
      	(convert_regs_entry): Remove usage of ENTRY_BLOCK_PTR macro.
      	(reg_to_stack): Likewise.
      	* regs.h (REG_N_SETS): Likewise.
      	* reload.c (find_dummy_reload): Likewise.
      	(combine_reloads): Likewise.
      	(push_reload): Likewise.
      	* reload1.c (has_nonexceptional_receiver): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	* resource.c (mark_target_live_regs): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(find_basic_block): Likewise.
      	* sched-ebb.c (ebb_add_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(schedule_ebbs): Likewise.
      	* sched-int.h (sel_sched_p): Likewise.
      	* sched-rgn.c (compute_dom_prob_ps): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(rgn_add_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(haifa_find_rgns): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(propagate_deps): Remove usage of EXIT_BLOCK_PTR macro.
      	(extend_rgns): Likewise.
      	(find_single_block_region): Likewise.
      	* sel-sched-ir.c (sel_remove_loop_preheader): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(setup_nop_and_exit_insns): Remove usage of EXIT_BLOCK_PTR macro.
      	(sel_create_recovery_block): Likewise.
      	(bb_ends_ebb_p): Likewise.
      	(sel_bb_end): Likewise.
      	(sel_bb_head): Likewise.
      	(free_lv_sets): Likewise.
      	(init_lv_sets): Likewise.
      	(tidy_control_flow): Likewise.
      	(maybe_tidy_empty_bb): Likewise.
      	* sel-sched-ir.h (_succ_iter_cond): Likewise.
      	(_succ_iter_start): Likewise.
      	(sel_bb_empty_or_nop_p): Likewise.
      	(get_loop_exit_edges_unique_dests): Likewise.
      	(inner_loop_header_p): Likewise.
      	* sel-sched.c (create_block_for_bookkeeping): Likewise.
      	(find_block_for_bookkeeping): Likewise.
      	* store-motion.c (remove_reachable_equiv_notes): Likewise.
      	(insert_store): Likewise.
      	* trans-mem.c (ipa_tm_transform_clone): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(tm_memopt_compute_available): Remove usage of EXIT_BLOCK_PTR macro.
      	(ipa_tm_scan_irr_function): Remove usage of ENTRY_BLOCK_PTR macro.
      	(gate_tm_init): Likewise.
      	(tm_region_init): Likewise.
      	* tree-cfg.c (execute_fixup_cfg): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(execute_warn_function_return): Remove usage of EXIT_BLOCK_PTR macro.
      	(split_critical_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(print_loops): Remove usage of ENTRY_BLOCK_PTR macro.
      	(move_sese_region_to_fn): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(gimple_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(gimple_verify_flow_info): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(remove_edge_and_dominated_blocks): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(gimple_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
      	(make_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
      	(build_gimple_cfg): Likewise.
      	(gimple_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(gimple_can_merge_blocks_p): Likewise.
      	* tree-cfgcleanup.c (tree_forwarder_block_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* tree-complex.c (update_parameter_components): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* tree-if-conv.c (get_loop_body_in_if_conv_order): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	* tree-inline.c (tree_function_versioning): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(delete_unreachable_blocks_update_callgraph): Likewise.
      	(initialize_cfun): Likewise.
      	(copy_cfg_body): Remove usage of ENTRY_BLOCK_PTR macro.
      	(copy_edges_for_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(remap_ssa_name): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-into-ssa.c (update_ssa): Likewise.
      	(maybe_register_def): Remove usage of EXIT_BLOCK_PTR macro.
      	(insert_updated_phi_nodes_for): Remove usage of ENTRY_BLOCK_PTR macro.
      	(rewrite_into_ssa): Likewise.
      	(rewrite_debug_stmt_uses): Likewise.
      	* tree-outof-ssa.c (expand_phi_nodes): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* tree-profile.c (gimple_gen_ic_func_profiler): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* tree-scalar-evolution.h (block_before_loop): Likewise.
      	* tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
      	(dump_dereferences_table): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(analyze_caller_dereference_legality): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(propagate_dereference_distances): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(initialize_parameter_reductions): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Likewise.
      	(optimize_stack_restore): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
      	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(remove_dead_stmt): Remove usage of EXIT_BLOCK_PTR macro.
      	(propagate_necessity): Remove usage of ENTRY_BLOCK_PTR macro.
      	(mark_control_dependent_edges_necessary): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* tree-ssa-dom.c (eliminate_degenerate_phis): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(tree_ssa_dominator_optimize): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-live.c (verify_live_on_entry): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(calculate_live_on_exit): Likewise.
      	(set_var_live_on_entry): Remove usage of ENTRY_BLOCK_PTR macro.
      	(loe_visit_block): Likewise.
      	* tree-ssa-live.h (live_on_exit): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(live_on_entry): Likewise.
      	* tree-ssa-loop-ivopts.c (find_interesting_uses): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	* tree-ssa-loop-manip.c (compute_live_loop_exits): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise.
      	(bound_difference): Likewise.
      	* tree-ssa-loop-prefetch.c (may_use_storent_in_loop_p): Remove usage
      	of EXIT_BLOCK_PTR macro.
      	* tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Remove usage
      	of ENTRY_BLOCK_PTR macro.
      	* tree-ssa-math-opts.c (register_division_in): Likewise.
      	* tree-ssa-phiprop.c (tree_ssa_phiprop): Likewise.
      	* tree-ssa-pre.c (compute_avail): Likewise.
      	(compute_antic): Remove usage of EXIT_BLOCK_PTR macro.
      	(insert): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-ssa-propagate.c (ssa_prop_init): Likewise.
      	(simulate_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(cfg_blocks_add): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(add_control_edge): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-reassoc.c (do_reassoc): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(build_and_add_sum): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
      	(execute_sink_code): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-uninit.c (find_dom): Remove usage of ENTRY_BLOCK_PTR macro.
      	(compute_control_dep_chain): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_pdom): Likewise.
      	(warn_uninitialized_vars): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-stdarg.c (reachable_at_most_once): Likewise.
      	* tree-tailcall.c (tree_optimize_tail_calls_1): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(eliminate_tail_call): Likewise.
      	* tsan.c (instrument_func_entry): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(instrument_func_exit): Remove usage of EXIT_BLOCK_PTR macro.
      	* var-tracking.c (vt_initialize): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(vt_add_function_parameter): Remove usage of ENTRY_BLOCK_PTR macro.
      	(vt_find_locations): Remove usage of EXIT_BLOCK_PTR macro.
      	(vt_stack_adjustments): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* varasm.c (assemble_start_function): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* config/bfin/bfin.c (hwloop_optimize): Likewise.
      	* config/nds32/nds32.c (nds32_fp_as_gp_check_available): Remove usage
      	of EXIT_BLOCK_PTR macro.
      	* config/arm/arm.c (require_pic_register): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(arm_r3_live_at_start_p): Likewise.
      	(any_sibcall_could_use_r3): Remove usage of EXIT_BLOCK_PTR macro.
      	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
      	* config/frv/frv.c (frv_optimize_membar_global): Likewise.
      	* config/alpha/alpha.c (alpha_gp_save_rtx): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* config/i386/i386.c (ix86_count_insn): Likewise.
      	(ix86_seh_fixup_eh_fallthru): Remove usage of EXIT_BLOCK_PTR macro.
      	(ix86_pad_short_function): Likewise.
      	(ix86_compute_frame_layout): Remove usage of ENTRY_BLOCK_PTR macro.
      	(ix86_pad_returns): Remove usage of EXIT_BLOCK_PTR macro.
      	(ix86_eax_live_at_start_p): Remove usage of ENTRY_BLOCK_PTR macro.
      	(add_condition_to_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(ix86_expand_epilogue): Likewise.
      	* config/ia64/ia64.c (ia64_asm_unwind_emit): Likewise.
      	(ia64_expand_prologue): Likewise.
      
      From-SVN: r205055
      David Malcolm committed
  16. 09 Oct, 2013 1 commit
    • tree-flow.h: Remove all remaining prototypes... · c1bf2a39
      
      	* tree-flow.h: Remove all remaining prototypes, enums and structs that
      	are not related to tree-cfg.c.
      	* tree-ssa-address.h: New file.  Relocate prototypes.
      	* tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
      	(addr_for_mem_ref): New.  Combine call to get_address_description and
      	return addr_for_mem_ref.
      	* expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
      	* tree-ssa-live.h: Adjust prototypes.
      	* passes.c: Include tree-ssa-live.h.
      	* gimple-pretty-print.h (gimple_dump_bb): Add prototype.
      	* graphite.c (graphite_transform_loops): Make static.
      	(graphite_transforms, gate_graphite_transforms, pass_data_graphite,
      	make_pass_graphite, pass_data_graphite_transforms, 
      	make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
      	* ipa-pure-const.c (warn_function_noreturn): Make static.
      	(execute_warn_function_noreturn, gate_warn_function_noreturn,
      	class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
      	Relocate from tree-cfg.c
      	* tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
      	static.
      	(execute_warn_function_noreturn, gate_warn_function_noreturn,
      	class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
      	Move to ipa-pure-const.c.
      	(execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg): Relocate
      	from tree-optimize.c.
      	* tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
      	make_pass_fixup_cfg): Move to tree-cfg.c.
      	* tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
      	Relocate some prototypes.
      	* tree-data-ref.h (tree_check_data_deps) Add prototype.
      	* tree-dump.c (dump_function_to_file): Remove prototype.
      	Add tree-flow.h to the include file.
      	* tree-dump.h: Remove prototype.
      	* tree-parloops.h: New File.  Add prototypes.
      	* tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
      	pass_data_parallelize_loops,  make_pass_parallelize_loops): Relocate
      	from tree-ssa-loop.c.
      	* tree-predcom.c (run_tree_predictive_commoning,
      	gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
      	Relocate here from tree-ssa-loop.c.
      	* tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call 
      	ssa_name_values.release ().
      	* tree-ssa-threadedge.h: New File.  Relocate prototypes here.
      	(ssa_name_values): Relocate from tree-flow.h.
      	* tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
      	* tree-ssa-loop.c (run_tree_predictive_commoning,
      	gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
      	graphite_transforms, gate_graphite_transforms, pass_data_graphite,
      	make_pass_graphite, pass_data_graphite_transforms,
      	make_pass_graphite_transforms, gate_tree_parallelize_loops,
      	tree_parallelize_loops, pass_data_parallelize_loops,
      	make_pass_parallelize_loops): Move to other files.
      	* tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
      	moved here.
      	* tree.h: Remove prototypes from tree-address.c.
      
      From-SVN: r203320
      Andrew MacLeod committed
  17. 01 Oct, 2013 1 commit
  18. 26 Sep, 2013 1 commit
    • tree-ssa-live.h (find_replaceable_exprs, [...]): Move prototypes to... · 78bca40d
      2013-09-26  Andrew MacLeod  <amacleod@redhat.com>
      
      	* tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Move
      	prototypes to...
      	* tree-ssa-ter.h: New File.  Move prototypes here.
      	* tree-flow.h (stmt_is_replaceable_p): Remove prototype.
      	* tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
      	* tree-outof-ssa.c (ssa_is_replaceable_p): New.  Refactor common bits
      	from is_replaceable_p. 
      	* tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
      	(ter_is_replaceable_p): New.  Use new refactored ssa_is_replaceable_p.
      	(process_replaceable): Use ter_is_replaceable_p.
      	(find_replaceable_in_bb): Use ter_is_replaceable_p.
      	* expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c.  Use
      	newly refactored ssa_is_replaceable_p.
      	* cfgexpand.c: Include tree-outof-ssa.h.
      	* ssaexpand.h: Delete.
      
      From-SVN: r202946
      Andrew MacLeod committed
  19. 29 Mar, 2013 1 commit
    • Add uniform debug dump function names. · 7b3b6ae4
      Add some overloaded functions that provide uniform debug dump
      function names.  These names are:
      
        debug: the general debug dumper
        debug_verbose: for more details
        debug_raw: for the gory details
        debug_head: for the heads of declarations, e.g. function heads
        debug_body: for the bodies of declarations, e.g. function bodies
      
      Not all types have the last four versions.
      
      The debug functions come in two flavors, those that take pointers
      to the type, and those that take references to the type.  The first
      handles printing of '<nil>' for null pointers.  The second assumes
      a valid reference, and prints the content.
      
      
      Example uses are as follows:
      
        cp_token t, *p;
        debug (t);
        debug (p);
      
      From the debugger, use
      
        call debug (t)
      
      
      The functions sets implemented are:
      
      debug (only)
      
          basic_block_def, const bitmap_head_def, cp_binding_level,
          cp_parser, cp_token, data_reference, die_struct, edge_def,
          gimple_statement_d, ira_allocno, ira_allocno_copy, live_range,
          lra_live_range, omega_pb_d, pt_solution, const rtx_def, sreal,
          tree_live_info_d, _var_map,
      
          vec<cp_token, va_gc>, vec<data_reference_p>, vec<ddr_p>,
          vec<rtx>, vec<tree, va_gc>,
      
      debug and debug_raw
      
          simple_bitmap_def
      
      debug and debug_verbose
      
          expr_def, struct loop, vinsn_def
      
      debug, debug_raw, debug_verbose, debug_head, debug_body
      
          const tree_node
      
      
      This patch is somewhat different from the original plan at
      gcc.gnu.org/wiki/cxx-conversion/debugging-dumps.  The reason
      is that gdb has an incomplete implementation of C++ call syntax;
      requiring explicit specification of template arguments and explicit
      specification of function arguments even when they have default
      values.  So, the original plan would have required typing
      
        call dump <cp_token> (t, 0, 0, stderr)
      
      which is undesireable.  Instead instead of templates, we overload
      plain functions.  This adds a small burden of manually adding
      the pointer version of dump for each type.  Instead of default
      function arguments, we simply assume the default values.  Most of
      the underlying dump functions did not use the options and indent
      parameters anyway.  Several provide FILE* parameters, but we expect
      debugging to use stderr anyway.  So, the explicit specification of
      arguments was not as valuable as we thought initially.  Finally,
      a change of name from dump to debug reflect the implicit output
      to stderr.
      
      
      Index: gcc/ChangeLog
      
      2013-03-28  Lawrence Crowl  <crowl@google.com>
      
      	* Makefile.in: Add several missing include dependences.
      	(DUMPFILE_H): New.
      	(test-dump.o): New.  This object is not added to any executable,
      	but is present for ad-hoc testing.
      	* bitmap.c
      	(debug (const bitmap_head_def &)): New.
      	(debug (const bitmap_head_def *)): New.
      	* bitmap.h
      	(extern debug (const bitmap_head_def &)): New.
      	(extern debug (const bitmap_head_def *)): New.
      	* cfg.c
      	(debug (edge_def &)): New.
      	(debug (edge_def *)): New.
      	* cfghooks.c
      	(debug (basic_block_def &)): New.
      	(debug (basic_block_def *)): New.
      	* dumpfile.h
      	(dump_node (const_tree, int, FILE *)): Correct source file.
      	* dwarf2out.c
      	(debug (die_struct &)): New.
      	(debug (die_struct *)): New.
      	* dwarf2out.h
      	(extern debug (die_struct &)): New.
      	(extern debug (die_struct *)): New.
      	* gimple-pretty-print.c
      	(debug (gimple_statement_d &)): New.
      	(debug (gimple_statement_d *)): New.
      	* gimple-pretty-print.h
      	(extern debug (gimple_statement_d &)): New.
      	(extern debug (gimple_statement_d *)): New.
      	* ira-build.c
      	(debug (ira_allocno_copy &)): New.
      	(debug (ira_allocno_copy *)): New.
      	(debug (ira_allocno &)): New.
      	(debug (ira_allocno *)): New.
      	* ira-int.h
      	(extern debug (ira_allocno_copy &)): New.
      	(extern debug (ira_allocno_copy *)): New.
      	(extern debug (ira_allocno &)): New.
      	(extern debug (ira_allocno *)): New.
      	* ira-lives.c
      	(debug (live_range &)): New.
      	(debug (live_range *)): New.
      	* lra-int.h
      	(debug (lra_live_range &)): New.
      	(debug (lra_live_range *)): New.
      	* lra-lives.c
      	(debug (lra_live_range &)): New.
      	(debug (lra_live_range *)): New.
      	* omega.c
      	(debug (omega_pb_d &)): New.
      	(debug (omega_pb_d *)): New.
      	* omega.h
      	(extern debug (omega_pb_d &)): New.
      	(extern debug (omega_pb_d *)): New.
      	* print-rtl.c
      	(debug (const rtx_def &)): New.
      	(debug (const rtx_def *)): New.
      	* print-tree.c
      	(debug_tree (tree): Move within file.
      	(debug_raw (const tree_node &)): New.
      	(debug_raw (const tree_node *)): New.
      	(dump_tree_via_hooks (const tree_node *, int)): New.
      	(debug (const tree_node &)): New.
      	(debug (const tree_node *)): New.
      	(debug_verbose (const tree_node &)): New.
      	(debug_verbose (const tree_node *)): New.
      	(debug_head (const tree_node &)): New.
      	(debug_head (const tree_node *)): New.
      	(debug_body (const tree_node &)): New.
      	(debug_body (const tree_node *)): New.
      	(debug_vec_tree (tree): Move and reimplement in terms of dump.
      	(debug (vec<tree, va_gc> &)): New.
      	(debug (vec<tree, va_gc> *)): New.
      	* rtl.h
      	(extern debug (const rtx_def &)): New.
      	(extern debug (const rtx_def *)): New.
      	* sbitmap.c
      	(debug_raw (simple_bitmap_def &)): New.
      	(debug_raw (simple_bitmap_def *)): New.
      	(debug (simple_bitmap_def &)): New.
      	(debug (simple_bitmap_def *)): New.
      	* sbitmap.h
      	(extern debug (simple_bitmap_def &)): New.
      	(extern debug (simple_bitmap_def *)): New.
      	(extern debug_raw (simple_bitmap_def &)): New.
      	(extern debug_raw (simple_bitmap_def *)): New.
      	* sel-sched-dump.c
      	(debug (vinsn_def &)): New.
      	(debug (vinsn_def *)): New.
      	(debug_verbose (vinsn_def &)): New.
      	(debug_verbose (vinsn_def *)): New.
      	(debug (expr_def &)): New.
      	(debug (expr_def *)): New.
      	(debug_verbose (expr_def &)): New.
      	(debug_verbose (expr_def *)): New.
      	(debug (vec<rtx> &)): New.
      	(debug (vec<rtx> *)): New.
      	* sel-sched-dump.h
      	(extern debug (vinsn_def &)): New.
      	(extern debug (vinsn_def *)): New.
      	(extern debug_verbose (vinsn_def &)): New.
      	(extern debug_verbose (vinsn_def *)): New.
      	(extern debug (expr_def &)): New.
      	(extern debug (expr_def *)): New.
      	(extern debug_verbose (expr_def &)): New.
      	(extern debug_verbose (expr_def *)): New.
      	(extern debug (vec<rtx> &)): New.
      	(extern debug (vec<rtx> *)): New.
      	* sel-sched-ir.h
      	(_list_iter_cond_expr): Make inline instead of static.
      	* sreal.c
      	(debug (sreal &)): New.
      	(debug (sreal *)): New.
      	* sreal.h
      	(extern debug (sreal &)): New.
      	(extern debug (sreal *)): New.
      	* tree.h
      	(extern debug_raw (const tree_node &)): New.
      	(extern debug_raw (const tree_node *)): New.
      	(extern debug (const tree_node &)): New.
      	(extern debug (const tree_node *)): New.
      	(extern debug_verbose (const tree_node &)): New.
      	(extern debug_verbose (const tree_node *)): New.
      	(extern debug_head (const tree_node &)): New.
      	(extern debug_head (const tree_node *)): New.
      	(extern debug_body (const tree_node &)): New.
      	(extern debug_body (const tree_node *)): New.
      	(extern debug (vec<tree, va_gc> &)): New.
      	(extern debug (vec<tree, va_gc> *)): New.
      	* tree-cfg.c
      	(debug (struct loop &)): New.
      	(debug (struct loop *)): New.
      	(debug_verbose (struct loop &)): New.
      	(debug_verbose (struct loop *)): New.
      	* tree-dump.c: Add header dependence.
      	* tree-flow.h
      	(extern debug (struct loop &)): New.
      	(extern debug (struct loop *)): New.
      	(extern debug_verbose (struct loop &)): New.
      	(extern debug_verbose (struct loop *)): New.
      	* tree-data-ref.c
      	(debug (data_reference &)): New.
      	(debug (data_reference *)): New.
      	(debug (vec<data_reference_p> &)): New.
      	(debug (vec<data_reference_p> *)): New.
      	(debug (vec<ddr_p> &)): New.
      	(debug (vec<ddr_p> *)): New.
      	* tree-data-ref.h
      	(extern debug (data_reference &)): New.
      	(extern debug (data_reference *)): New.
      	(extern debug (vec<data_reference_p> &)): New.
      	(extern debug (vec<data_reference_p> *)): New.
      	(extern debug (vec<ddr_p> &)): New.
      	(extern debug (vec<ddr_p> *)): New.
      	* tree-ssa-alias.c
      	(debug (pt_solution &)): New.
      	(debug (pt_solution *)): New.
      	* tree-ssa-alias.h
      	(extern debug (pt_solution &)): New.
      	(extern debug (pt_solution *)): New.
      	* tree-ssa-alias.c
      	(debug (_var_map &)): New.
      	(debug (_var_map *)): New.
      	(debug (tree_live_info_d &)): New.
      	(debug (tree_live_info_d *)): New.
      	* tree-ssa-alias.h
      	(extern debug (_var_map &)): New.
      	(extern debug (_var_map *)): New.
      	(extern debug (tree_live_info_d &)): New.
      	(extern debug (tree_live_info_d *)): New.
      
      Index: gcc/cp/ChangeLog
      
      2013-03-28  Lawrence Crowl  <crowl@google.com>
      
      	* Make-lang.in
      	(CXX_PARSER_H): Add header dependence.
      	* cp-tree.h
      	(extern debug (cp_binding_level &)): New.
      	(extern debug (cp_binding_level *)): New.
      	* name-lookup.h
      	(debug (cp_binding_level &)): New.
      	(debug (cp_binding_level *)): New.
      	* parser.c
      	(debug (cp_parser &)): New.
      	(debug (cp_parser *)): New.
      	(debug (cp_token &)): New.
      	(debug (cp_token *)): New.
      	(debug (vec<cp_token, va_gc> &)): New.
      	(debug (vec<cp_token, va_gc> *)): New.
      	* parser.c: Add header dependence.
      	(extern debug (cp_parser &)): New.
      	(extern debug (cp_parser *)): New.
      	(extern debug (cp_token &)): New.
      	(extern debug (cp_token *)): New.
      	(extern debug (vec<cp_token, va_gc> &)): New.
      	(extern debug (vec<cp_token, va_gc> *)): New.
      
      From-SVN: r197224
      Lawrence Crowl committed
  20. 10 Jan, 2013 1 commit
  21. 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
  22. 30 Oct, 2012 1 commit
    • This patch implements the unification of the *bitmap interfaces as discussed. · f61e445a
      Essentially, we rename ebitmap and sbitmap functions to use the same names
      as the bitmap functions.  This rename works because we can now overload
      on the bitmap type.  Some macros now become inline functions to enable
      that overloading.
      
      The sbitmap non-bool returning bitwise operations have been merged with
      the bool versions.  Sometimes this merge involved modifying the non-bool
      version to compute the bool value, and sometimes modifying bool version to
      add additional work from the non-bool version.  The redundant routines have
      been removed.
      
      The allocation functions have not been renamed, because we often do not
      have an argument on which to overload.  The cardinality functions have not
      been renamed, because they have different parameters, and are thus not
      interchangable.  The iteration functions have not been renamed, because
      they are functionally different.
      
      Tested on x86_64, contrib/config-list.mk testing passed.
      
      
      Index: gcc/ChangeLog
      
      2012-10-29  Lawrence Crowl  <crowl@google.com>
      
      	* sbitmap.h (sbitmap_copy): Rename bitmap_copy.
      	(sbitmap_copy_n): Rename bitmap_copy_n.
      	(sbitmap_equal): Rename bitmap_equal_p.
      	(sbitmap_empty_p): Rename bitmap_empty_p.
      	(sbitmap_range_empty_p): Rename bitmap_range_empty_p.
      	(sbitmap_zero): Rename bitmap_clear.
      	(sbitmap_ones): Rename bitmap_ones.
      	(sbitmap_vector_zero): Rename bitmap_vector_clear.
      	(sbitmap_vector_ones): Rename bitmap_vector_ones.
      	(sbitmap_not): Rename bitmap_not.
      	(sbitmap_a_and_b_cg): Commented out.
      	(sbitmap_a_and_b): Rename bitmap_and.  Add bool return.
      	(sbitmap_difference): Rename bitmap_and_compl.
      	(sbitmap_a_or_b_cg): Commented out.
      	(sbitmap_a_or_b): Rename bitmap_xor.  Add bool return.
      	(sbitmap_a_xor_b_cg): Commented out.
      	(sbitmap_a_xor_b): Rename bitmap_xor.  Add bool return.
      	(sbitmap_a_and_b_or_c_cg): Rename bitmap_and_or.
      	(sbitmap_a_and_b_or_c): Commented out.
      	(sbitmap_a_or_b_and_c_cg): Rename bitmap_or_and.
      	(sbitmap_a_or_b_and_c): Commented out.
      	(sbitmap_union_of_diff_cg): Rename bitmap_ior_and_compl.
      	(sbitmap_union_of_diff): Commented out.
      	(dump_sbitmap): Rename dump_bitmap.
      	(dump_sbitmap_file): Rename dump_bitmap_file.
      	(debug_sbitmap): Rename debug_bitmap.
      	(dump_sbitmap_vector): Rename dump_bitmap_vector.
      	(sbitmap_first_set_bit): Rename bitmap_first_set_bit.
      	(sbitmap_last_set_bit): Rename bitmap_last_set_bit.
      	(sbitmap_a_subset_b_p): Rename bitmap_subset_p.
      	(sbitmap_any_common_bits): Rename bitmap_intersect_p.
      	(#define sbitmap_free): Reimplement as inline function.
      	(#define sbitmap_vector_free): Reimplement as inline function.
      	* bitmap.h (#define bitmap_zero): Remove as redundant.
      	(#define bitmap_empty_p): Reimplement as inline function.
      	(#define dump_bitmap): Reimplement as inline function.
      
      From-SVN: r192969
      Lawrence Crowl committed
  23. 17 Aug, 2012 1 commit
    • re PR middle-end/54146 (Very slow compile with attribute((flatten))) · 3f9b14ff
      	PR middle-end/54146
      	* tree-ssa-loop-im.c (lim_bitmap_obstack): New bitmap_obstack.
      	(memref_free): Don't free the bitmaps individually here.
      	(mem_ref_alloc): Allocate the bitmaps on the new bitmap obstack.
      	(analyze_memory_references): Likewise.
      	(tree_ssa_lim_initialize): Initialize the new bitmap obstack.
      	(tree_ssa_lim_finalize): Release it.
      	* dse.c (dse_bitmap_obstack): New bitmap obstack.
      	(dse_obstack): New obstack.
      	(get_group_info): Allocate the bitmaps on the new bitmap obstack.
      	(dse_step0): Allocate the scratch bitmap on reg_obstack.  Initialize
      	the new bitmap obstack and normal obstack.  Use XNEWVEC for bb_table.
      	(record_store): Allocate regs_set on reg_obstack.
      	(dse_step1): Allocate regs_live on reg_obstack.
      	(dse_step2_init): Allocate offset_map_n and offset_map_p on the new
      	obstack.
      	(dse_step3_scan): Allocate bitmaps on the new bitmap obstack.
      	(dse_step3): Likewise.
      	(dse_confluence_0): Likewise.
      	(dse_confluence_n): Likewise.
      	(dse_transfer_function): Likewise.
      	(dse_step7): Destroy the new obstacks, and everything allocated on
      	them, in one big sweep.
      	(rest_of_handle_dse): Update.
      	* cfgexpand.c (stack_var_bitmap_obstack): New bitmap obstack.
      	(add_stack_var_conflict): Allocate bitmaps on it.
      	(add_scope_conflicts_1): Likewise.
      	(add_scope_conflicts): Likewise.
      	(update_alias_info_with_stack_vars): Likewise.
      	(init_vars_expansion): Move TREE_USED fiddling expand_used_vars.
      	Initialize the new bitmap obstack.
      	(fini_vars_expansion): Release it.
      	(estimated_stack_frame_size): Use init_vars_expansion to set things up
      	and always clean up at the end.
      	(expand_used_vars): Do the TREE_USED trickery here.  Always call
      	fini_vars_expansion.
      	* tree-ssa-live.h (struct tree_live_info_d): Make livein and liveout
      	arrays of bitmap_head to avoid one indirection per bitmap access.
      	(live_on_entry, live_on_exit, live_var_map, live_merge_and_clear,
      	make_live_on_entry): Update.
      	* tree-ssa-live.c (partition_view_bitmap): Don't double-free 'used'.
      	(liveness_bitmap_obstack): New bitmap obstack.
      	(remove_unused_locals): Use it to allocate all bitmaps on.  Update
      	for livein/liveout changes in tree-ssa-live.h.
      	(delete_tree_live_info): Release the bitmap obstack.
      	(loe_visit_block, live_worklist, set_var_live_on_entry,
      	calculate_live_on_exit, dump_live_info): Update.
      	(calculate_live_ranges): Initialize the bitmap.
      	* tree-ssa-ter.c (ter_bitmap_obstack): New bitmap obstack.
      	(new_temp_expr_table): Allocate bitmap on it.
      	(make_dependent_on_partition, add_to_partition_kill_list,
      	add_dependence, process_replaceable): Likewise.
      	(find_replaceable_exprs): Initialize and release the new obstack here.
      	* df-problems.c (df_lr_add_problem): Allocate persistent bitmap
      	for out_of_date_transfer_functions on df_bitmap_obstack.
      	(df_live_add_problem): Likewise.
      	(df_chain_add_problem): Likewise.
      	(df_word_lr_add_problem): Likewise.
      
      From-SVN: r190475
      Steven Bosscher committed
  24. 01 Aug, 2012 1 commit
    • tree-complex.c (init_parameter_lattice_values): Don't call var_ann. · 5f564b8f
      	* tree-complex.c (init_parameter_lattice_values): Don't call var_ann.
      	* tree-dfa.c (struct dfa_stats_d): Remove num_var_anns member.
      	(dump_dfa_stats): Don't dump stats about var anns.
      	(collect_dfa_stats): Don't collect them.
      	(add_referenced_var_1): Don't set var annotation pointers.
      	(remove_referenced_var): Ditto, and only remove it it's in the
      	hash table.
      
      	* tree-flow-inline.h (var_ann): Remove.
      	* tree-flow.h (struct var_ann_d, var_ann_t): Remove.
      
      	* tree-inline.c (remapped_type): Remove.
      	(can_be_nonlocal): Most variable will be considered live here,
      	return false earlier.
      	(remap_decls): Don't call var_ann, all variables will be considered
      	referenced here.
      	(copy_debug_stmt): Ditto, and use is_global_var.
      
      	* tree-into-ssa.c (rewrite_debug_stmt_uses): Use get_current_def to
      	determine if a variable was referred to, not var_ann.
      	* tree-ssa-live.c (remove_unused_scope_block_p): Don't check var_ann.
      	(remove_unused_locals): Ditto.
      	* tree-ssa.c (delete_tree_ssa): Don't free/clear var ann pointers.
      	* tree-tailcall.c (arg_needs_copy_p): Don't check var_ann.
      	* tree.c (copy_node_stat): Don't clear var ann pointer.
      	* tree.h (tree_result_decl, tree_parm_decl, tree_var_decl): Remove
      	ann member.
      	(DECL_VAR_ANN_PTR): Remove.
      
      	* tree-flow.h (struct var_ann_d): Rename used member.
      	(set_is_used): Don't declare.
      	* tree-flow-inline.h (clear_is_used): Remove.
      	(set_is_used, is_used_p): Move to ...
      	* tree-ssa-live.c (set_is_used, is_used_p): ... here, and use
      	on the side bitmap.
      	(usedvars): New bitmap.
      	(dump_scope_block): Don't dump unusedness.
      	(remove_unused_locals): Allocate and free usedvars.
      	* tree-nrv.c (tree_nrv): Don't clear used flags here.
      
      	* tree-flow.h (struct var_ann_d): Remove base_var_processed and
      	base_index members.
      	* tree-ssa-live.h (struct _var_map): Remove basevars member.
      	(VAR_ANN_BASE_INDEX): Remove.
      	* tree-ssa-live.c (var_map_base_init): Use a hash table instead
      	of var annotation to compress index space.  Don't deal with above
      	removed members.
      	(var_map_base_fini): Don't free basevars.
      	(init_var_map): Don't clear basevars.
      
      From-SVN: r190039
      Michael Matz committed
  25. 03 Jan, 2011 1 commit
  26. 09 Jun, 2010 1 commit
    • cgraph.h (varpool_first_static_initializer, [...]): Make checking only when checking enabled. · 06795261
      	* cgraph.h (varpool_first_static_initializer,
      	varpool_next_static_initializer): Make checking only when
      	checking enabled.
      	* tree-vectorizer.h (vinfo_for_stmt): Remove check.
      	(set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
      	gcc_assert to gcc_checking_assert.
      	* tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use, phi_nodes
      	set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
      	op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
      	op_iter_init_phiuse, op_iter_init_phidef, array_ref_contains_indirect_ref,
      	ref_contains_array_ref): Use gcc_checking_assert.
      	* emit-rtl.h (set_first_insn, set_last_insn): Likewise.
      	* tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
      	partition_is_global, live_on_entry, live_on_exit,
      	live_merge_and_clear): Likewise.
      	* system.h (gcc_checking_assert): New macro.
      
      From-SVN: r160489
      Jan Hubicka committed
  27. 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
  28. 27 Apr, 2009 1 commit
    • ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap. · e97809c6
      	* ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
      	(get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
      	* tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
      	(dump_replaceable_exprs): Take a bitmap.
      	* cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
      	array.
      	(expand_gimple_basic_block): Likewise.
      	* tree-ssa-ter.c (struct temp_expr_table_d): Make
      	replaceable_expressions member a bitmap.
      	(free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
      	(mark_replaceable): Likewise.
      	(find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
      	* tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
      
      From-SVN: r146837
      Michael Matz committed
  29. 26 Apr, 2009 2 commits
    • tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED. · 1fec7ed4
      2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
      	* tree-ssa-live.h (register_ssa_partition): Likewise.
      
      From-SVN: r146818
      H.J. Lu committed
    • Expand from SSA. · 4e3825db
      gcc/
              Expand from SSA.
      	* builtins.c (fold_builtin_next_arg): Handle SSA names.
      	* tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
      	* tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
      	SSA names. 
      	(compare_pairs): Swap cost comparison.
      	(coalesce_ssa_name): Don't use change_partition_var.
      	* tree-nrv.c (struct nrv_data): Add modified member.
      	(finalize_nrv_r): Set it.
      	(tree_nrv): Use it to update statements.
      	(pass_nrv): Require PROP_ssa.
      	* tree-mudflap.c (mf_decl_cache_locals,
      	mf_build_check_statement_for): Use make_rename_temp.
      	(pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
      	* alias.c (find_base_decl): Handle SSA names.
      	* emit-rtl (set_reg_attrs_for_parm): Make non-static.
      	(component_ref_for_mem_expr): Don't leak SSA names into RTL.
      	* rtl.h (set_reg_attrs_for_parm): Declare.
      	* tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
      	to "optimized", remove unused locals at finish.
      	(execute_free_datastructures): Make global, call
      	delete_tree_cfg_annotations.
      	(execute_free_cfg_annotations): Don't call
      	delete_tree_cfg_annotations.
      
      	* ssaexpand.h: New file.
      	* expr.c (toplevel): Include ssaexpand.h.
      	(expand_assignment): Handle SSA names the same as register
      	variables.
      	(expand_expr_real_1): Expand SSA names.
      	* cfgexpand.c (toplevel): Include ssaexpand.h.
      	(SA): New global variable.
      	(gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
      	(SSAVAR): New macro.
      	(set_rtl): New helper function.
      	(add_stack_var): Deal with SSA names, use set_rtl.
      	(expand_one_stack_var_at): Likewise.
      	(expand_one_stack_var): Deal with SSA names.
      	(stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
      	before unique numbers.
      	(expand_stack_vars): Use set_rtl.
      	(expand_one_var): Accept SSA names, add asserts for them, feed them
      	to above subroutines.
      	(expand_used_vars): Expand all partitions (without default defs),
      	then only the local decls (ignoring those expanded already).
      	(expand_gimple_cond): Remove edges when jumpif() expands an
      	unconditional jump.
      	(expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
      	or remove abnormal edges.  Ignore insns setting the LHS of a TERed
      	SSA name.
      	(gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
      	members of SA; deal with PARM_DECL partitions here; expand
      	all PHI nodes, free tree datastructures and SA.  Commit instructions
      	on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
      	(pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
      	info and statements at start, collect garbage at finish.
      	* tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
      	(VAR_ANN_PARTITION) Remove.
      	(change_partition_var): Don't declare.
      	(partition_to_var): Always return SSA names.
      	(var_to_partition): Only accept SSA names.
      	(register_ssa_partition): Only check argument.
      	* tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
      	member.
      	(delete_var_map): Don't free it.
      	(var_union): Only accept SSA names, simplify.
      	(partition_view_init): Mark only useful SSA names as used.
      	(partition_view_fini): Only deal with SSA names.
      	(change_partition_var): Remove.
      	(dump_var_map): Use ssa_name instead of partition_to_var member.
      	* tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
      	basic blocks.
      	* tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
      	(struct _elim_graph): New member const_dests; nodes member vector of
      	ints.
      	(set_location_for_edge): New static helper.
      	(create_temp): Remove.
      	(insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
      	insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New
      	functions.
      	(new_elim_graph): Allocate const_dests member.
      	(clean_elim_graph): Truncate const_dests member.
      	(delete_elim_graph): Free const_dests member.
      	(elim_graph_size): Adapt to new type of nodes member.
      	(elim_graph_add_node): Likewise.
      	(eliminate_name): Likewise.
      	(eliminate_build): Don't take basic block argument, deal only with
      	partition numbers, not variables.
      	(get_temp_reg): New static helper.
      	(elim_create): Use it, deal with RTL temporaries instead of trees.
      	(eliminate_phi): Adjust all calls to new signature.
      	(assign_vars, replace_use_variable, replace_def_variable): Remove.
      	(rewrite_trees): Only do checking.
      	(edge_leader, stmt_list, leader_has_match, leader_match): Remove.
      	(same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
      	init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
      	contains_tree_r, MAX_STMTS_IN_LATCH,
      	process_single_block_loop_latch, analyze_edges_for_bb,
      	perform_edge_inserts): Remove.
      	(expand_phi_nodes): New global function.
      	(remove_ssa_form): Take ssaexpand parameter.  Don't call removed
      	functions, initialize new parameter, remember partitions having a
      	default def.
      	(finish_out_of_ssa): New global function.
      	(rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
      	don't reset in_ssa_p here, don't disable TER when mudflap.
      	(pass_del_ssa): Remove.
      	* tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
      	partition members.
      	(execute_free_datastructures): Declare.
      	* Makefile.in (SSAEXPAND_H): New variable.
      	(tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
      	* basic-block.h (commit_one_edge_insertion): Declare.
      	* passes.c (init_optimization_passes): Move pass_nrv and
      	pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
      	pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
      	* cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
      	(redirect_branch_edge): Deal with super block when expanding, split
      	out jump patching itself into ...
      	(patch_jump_insn): ... here, new static helper.
      
      testsuite/
      
      	Expand from SSA.
      	* gcc.dg/tree-ssa/20030728-1.c: Use -rtl-expand-details dump and
      	change regexps.
      	* gcc.target/i386/pr37248-1.c: Modified.
      	* gcc.target/i386/pr37248-3.c: Modified.
      	* gcc.target/i386/pr37248-2.c: Modified.
      	* gnat.dg/aliasing1.adb: Modified.
      	* gnat.dg/pack9.adb: Modified.
      	* gnat.dg/aliasing2.adb: Modified.
      	* gcc.dg/strict-overflow-2.c: Modified.
      	* gcc.dg/autopar/reduc-1char.c: Modified.
      	* gcc.dg/autopar/reduc-2char.c: Modified.
      	* gcc.dg/autopar/reduc-1.c: Modified.
      	* gcc.dg/autopar/reduc-2.c: Modified.
      	* gcc.dg/autopar/reduc-3.c: Modified.
      	* gcc.dg/autopar/reduc-6.c: Modified.
      	* gcc.dg/autopar/reduc-7.c: Modified.
      	* gcc.dg/autopar/reduc-8.c: Modified.
      	* gcc.dg/autopar/reduc-9.c: Modified.
      	* gcc.dg/autopar/reduc-1short.c: Modified.
      	* gcc.dg/autopar/reduc-2short.c: Modified.
      	* gcc.dg/autopar/parallelization-1.c: Modified.
      	* gcc.dg/strict-overflow-4.c: Modified.
      	* gcc.dg/strict-overflow-6.c: Modified.
      	* gcc.dg/gomp/combined-1.c: Modified.
      	* gcc.dg/no-strict-overflow-1.c: Modified.
      	* gcc.dg/no-strict-overflow-3.c: Modified.
      	* gcc.dg/no-strict-overflow-5.c: Modified.
      	* gcc.dg/tree-ssa/reassoc-13.c: Modified.
      	* gcc.dg/tree-ssa/pr18134.c: Modified.
      	* gcc.dg/tree-ssa/20030824-1.c: Modified.
      	* gcc.dg/tree-ssa/vector-2.c: Modified.
      	* gcc.dg/tree-ssa/forwprop-9.c: Modified.
      	* gcc.dg/tree-ssa/loop-21.c: Modified.
      	* gcc.dg/tree-ssa/20030824-2.c: Modified.
      	* gcc.dg/tree-ssa/vector-3.c: Modified.
      	* gcc.dg/tree-ssa/asm-3.c: Modified.
      	* gcc.dg/tree-ssa/pr23294.c: Modified.
      	* gcc.dg/tree-ssa/loop-22.c: Modified.
      	* gcc.dg/tree-ssa/loop-15.c: Modified.
      	* gcc.dg/tree-ssa/prefetch-4.c: Modified.
      	* gcc.dg/tree-ssa/pr22051-1.c: Modified.
      	* gcc.dg/tree-ssa/pr20139.c: Modified.
      	* gcc.dg/tree-ssa/scev-cast.c: Modified.
      	* gcc.dg/tree-ssa/pr22051-2.c: Modified.
      	* gcc.dg/tree-ssa/reassoc-1.c: Modified.
      	* gcc.dg/tree-ssa/loop-5.c: Modified.
      	* gcc.dg/tree-ssa/pr19431.c: Modified.
      	* gcc.dg/tree-ssa/pr32044.c: Modified.
      	* gcc.dg/tree-ssa/prefetch-7.c: Modified.
      	* gcc.dg/tree-ssa/loop-19.c: Modified.
      	* gcc.dg/tree-ssa/loop-28.c: Modified.
      	* gcc.dg/tree-ssa/ssa-pre-15.c: Modified.
      	* gcc.dg/tree-ssa/divide-1.c: Modified.
      	* gcc.dg/tree-ssa/inline-1.c: Modified.
      	* gcc.dg/tree-ssa/divide-3.c: Modified.
      	* gcc.dg/tree-ssa/pr30978.c: Modified.
      	* gcc.dg/tree-ssa/alias-6.c: Modified.
      	* gcc.dg/tree-ssa/divide-4.c: Modified.
      	* gcc.dg/tree-ssa/alias-11.c: Modified.
      	* gcc.dg/no-strict-overflow-7.c: Modified.
      	* gcc.dg/strict-overflow-1.c: Modified.
      	* gcc.dg/pr15784-4.c: Modified.
      	* gcc.dg/pr34263.c: Modified.
      	* gcc.dg/strict-overflow-3.c: Modified.
      	* gcc.dg/tree-prof/stringop-1.c: Modified.
      	* gcc.dg/tree-prof/val-prof-1.c: Modified.
      	* gcc.dg/tree-prof/val-prof-2.c: Modified.
      	* gcc.dg/tree-prof/val-prof-3.c: Modified.
      	* gcc.dg/tree-prof/val-prof-4.c: Modified.
      	* gcc.dg/no-strict-overflow-2.c: Modified.
      	* gcc.dg/no-strict-overflow-4.c: Modified.
      	* gcc.dg/no-strict-overflow-6.c: Modified.
      	* g++.dg/tree-ssa/pr27090.C: Modified.
      	* g++.dg/tree-ssa/tmmti-2.C: Modified.
      	* g++.dg/tree-ssa/ptrmemfield.C: Modified.
      	* g++.dg/tree-ssa/pr19807.C: Modified.
      	* g++.dg/opt/pr30965.C: Modified.
      	* g++.dg/init/new17.C: Modified.
      	* gfortran.dg/whole_file_6.f90: Modified.
      	* gfortran.dg/whole_file_5.f90: Modified.
      	* gfortran.dg/reassoc_1.f90: Modified.
      	* gfortran.dg/reassoc_3.f90: Modified.
      
      From-SVN: r146817
      Michael Matz committed
  30. 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
  31. 06 Jun, 2008 1 commit
    • cgraph.c: Fix typos in comments. · fa10beec
      gcc/
      	* cgraph.c: Fix typos in comments.
      	(cgraph_availability_names): Fix string typo.
      	* fold-const.c: Fix typos in comments.
      	(fold_binary): Fix typo in warning.
      	* genautomata.c: Fix typos in comments.
      	(check_presence_pattern_sets): Fix typo in local variable.
      	(output_description): Fix typo in output.
      	* ggc-zone.c (ggc_pch_finish): Fix typo in error message.
      	* hwint.h: Likewise.
      	* matrix-reorg.c (check_allocation_function): Likewise.
      	* omega.c (smooth_weird_equations): Likewise.
      	* auto-inc-dec.c: Fix typos in comments.
      	* bb-reorder.c: Likewise.
      	* builtins.c: Likewise.
      	* c-common.c: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* coverage.c: Likewise.
      	* dbxout.c: Likewise.
      	* df-byte-scan.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dfp.c: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* dse.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* gcc.c: Likewise.
      	* gcov-io.c: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genattrtab.c: Likewise.
      	* ggc-page.c: Likewise.
      	* gimplify.c: Likewise.
      	* gthr-lynx.h: Likewise.
      	* haifa-sched.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* mips-tfile.c: Likewise.
      	* mkmap-flat.awk: Likewise.
      	* mkmap-symver.awk: Likewise.
      	* modulo-sched.c: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* opts.c: Likewise.
      	* passes.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* pretty-print.h: Likewise.
      	* profile.c: Likewise.
      	* protoize.c: Likewise.
      	* ra-conflict.c: Likewise.
      	* real.c: Likewise.
      	* recog.c: Likewise.
      	* regclass.c: Likewise.
      	* regs.h: Likewise.
      	* reload.c: Likewise.
      	* rtl-error.c: Likewise.
      	* rtlanal.c: Likewise.
      	* scan.h: Likewise.
      	* sched-rgn.c: Likewise.
      	* see.c: Likewise.
      	* stmt.c: Likewise.
      	* target.h: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-alias-warnings.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-vect-analyze.c: Likewise.
      	* tree-vect-transform.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vn.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tree.def: Likewise.
      	* tree.h: Likewise.
      	* unwind-dw2-fde.c: Likewise.
      	* unwind.inc: Likewise.
      	* value-prof.c: Likewise.
      	* vmsdbgout.c: Likewise.
      
      From-SVN: r136425
      Ralf Wildenhues committed
  32. 26 Jul, 2007 1 commit
  33. 03 Feb, 2007 1 commit
    • c-decl.c, [...]: Fix comment typos. · 9f5ed61a
      	* c-decl.c, config/avr/avr.c, config/avr/avr.h,
      	config/m68k/m68k.c, config/m68k/netbsd-elf.h,
      	config/mn10300/mn10300.c, config/pdp11/pdp11.h,
      	config/rs6000/cell.md, config/rs6000/darwin.h,
      	config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
      	config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
      	jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
      	tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
      	typos.  Follow spelling conventions.
      	* doc/invoke.texi: Follow spelling conventions.
      
      From-SVN: r121546
      Kazu Hirata committed
  34. 22 Dec, 2006 1 commit
    • cgraphunit.c, [...]: Fix comment typos. · 2e226e66
      	* cgraphunit.c, config/i386/i386.c, config/ia64/ia64.c, cse.c,
      	output.h, toplev.c, tree-affine.h, tree-flow.h,
      	tree-ssa-alias.c, tree-ssa-coalesce.c, tree-ssa-live.c,
      	tree-ssa-live.h, tree-ssa-operands.c, tree-ssa-ter.c,
      	tree-vrp.c, varpool.c: Fix comment typos.
      
      From-SVN: r120137
      Kazu Hirata committed
  35. 10 Dec, 2006 1 commit
    • New out of ssa Coalescer. · 7290d709
      2006-12-10  Andrew MacLeod  <amacleod@redhat.com>
      
      	* common.opt (-ftree-lrs): Remove live range splitting option.
      	* makefile.in: Add tree-ssa-coalesce.o and reduce header dependancies.
      	* opts.c (decode_options): Remove flag_tree_live_range_split.
      	* tree-flow.h (struct var_ann_d): Rename fields from root_ to base_.
      	* tree-flow-inline.h (single_imm_use_p): New.  Check for single use.
      	* tree-outof-ssa.c: Remove header files which aren't needed.
      	(SSANORM_*): Remove flags.
      	(print_exprs_edge, coalesce_abnormal_edges, coalesce_phi_operands, 
      	coalesce_result_decls_and_copies, coalesce_asm_operands): Remove.
      	(coalesce_ssa_name): Move to tree-ssa-coalesce.c.
      	(assign_vars): Use Basevar instead of root_var structure.
      	(replace_def_variable): Dont do anything if def is replaceable.
      	(remove_ssa_form): Integrate functional changes.
      	(rewrite_out_of_ssa): Remove live-range_split option.
      	* tree-ssa-coalesce.c: New File for ssa-name coalescing.
      	(coalesce_cost): Calculate the cost of a coalesce.
      	(coalesce_cost_bb): Calculate the coalesce cost within a BB.
      	(coalesce_cost_edge): Calculate the coalesce cost on an edge.
      	(pop_cost_one_pair): Remove the best coalesce with cost 1 from the list.
      	(pop_best_coalesce): Remove the best coalesce from the list.
      	(coalesce_pair_map_hash): Calculate coalesce pair hash.
      	(coalesce_pair_map_eq): Compare 2 coalesce pairs for hash function.
      	(create_coalesce_list): Create a coalesce list object.
      	(delete_coalesce_list): Free a coalesce list object.
      	(find_coalesce_pair): Find matching pair in the coalesce list.
      	(add_cost_one_coalesce): Add a coalesce to the "cost one" list.
      	(add_coalesce): Add a coalesce to the coalesce list.
      	(compare_pairs): Comparision function to determine pair sorted order.
      	(num_coalesce_pairs): Number of coalesced pairs.
      	(first_coalesce_pair, end_coalesce_pair_p, next_coalesce_pair):
      	Coalesce pair iterator functions.
      	(sort_coalesce_list): Sort coalesce pairs in order of expense.
      	(dump_coalesce_list): Show coalesce list.
      	(ssa_conflicts_new): Create an SSA conflict graph.
      	(ssa_conflicts_delete): Delete an SSA conflict graph.
      	(ssa_conflicts_test_p): Test for conflicts.
      	(ssa_conflicts_add_one): Add a single conflict.
      	(ssa_conflicts_add): Add a conflict pair.
      	(ssa_conflicts_merge): Merge conflicts.
      	(struct live_track_d): Struct for tracking live partitions.
      	(new_live_track): Create new live_track object.
      	(delete_live_track): Delete a live_track object.
      	(live_track_remove_partition): Remove a partition from the live list.
      	(live_track_add_partition): Add a partition from the live list.
      	(live_track_clear_var): Take VAR from the live list.
      	(live_track_live_p): Is var live?
      	(live_track_process_use): Make var come alive.
      	(live_track_process_def): Make var go dead, add conflicts.
      	(live_track_init): Initialize to a live on exit set.
      	(live_track_clear_base_vars): Clear live partitions.
      	(build_ssa_conflict_graph): Build a conflict graph.
      	(print_exprs): Common debug output routine.
      	(abnormal_corrupt): Output info about a failed coalesce across an
      	abnormal edge.
      	(fail_abnormal_edge_coalesce): Output info about a failed MUST_COALESCE.
      	(create_outofssa_var_map): Create a var map and coalesce list.
      	(attempt_coalesce): Coalesce a pair.
      	(coalesce_partitions): Coalesce all pairs in a coalesce list.
      	(coalesce_ssa_name): Entry point.  Determine what ssa_names to coalesce.
      	* tree-ssa-live.c: Remove header files which aren't needed.
      	(var_map_base_init): New.  Initialize a basevar list.
      	(var_map_base_fini): New.  Finish a basevar list.
      	(init_var_map): Initialize new fields.
      	(delete_var_map): Free new fields.
      	(var_union): Use renamed fields.
      	(compact_var_map): Remove.
      	(partition_to_view_init): Use renamed fields, change order of an if.
      	(partition_view_fini): Use renamed fields.
      	(partition_view_normal): Create basevar list if requested.
      	(partition_view_bitmap): Create a view based on a bitmap of partitions.
      	(change_partition_var): Use renamed fields.
      	(create_ssa_var_map): Remove.
      	(tpa_init, tpa_remove_partition, tpa_delete, tpa_compact,
      	root_var_init): Remove.
      	(partition_pair_map_hash, partition_pair_map_eq, create_coalesce_list,
      	delete_coalesce_list, find_partition_pair, coalesce_cost, add_coalesce,
      	compare_pairs, num_coalesce_pairs, first_partition_pair,
      	end_partition_pair_p, next_partition_pair, sort_coalesce_list,
      	pop_best_coalesce, add_conflicts_if_valid, set_if_valid,
      	build_tree_conflict_graph, coalesce_tpa_members, dump_coalesce_list,
      	tpa_dump): Moved to tree-ssa-coalesce.c and/or renamed there.
      	(dump_var_map): Use renamed fields.
      	* tree-ssa-live.h (struct  _var_map): Modify fields.
      	(partition_to_var, version_to_var, var_to_partition): Use renamed 
      	fields.
      	(basevar_index): New.  Index of the base variable of a partition.
      	(num_basevars): New.  Number of unique base variables in partition map.
      	(register_ssa_partition): Use renamed fields.
      	(struct tree_partition_associator_d): Remove.
      	(tpa_num_trees, tpa_tree, tpa_first_partition, tpa_next_partition,
      	tpa_find_tree, tpa_decompact, root_var_init, root_var_num,
      	root_var, root_var_first_partition, root_var_next_partition,
      	root_var_dump, root_var_delete, root_var_remove_partition, 
      	root_var_find, root_var_compact, root_var_decompact): Remove.
      	(struct partition_pair, struct coalesce_list_d): Moved to 
      	tree-ssa-coalesce.c
      	* tree-ssa-ter.c: Remove header files which aren't needed.
      
      From-SVN: r119711
      Andrew MacLeod committed
  36. 08 Dec, 2006 1 commit
    • New TER code. · 00509c04
      2006-12-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* Makefile.in: Add new file tree-ssa-ter.c.
      	* tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table, 
      	free_temp_expr_table, add_value_to_version_list, 
      	add_value_to_partition_list, remove_value_from_partition_list, 
      	add_dependence, check_replaceable, finish_expr, mark_replaceable, 
      	kill_expr, kill_virtual_exprs, find_replaceable_in_bb, 
      	find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c.
      	* tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add
      	prototypes.
      	* tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c.
      	(struct value_expr_d): Remove.
      	(struct temp_expr_table_d): Rename fields, add explicit vector of
      	replaceable expressions instead of sharing. Change value_expr_p's to 
      	bitmap.  Delete free_list.
      	(new_temp_expr_table): Rename fields, count number of ssa_names in
      	each partition.
      	(free_temp_expr_table): Rename field, free new fields.
      	(new_value_expr, free_value_expr, find_value_in_list, add_value_to_list,
      	add_info_to_list, remove_value_from_list): Delete.
      	(version_to_be_replaced_p): New. Is an ssa-name replaceable?
      	(make_dependent_on_partition): New. Set bit in version list, allocating
      	a bitmap if need be.
      	(add_to_partition_kill_list): New.  Set bit in the partition list,
      	allocating a bitmap if need be.
      	(remove_from_partition_kill_list): New.  Remove a bit from the
      	partition list, free the bitmap if it is empty.
      	(add_dependence): Use renamed field, cleanup. Don't add a dependence
      	on partitions with only one member.
      	(is_replaceable_p): New.  Split out replaceability check from 
      	check_replaceable.
      	(process_replaceable): New. Replacement code split from 
      	check_replaceable.
      	(check_replaceable): Removed.
      	(finished_with_expr): Renamed from finish_expr.
      	(kill_expr): Use renamed fields. Less parameters.
      	(kill_virtual_exprs): Less parameters.
      	(mark_replaceable): Use renamed fields.
      	(find_replaceable_in_bb): Use renamed fields, cleanup.
      	(find_replaceable_exprs): Use renamed routines, cleanup.
      	(dump_replaceable_exprs): don;t go past end of ssa_names list.
      	(debug_ter): New.  Debug routine to dump state.
      
      From-SVN: r119657
      Andrew MacLeod committed
  37. 04 Dec, 2006 1 commit
    • Switch live on entry to a per block basis from per variable. · 32ace6e2
      	* tree-outof-ssa.c (coalesce_ssa_name): Use calculate_live_ranges.
      	* tree-ssa-live.c (new_tree_live_info, delete_tree_live_info): Update.
      	(add_livein_if_notdef): Delete.
      	(loe_visit_block): New.  Propogate live on entry info for a block into
      	each predecessor.  If it changes, make sure it is visited again.
      	(live_worklist): Visit every block and update the live on entry info 
      	for preds.  Iterate over any that changed.
      	(set_var_live_on_entry): Populate the live on entry blocks with bits
      	based on the immediate uses of a var.
      	(calculate_live_on_entry): Remove.
      	(calculate_live_on_exit): Calculate live on exit based on the newly
      	oriented live on entry bits.
      	(calculate_live_ranges): Build live on entry and exit vectors.
      	(dump_live_info): Use new orientation of live on entry bitmaps.
      	(verify_live_on_entry): New.  Split out verification code from old
      	calculate_live_on_entry routine.
      	* tree-ssa-live.h (struct tree_live_info_d): Add Working stack.
      	(live_entry_blocks): Rename to live_on_entry and return bitmap for a
      	basic_block instead of for a partition.
      	(live_merge_and_clear): Add asserts.
      	(make_live_on_entry): Set partition bit in basic block vector.
      
      From-SVN: r119495
      Andrew MacLeod committed
  38. 01 Dec, 2006 1 commit
    • common.opt (ftree-combine-temps): Remove. · 7c6a62dd
      	* common.opt (ftree-combine-temps): Remove.
      	* tree-outof-ssa.c (SSANORM_COMBINE_TEMPS): Remove.
      	(coalesce_ssa_name): Don't check for combine-temps.
      	(coalesce_vars): Remove.
      	(check_replaceable): Use num_imm_uses.
      	(remove_ssa_form, insert_backedge_copies, rewrite_out_of_ssa): Don't 
      	check for combine-temps.
      	(rewrite_out_of_ssa): Never create a ref_count in the var_map.
      	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Change parms
      	to register_ssa_partition calls.
      	* tree-ssa-live.c (register_ssa_partition): Remove prototype.
      	(init_var_map, delete_var_map): remove refernces to ref_count.
      	(create_ssa_var_map): Never calculate a ref count.
      	(type_var_init): Remove.
      	* tree-ssa-live.h (typedef struct _var_map): Remove ref_count.
      	(SSA_VAR_MAP_REF_COUNT): Delete.
      	(create_ssa_var_map): Change Prototype to have no parameters.
      	(version_ref_count): Delete.
      	(register_ssa_partition): Remove 'is_use' paramater and don't set the
      	ref_count vector.
      	(type_var_num, type_var, type_var_first_partition,
      	type_var_next_partition, type_var_dump, type_var_delete,
      	type_var_remove_partition, type_var_find, type_var_compact,
      	type_var_decompact): Remove.
      
      	* gcc.dg/max-1.c: Remove reference to -fno-tree-lrs option.
      
      From-SVN: r119409
      Andrew MacLeod committed
  39. 30 Nov, 2006 1 commit
    • Implement coalesce list with hash table instead of linked list. · 9fa2efcd
      	* tree-ssa-live.c (create_coalesce_list): Create a hash table.
      	(COALESCE_HASH_FN): New.  Define hash function.
      	(partition_pair_map_hash): New.  Hash value for a partition pair.
      	(partition_pair_map_eq): New.  Equality for hash pairs.
      	(create_coalesce_list): Create hash table.
      	(delete_coalesce_list): Free hash table.
      	(find_partition_pair): Find/create pairs in hash table.
      	(compare_pairs):  Sort pairs in ascending order now.
      	(num_coalesce_pairs): New.  Number of pairs in hash table.
      	(struct partition_pair_iterator): Iterator struct for pair table.
      	(first_partition_pair): Iterator function for first pair.
      	(end_partition_pair_p): Iterator function for end of iteration.
      	(next_partition_pair): Iterator function for next pair.
      	(FOR_EACH_PARTITION_PAIR): Macro for iterating over pairs.
      	(sort_coalesce_list): Sort pairs from hash table into an array.
      	(pop_best_coalesce): Take pairs from the array.
      	(dump_coalesce_list): Update to use hash table or sorted array.
      	* tree-ssa-live.h (struct partition_pair_d): Remove next field.
      	(struct coalesce_list_d): Add hash table related fields.
      
      From-SVN: r119378
      Andrew MacLeod committed