1. 03 May, 2005 1 commit
    • dj's avatar
      * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery · efb9d9ee
      dj authored
      decide if the warning will be printed.
      * calls.c (expand_call): Likewise.
      * function.c (init-function_start): Likewise.
      
      * common.opt (-fdiagnostics-show-option): New.
      * opts.c (option_enabled): Accept the option index instead of a
      pointer to the option descriptor.
      * opts.h (option_enabled): Likewise.
      * toplev.c (print_switch_values): Pass option index, not option
      descriptor.
      * diagnostic.h (diagnostic_info): Add option_index.
      * diagnostic.c: Include opts.h.
      (diagnostic_set_info): Initialize option_index.
      (diagnostic_report_diagnostic): Amend option name if appropriate.
      (warning): Check to see if the specified warning is enabled.
      Store option index.
      * doc/invoke.texi (-fdiagnostics-show-options): Document.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99169 138bc75d-0d04-0410-961f-82ee72b054a4
      efb9d9ee
  2. 27 Apr, 2005 1 commit
    • ctice's avatar
      Correct fixes for various hot/cold partitioning concerns. · 4d0e931f
      ctice authored
      2005-04-27  Caroline Tice  <ctice@apple.com>
      
              * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
              Remove targetm.have_named_sections test.
              (fix_edges_for_rarely_executed_code): Likewise.
              (insert_section_boundary_note): Likewise.
              (reorder_basic_blocks): Check partitioning flag before calling
              verify_hot_cold_block_grouping.
              * dbxout.c (dbxout_function_end): Get hot/cold section labels from
              the function struct rather than global variables.
              * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
              (COLD_END_LABEL): Likewise
              (cold_text_section_label): New static global variable.
              (cold_end_label): Likewise.
              (dwarf2out_switch_text_section): Get hot/cold section labels from
              the function struct rather than global variables; test to make sure
              cfun is defined.
              (output_aranges): Use cold_text_section_label and cold_end_label;
              check partitioning flag before putting out delta.
              (output_ranges): Remove incorrect code attempting to use
              hot/cold labels.
              (output_line_info): Get cold section label from function struct; test
              to make sure cfun is defined.
              (add_location_or_const_value_attribute): Likewise.
              (dwarf2out_var_location): Likewise.
              (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
              write out cold_text_section_label if partition flag is set.
              (dwarf2out_finish): Write out cold_end_label if partition flag is set;
              * function.h (struct function): Add new fields to point to hot/cold
              section labels: hot_section_label, cold_section_label,
              hot_section_end_label and cold_section_end_label; also add new field
              for cold text section name, unlikely_text_section_name.
              * opts.c (decode_options): Turn off partitioning flag if
              !targetm.have_named_sections.
              * output.h (hot_section_label): Remove.
              (hot_section_end_label): Remove.
              (cold_section_end_label): Remove.
              (unlikely_section_label): Remove.
              (unlikely_text_section_name): Remove.
              * passes.c (rest_of_handle_final):  Remove extra blank line.
              * varasm.c (unlikely_section_label): Remove.
              (hot_section_label): Remove.
              (hot_section_end_label): Remove.
              (cold_section_end_label): Remove.
              (unlikely_text_section_name):  Remove.
              (initialize_cold_section_name): Modify to call
              targetm.strip_name_encoding; to store cold section name in current
              function struct, if it exists; and to only use the decl_section_name
              if flag_named_sections is true.
              (unlikely_text_section): Modify to get section name out of current
              function struct, if there is one; otherwise build it from
              UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
              (in_unlikely_text_section): Likewise.
              (named_section): Modify to get/put cold section name in current function
              struct, if there is one.
              (function_section):  Change 'bool unlikely' to 'int reloc'; check
              targetm.have_named_sections before calling named_section.
              (current_function_section): Likewise.
              (assemble_start_function): Modify to get/put unlikely_text_section_name
              in current function struct; modify to get hot/cold section labels
              from function struct; initialize labels using
              ASM_GENERATE_INTERNAL_LABEL;
              test partitioning flag before writing out hot section label.
              (assemble_end_function): Test partitioning flag before writing out
              hot/cold section labels.
              (default_section_type_flags_1):  Get cold text section name from
              function struct if there is one; Set flags correctly for
              cold text section if there is not a current function struct.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98885 138bc75d-0d04-0410-961f-82ee72b054a4
      4d0e931f
  3. 23 Apr, 2005 1 commit
    • dj's avatar
      * diagnostic.c (warning): Accept parameter to classify warning option. · c3ceba8e
      dj authored
      (warning0): New, for when a pointer to an error() like function is needed.
      * errors.c (warning): Likewise.
      * errors.h (warning, warning0): Adjust prototypes.
      * toplev.h (warning, warning0): Likewise.
      
      * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
      c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
      c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
      fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
      genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
      reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
      tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
      tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
      
      * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
      config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
      config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
      config/darwin.c, config/darwin.h, config/h8300/h8300.c,
      config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
      config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
      config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
      config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
      config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
      config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
      config/rs6000/aix52.h, config/rs6000/darwin.h,
      config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
      config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
      config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
      config/stormy16/stormy16.c, config/v850/v850-c.c,
      config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
      callers.
      
      * ada/misc.c: Adjust warning() callers.
      
      * cp/call.c, cp/class.c, cp/cvt.c, cp/decl.c, cp/decl2.c,
      cp/except.c, cp/friend.c, cp/init.c, cp/lex.c, cp/mangle.c,
      cp/method.c, cp/name-lookup.c, cp/parser.c, cp/repo.c, cp/rtti.c,
      cp/tree.c, cp/typeck.c, cp/typeck2.c: Adjust warning() callers.
      
      * fortran/trans-decl.c: Adjust warning() callers.
      
      * java/class.c, java/decl.c, java/expr.c, java/jcf-io.c,
      java/jcf-parse.c, java/jv-scan.c, java/parse.y: Adjust warning()
      callers.
      
      * objc/objc-act.c: Adjust warning() callers.
      
      * treelang/parse.y: Adjust warning() callers.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98633 138bc75d-0d04-0410-961f-82ee72b054a4
      c3ceba8e
  4. 21 Apr, 2005 1 commit
    • nathan's avatar
      * lambda.h (lambda_vector_min_nz): Likewise. · 1fa3a8f6
      nathan authored
      	* langhooks.h (struct lang_hooks_for_types,
      	struct lang_hooks): Likewise.
      	* output.h (assemble_integer, this_is_asm_operands): Likewise.
      	* tree.h: Likewise.
      	* vec.h: Likewise.
      	* tree-flow-inline.h (relink_imm_use): Use gcc_assert.
      
      	* optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
      	comments to avoid 'abort'.  Use gcc_assert as necessary.
      	* opts.c (common_handle_option): Likewise.
      	* pretty-print.c (pp_base_format_text): Likewise.
      	* print-rtl.c (print_rtx): Likewise.
      	* read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
      	* regmove.c (try_auto_increment): Likewise.
      	* reload.c (find_valid_class, find_reloads_toplev,
      	find_equiv_reg): Likewise.
      	* reload1.c (reload, forget_old_reloads_1, function_invariant_p,
      	merge_assigned_reloads): Likewise.
      	* tree-inline.c (inline_forbidden_p_1,
      	estimate_num_insns_1): Likewise.
      	* tree-optimize.c (execute_todo): Likewise.
      	* tree-outof-ssa.c (eliminate_phi): Likewise.
      	* tree-ssa-alias.c (add_pointed_to_expr): Likewise.
      	* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
      	* tree-ssa-operands.c (parse_ssa_operands,
      	get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
      	* tree-ssa-pre.c (find_or_generate_expression): Likewise.
      	* tree-ssanames.c (release_ssa_name): Likewise.
      	* tree.c (int_bit_position, int_byte_position, tree_low_cst,
      	walk_tree): Likewise.
      
      	* tree-ssa-operands.c (verify_abort): Fold into ..
      	(verify_imm_links): ... here.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98519 138bc75d-0d04-0410-961f-82ee72b054a4
      1fa3a8f6
  5. 12 Apr, 2005 1 commit
  6. 09 Apr, 2005 2 commits
    • ctice's avatar
      Fix problems with labels with hot/cold partitioning. · 32fb59ab
      ctice authored
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97928 138bc75d-0d04-0410-961f-82ee72b054a4
      32fb59ab
    • dnovillo's avatar
      · 88dbf20f
      dnovillo authored
      	Merge from tree-cleanup-branch: VRP, store CCP, store
      	    copy-prop, incremental SSA updating of FUD chains and
      	    newly exposed symbols.
      
      	* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
      	(OBJS-common): Add tree-vrp.o.
      	(tree-vrp.o): New rule.
      	* basic-block.h (nearest_common_dominator_for_set): Declare.
      	* common.opt (ftree-store-ccp): New flag.
      	(ftree-copy-prop): New flag.
      	(ftree-vrp): New flag.
      	(ftree-store-copy-prop): New flag.
      	* dominance.c (nearest_common_dominator_for_set): New.
      	* domwalk.c (walk_dominator_tree): Only traverse
      	statements in blocks marked in walk_data->interesting_blocks.
      	* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
      	* fold-const.c (fold): Handle ASSERT_EXPR.
      	* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
      	Set flag_tree_store_ccp, flag_tree_store_copy_prop and
      	flag_tree_vrp at -O2.
      	* timevar.def (TV_TREE_VRP): Define.
      	(TV_TREE_COPY_PROP): Define.
      	(TV_TREE_STORE_COPY_PROP): Define.
      	(TV_TREE_SSA_INCREMENTAL): Define.
      	(TV_TREE_STORE_CCP): Define.
      	* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
      	to kill_redundant_phi_nodes from comment.
      	(verify_expr): Handle ASSERT_EXPR.
      	* tree-dfa.c (mark_new_vars_to_rename): Remove second
      	argument.  Update all users.
      	(mark_call_clobbered_vars_to_rename): Remove.  Update all
      	users.
      	* tree-flow-inline.h (unmodifiable_var_p): New.
      	* tree-flow.h (enum value_range_type): Declare.
      	(struct value_range_def): Declare.
      	(value_range): Declare.
      	(remove_all_phi_nodes_for): Remove.  Update all users.
      	(find_phi_node_for): Declare.
      	(add_type_alias): Declare.
      	(count_uses_and_derefs): Declare.
      	(kill_redundant_phi_nodes): Remove.
      	(rewrite_into_ssa): Remove.
      	(rewrite_def_def_chains): Remove.
      	(update_ssa, register_new_name_mapping, create_new_def_for,
      	need_ssa_update_p, name_registered_for_update_p,
      	release_ssa_name_after_update_ssa, dump_repl_tbl,
      	debug_repl_tbl, dump_names_replaced_by,
      	debug_names_replaced_by, mark_sym_for_renaming,
      	mark_set_for_renaming, get_current_def, set_current_def,
      	get_value_range, dump_value_range, debug_value_range,
      	dump_all_value_ranges, debug_all_value_ranges,
      	expr_computes_nonzero, loop_depth_of_name,
      	unmodifiable_var_p): Declare.
      	* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
      	ASSERT_EXPR.
      	* tree-into-ssa.c (block_defs_stack): Update comment.
      	(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
      	syms_to_rename, names_to_release, repl_tbl,
      	need_to_initialize_update_ssa_p, need_to_update_vops_p,
      	need_to_replace_names_p): New locals.
      	(NAME_SETS_GROWTH_FACTOR): Define.
      	(struct repl_map_d): Declare.
      	(struct mark_def_sites_global_data): Add field
      	interesting_blocks.
      	(enum rewrite_mode): Declare.
      	(REGISTER_DEFS_IN_THIS_STMT): Define.
      	(compute_global_livein): Use last_basic_block instead of
      	n_basic_blocks.
      	(set_def_block): Remove last argument.  Update all callers.
      	(prepare_use_operand_for_rename): Remove.  Update all callers.
      	(prepare_def_operand_for_rename): Remove.  Update all callers.
      	(symbol_marked_for_renaming): New.
      	(is_old_name): New.
      	(is_new_name): New.
      	(repl_map_hash): New.
      	(repl_map_eq): New.
      	(repl_map_free): New.
      	(names_replaced_by): New.
      	(add_to_repl_tbl): New.
      	(add_new_name_mapping): New.
      	(mark_def_sites): Assume that all the operands in the
      	statement are in normal form.
      	(find_idf): Assert that the block in the stack is valid.
      	(get_default_def_for): New.
      	(insert_phi_nodes_for): Add new argument 'update_p'.
      	Add documentation.
      	If update_p is true, add a new mapping between the LHS of
      	each new PHI and the name that it replaces.
      	(insert_phi_nodes_1): Only call find_idf if needed.
      	(get_reaching_def): Call get_default_def_for.
      	(rewrite_operand): Remove.
      	(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
      	and REWRITE_THIS_STMT are false.
      	Assume that all the operands in the statement are in
      	normal form.
      	(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
      	(rewrite_virtual_phi_arguments): Remove.
      	(invalidate_name_tags): Remove.
      	(register_new_update_single, register_new_update_set,
      	rewrite_update_init_block, replace_use,
      	rewrite_update_fini_block, rewrite_update_stmt,
      	rewrite_update_phi_arguments): New.
      	rewrite_blocks): Remove argument 'fix_virtual_phis'.
      	Add arguments 'entry', 'what' and 'blocks'.
      	Initialize the dominator walker according to 'what' and
      	'blocks'.
      	Start the dominator walk at 'entry'.
      	(mark_def_site_blocks): Add argument 'interesting_blocks'.
      	Use it to configure the dominator walker.
      	(rewrite_into_ssa): Remove argument 'all'.
      	Make internal.
      	(rewrite_all_into_ssa): Remove.
      	(rewrite_def_def_chains): Remove.
      	(mark_def_interesting, mark_use_interesting,
      	prepare_phi_args_for_update, prepare_block_for_update,
      	prepare_def_site_for, prepare_def_sites,
      	dump_names_replaced_by, debug_names_replaced_by,
      	dump_repl_tbl, debug_repl_tbl, init_update_ssa,
      	delete_update_ssa, create_new_def_for,
      	register_new_name_mapping, mark_sym_for_renaming,
      	mark_set_for_renaming, need_ssa_update_p,
      	name_registered_for_update_p, ssa_names_to_replace,
      	release_ssa_name_after_update_ssa,
      	insert_updated_phi_nodes_for, update_ssa): New.
      	* tree-loop-linear.c (linear_transform_loops): Call
      	update_ssa instead of rewrite_into_ssa.
      	* tree-optimize.c (vars_to_rename): Remove.
      	Update all users.
      	(init_tree_optimization_passes): Replace
      	pass_redundant_phi with pass_copy_prop.
      	Add pass_vrp.
      	Replace pass_ccp with pass_store_ccp.
      	Add pass_store_copy_prop after pass_store_ccp.
      	(execute_todo): If the TODO_ flags don't include updating
      	the SSA form, assert that it does not need to be updated.
      	Call update_ssa instead of rewrite_into_ssa and
      	rewrite_def_def_chains.
      	If TODO_verify_loops is set, call verify_loop_closed_ssa.
      	(tree_rest_of_compilation):
      	* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
      	TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
      	TODO_cleanup_cfg): Renumber.
      	(TODO_verify_loops, TODO_update_ssa,
      	TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
      	TODO_update_ssa_only_virtuals): Define.
      	(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
      	Declare.
      	* tree-phinodes.c (make_phi_node): Update documentation.
      	(remove_all_phi_nodes_for): Remove.
      	(find_phi_node_for): New.
      	* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
      	* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
      	(interpret_rhs_modify_expr): Likewise.
      	* tree-sra.c (decide_instantiations): Mark all symbols in
      	SRA_CANDIDATES for renaming.
      	(mark_all_v_defs_1): Rename from mark_all_v_defs.
      	(mark_all_v_defs): New function.  Update all users to call it
      	with the whole list of scalarized statements, not just the
      	first one.
      	* tree-ssa-alias.c (count_ptr_derefs): Make extern.
      	(compute_flow_insensitive_aliasing): If the tag is
      	unmodifiable and the variable isn't or vice-versa, don't
      	make them alias of each other.
      	(setup_pointers_and_addressables): If the type tag for
      	VAR is about to change, mark the old one for renaming.
      	(add_type_alias): New.
      	* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
      	(ccp_lattice_t): Rename from latticevalue.
      	(value): Remove.  Update all users.
      	(const_val): New local variable.
      	(do_store_ccp): New local variable.
      	(dump_lattice_value): Handle UNINITIALIZED.
      	(debug_lattice_value): New.
      	(get_default_value): Re-write.
      	(set_lattice_value): Re-write.
      	(def_to_varying): Remove.  Update all users.
      	(likely_value): Return VARYING for statements that make
      	stores when STORE_CCP is false.
      	Return VARYING for any statement other than MODIFY_EXPR,
      	COND_EXPR and SWITCH_EXPR.
      	(ccp_initialize): Re-write.
      	(replace_uses_in, replace_vuse_in, substitute_and_fold):
      	Move to tree-ssa-propagate.c.
      	(ccp_lattice_meet): Handle memory stores when
      	DO_STORE_CCP is true.
      	(ccp_visit_phi_node): Likewise.
      	(ccp_fold): Likewise.
      	(evaluate_stmt): Likewise.
      	(visit_assignment): Likewise.
      	(ccp_visit_stmt): Likewise.
      	(execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
      	into DO_STORE_CCP.
      	(do_ssa_ccp): New.
      	(pass_ccp): Use it.
      	(do_ssa_store_ccp): New.
      	(gate_store_ccp): New.
      	(pass_store_ccp): Declare.
      	* tree-ssa-copy.c: Include tree-ssa-propagate.h.
      	(may_propagate_copy): Reformat.
      	Don't abort if ORIG is a virtual and DEST isn't.
      	If NEW does not have alias information but DEST does,
      	copy it.
      	(copy_of, cached_last_copy_of, do_store_copy_prop, enum
      	copy_prop_kind, which_copy_prop): Declare.
      	(stmt_may_generate_copy, get_copy_of_val,
      	get_last_copy_of, set_copy_of_val, dump_copy_of,
      	copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
      	copy_prop_visit_stmt, copy_prop_visit_phi_node,
      	init_copy_prop, fini_copy_prop, execute_copy_prop,
      	gate_copy_prop, do_copy_prop, gate_store_copy_prop,
      	store_copy_prop): New.
      	(pass_copy_prop, pass_store_copy_prop): Declare.
      	* tree-ssa-dom.c (struct opt_stats_d): Add fields
      	'num_const_prop' and 'num_copy_prop'.
      	(cprop_operand): Update them.
      	(dump_dominator_optimization_stats): Dump them.
      	(tree_ssa_dominator_optimize): Call update_ssa instead of
      	rewrite_into_ssa.
      	(loop_depth_of_name): Declare extern.
      	(simplify_cond_and_lookup_avail_expr): Guard against NULL
      	values for LOW or HIGH.
      	(cprop_into_successor_phis): Only propagate if NEW != ORIG.
      	(record_equivalences_from_stmt): Call expr_computes_nonzero.
      	(cprop_operand): Only propagate if VAL != OP.
      	* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
      	statement for renaming.
      	* tree-ssa-loop-im.c (move_computations): Call update_ssa.
      	* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
      	add_type_alias if necessary.
      	Call mark_new_vars_to_rename.
      	(tree_ssa_iv_optimize): If new symbols need to be renamed,
      	mark every statement updated, call update_ssa and
      	rewrite_into_loop_closed_ssa.
      	* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
      	from LIVEIN if VAR is a virtual.
      	* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
      	* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
      	(get_call_expr_operands): Reformat statement.
      	(add_stmt_operand): Don't create V_MAY_DEFs for read-only
      	symbols.
      	* tree-ssa-propagate.c (ssa_prop_init): Initialize
      	SSA_NAME_VALUE for every name.
      	(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
      	get_value_loaded_by): New.
      	(replace_uses_in, replace_vuses_in, replace_phi_args_in,
      	substitute_and_fold): Move from tree-ssa-ccp.c.
      	* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
      	first_vdef, stmt_makes_single_load, stmt_makes_single_store,
      	get_value_loaded_by, replace_uses_in, substitute_and_fold):
      	Declare.
      	* tree-ssa.c (verify_use): Fix error message.
      	(propagate_into_addr, replace_immediate_uses, get_eq_name,
      	check_phi_redundancy, kill_redundant_phi_nodes,
      	pass_redundant_phi): Remove.  Update all users.
      	* tree-vect-transform.c (vect_create_data_ref_ptr): Call
      	add_type_alias, if necessary.
      	* tree-vectorizer.h (struct _stmt_vect_info): Update
      	documentation for field 'memtag'.
      	* tree-vrp.c: New file.
      	* tree.def (ASSERT_EXPR): Define.
      	* tree.h (ASSERT_EXPR_VAR): Define.
      	(ASSERT_EXPR_COND): Define.
      	(SSA_NAME_VALUE_RANGE): Define.
      	(struct tree_ssa_name): Add field 'value_range'.
      	(PHI_REWRITTEN): Remove.
      	(struct tree_phi_node): Remove field 'rewritten'.
      	* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
      	-ftree-store-copy-prop): Document.
      	* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
      	Document usage of update_ssa.
      
      testsuite/ChangeLog
      
      	* g++.dg/tree-ssa/pr18178.C: New test.
      	* gcc.c-torture/execute/20030216-1.x: Ignore at -O1.
      	* gcc.c-torture/execute/20041019-1.c: New test.
      	* gcc.dg/tree-ssa/20041008-1.c: New test.
      	* gcc.dg/tree-ssa/ssa-ccp-12.c: New test.
      	* gcc.dg/tree-ssa/20030731-2.c: Update to use -fdump-tree-store_ccp.
      	* gcc.dg/tree-ssa/20030917-1.c: Likewise.
      	* gcc.dg/tree-ssa/20030917-3.c: Likewise.
      	* gcc.dg/tree-ssa/20040721-1.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-1.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-2.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-3.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-7.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-9.c: Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97884 138bc75d-0d04-0410-961f-82ee72b054a4
      88dbf20f
  7. 31 Mar, 2005 1 commit
  8. 18 Mar, 2005 1 commit
  9. 14 Mar, 2005 1 commit
    • rsandifo's avatar
      * config.gcc (extra_options): New variable for listing option files. · ff05e09e
      rsandifo authored
      	Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
      	* configure.ac (extra_opt_files): New AC_SUBST variable.
      	(tm_file_list, tm_include_list): Include options.h first.
      	* configure: Regenerate.
      	* Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
      	(s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
      	(s-options-h): New rule.
      	(options.h): Depend on it.
      	(TEXI_GCCINT_FILES): Add options.texi.
      	* hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
      	* hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
      	* target.h (gcc_target): Add default_target_flags and handle_option.
      	* target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
      	(TARGET_HANDLE_OPTION): New macros.
      	(TARGET_INITIALIZER): Include them.
      	* opt-functions.awk (opt_args, nth_arg): New functions.
      	(switch_flags): Handle the "Target" flag.
      	(var_args): Delete.
      	(var_name): Use opt_args and nth_arg.
      	(var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
      	* opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
      	macros for the "Mask" and "InverseMask" options.
      	* opts.h (cl_var_cond): New enum.
      	(cl_option): Replace the "has_set_value" and "set_value" fields with
      	"var_cond" and "var_value".
      	(CL_TARGET): New macro.
      	(option_enabled, print_filtered_help): Declare.
      	(decode_options): Move definition.
      	* opts.c (handle_option): Search for the original option before
      	removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
      	var_cond and var_value fields.  Use targetm.handle_option to handle
      	target options.
      	(decode_options): Set target_flags to targetm.default_target_flags.
      	(print_filtered_help): Make global.  Handle CL_TARGET.
      	(option_enabled): New function.
      	* toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
      	(display_target_options, set_target_switch, print_switch_values)
      	(default_pch_valid_p): Guard uses of target_switches with
      	#ifdef TARGET_SWITCHES.  Also...
      	(display_target_options): Display the CL_TARGET entries in cl_options.
      	(set_target_option): Don't complain about the "" option when
      	TARGET_SWITCHES is undefined.
      	(print_switch_values): Use option_enabled.
      	(default_pch_valid_p): Check cl_options[] when looking for something
      	that has changed the value of target_flags.
      	* c.opt: Remove documentation from top of file.
      	* doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
      	* doc/sourecebuild.texi: Refer to the new options documentation
      	instead of c.opt.  Document machine-specific .opt files.
      	* doc/tm.texi (target_flags): Say that this variable is declared
      	by options.h.
      	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
      	(TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
      	an alternative.
      	* doc/options.texi: New file.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96448 138bc75d-0d04-0410-961f-82ee72b054a4
      ff05e09e
  10. 13 Mar, 2005 1 commit
    • dberlin's avatar
      In gcc/ada/ · 2be14d8b
      dberlin authored
      2005-03-12  Daniel Berlin <dberlin@dberlin.org>
      
      	* misc.c (gnat_post_options): Turn off structural
      	aliasing for now.
      In gcc/
      2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
      
      	* tree-flow-inline.h (ref_contains_array_ref): New function.
      	(lookup_subvars_for_var): Ditto.
      	(get_subvars_for_var): Ditto.
      	(var_can_have_subvars): Ditto.
      
      	* tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
      	(struct subvar): New type.
      
      	* tree-dfa.c (okay_component_ref_for_subvars): New function.
      
      	* tree-optimize.c (init_tree_optimization_passes): Call
      	pass_create_structure_vars.
      
      	* tree-ssa-alias.c: Include vec.h.
      	(init_alias_info): Don't auto-clear call clobbered on struct-field
      	tags.
      	(compute_flow_insensitive_aliasing): Handle subvars.
      	(group_aliases): Handle STRUCT_FIELD aliases.
      	(setup_pointers_and_addressables): Ditto.
      	Don't mark variables non-addressable if they still have
      	addressable subvars.
      	Also mark subvars addressable when the real variable is marked
      	addressable.
      	(add_pointed_to_var): Try to prune the pointed-to set by only
      	pointing to subvars when possible.
      	Otherwise, make sure we set addresses_needed and pt_vars to
      	properly include subvars.
      	(bitpos_of_field): New function.
      	(push_fields_onto_fieldstack): Ditto.
      	(get_or_create_used_part_for): Ditto.
      	(create_overlap_variables_for): Ditto.
      	(find_used_portions): Ditto.
      	(create_structure_vars): Ditto.
      	(pass_create_structure_vars): New structure.
      
      	* tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
      	(get_expr_operands): Handle subvars.  Also try to turn
      	COMPONENT_REF accesses into must-defs now that we can accurately
      	portray it.
      	(note_addressable): Try to only mark as addressable those subvars
      	we know a COMPONENT_REF touches.
      	(overlap_subvar): New function.
      
      	* tree-vect-analyze.c (vect_object_analysis): Add new parameter.
      	Handle subvar storing.
      	(vect_address_analysis): Update caller of vect_object_analysis.
      
      	* tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
      
      	* tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
      	(STMT_VINFO_SUBVARS): New macro.
      
      	* common.opts: add flag_tree_salias.
      
      	* opts.c (decode_options): flag_tree_salias defaults to on.
      
      	* doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
      
      	* doc/tree-ssa.texi: Document structural alias analysis.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96362 138bc75d-0d04-0410-961f-82ee72b054a4
      2be14d8b
  11. 01 Mar, 2005 1 commit
    • dberlin's avatar
      2005-03-01 Daniel Berlin <dberlin@dberlin.org> · 5e733b02
      dberlin authored
      	* Makefile.in (tree-ssa-sink.o): New.
      	(OBJS-common): Add tree-ssa-sink.o.
      	* common.opt: Add -ftree-sink
      	* opts.c (decode_options): flag_tree_sink is set at O1 or higher.
      	* timevar.def (TV_TREE_SINK): new timevar.
      	* tree-flow.h (is_hidden_global_store): Prototype.
      	* tree-optimize.c (init_tree_optimization_passes): Add
      	pass_sink_code.
      	* tree-pass.h (pass_sink_code): New.
      	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
      	for non-obvious global store store to is_hidden_global_store, and
      	call that new function.
      	* tree-ssa-sink.c: New file.
      	* doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
      	* doc/passes.texi: Document forward store motion.
      	* testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
      	* testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
      	* testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
      	* testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95750 138bc75d-0d04-0410-961f-82ee72b054a4
      5e733b02
  12. 24 Feb, 2005 1 commit
    • rth's avatar
      PR middle-end/18902 · 45b9d334
      rth authored
              * c-opts.c (c_common_post_options): Set flag_complex_method to 2
              for c99.
              * common.opt (fcx-limited-range): New.
              * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
              * toplev.c (flag_complex_method): Initialize to 1.
              (process_options): Set flag_complex_method to 0 if
              flag_cx_limited_range.
              * doc/invoke.texi (-fcx-limited-range): New.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95493 138bc75d-0d04-0410-961f-82ee72b054a4
      45b9d334
  13. 07 Feb, 2005 1 commit
    • dorit's avatar
      * doc/invoke.texi (ftree-vectorizer-verbose): New. · 459e8543
      dorit authored
              * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
              * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
              was added.
              * tree.h (vect_set_verbosity_level): New extern function declaration
              added.
              * tree-vectorizer.h (verbosity_levels): New enum type.
              * tree-vectorizer.c (vect_debug_stats): Function removed.
              (vect_debug_details): Likewise.
              (vect_verbosity_level): Global variable was defined and initialized.
              (vect_dump): Global variable definition.
              (vect_print_dump_info): New function.
              (vect_set_dump_settings): New function.
              (vect_set_verbosity_level): New function.
              (vectorize_loops): Add call to vect_set_dump_settings.
      
              (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
              (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
              (slpeel_tree_peel_loop_to_edge): Likewise.
      
              (vect_analyze_offset_expr): Call to vect_print_dump_info with
              appropriate verbosity level instead of call to vect_debug_details
              or vect_debug_stats.
              (vect_get_base_and_offset):
              (vect_create_addr_base_for_vector_ref):
              (get_vectype_for_scalar_type):
              (vect_create_data_ref_ptr):
              (vect_init_vector):
              (vect_get_vec_def_for_operand):
              (vect_finish_stmt_generation):
              (vectorizable_assignment):
              (vectorizable_operation):
              (vectorizable_store):
              (vectorizable_load):
              (vect_transform_stmt):
              (vect_update_ivs_after_vectorizer):
              (vect_do_peeling_for_loop_bound):
              (vect_update_inits_of_drs):
              (vect_do_peeling_for_alignment):
              (vect_transform_loop):
              (vect_is_simple_use):
              (vect_analyze_operations):
              (vect_is_simple_iv_evolution):
              (vect_analyze_scalar_cycles):
              (vect_analyze_data_ref_dependence):
              (vect_analyze_data_ref_dependences):
              (vect_compute_data_ref_alignment):
              (vect_enhance_data_refs_alignment):
              (vect_analyze_data_refs_alignment):
              (vect_analyze_data_ref_access):
              (vect_analyze_data_ref_accesses):
              (vect_analyze_pointer_ref_access):
              (vect_get_memtag_and_dr):
              (vect_analyze_data_refs):
              (vect_mark_relevant):
              (vect_stmt_relevant_p):
              (vect_mark_stmts_to_be_vectorized):
              (vect_can_advance_ivs_p):
              (vect_get_loop_niters):
              (vect_analyze_loop_form):
              (vect_analyze_loop):
              (vectorize_loops): Likewise.
      
              (vect_do_peeling_for_loop_bound): Dump format slightly changed.
              (vect_update_inits_of_drs):
              (vect_do_peeling_for_alignment):
              (vect_transform_loop):
              (vect_analyze_operations):
              (vect_analyze_scalar_cycles):
              (vect_analyze_data_ref_dependences):
              (vect_analyze_data_refs_alignment):
              (vect_analyze_data_ref_accesses):
              (vect_analyze_data_refs):
              (vect_mark_stmts_to_be_vectorized):
              (vect_get_loop_niters):
              (vect_analyze_loop_form):
              (vect_analyze_loop): Likewise.
              (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94697 138bc75d-0d04-0410-961f-82ee72b054a4
      459e8543
  14. 27 Jan, 2005 2 commits
  15. 29 Nov, 2004 2 commits
  16. 18 Nov, 2004 1 commit
  17. 09 Nov, 2004 1 commit
    • jsm28's avatar
      * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h, · 1e5fcbe2
      jsm28 authored
      	c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c,
      	gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c,
      	tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
      	config/avr/avr.c, config/c4x/c4x.c, config/darwin.c,
      	config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c,
      	config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c,
      	config/iq2000/iq2000.c, config/m32r/m32r.c,
      	config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h,
      	config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c,
      	config/ns32k/ns32k.c, config/rs6000/host-darwin.c,
      	config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c,
      	config/sh/symbian.c, config/stormy16/stormy16.c,
      	config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %<
      	and %> as appropriate.  Use %' as apostrophe in diagnostics where
      	applicable.  Use %< and %> in place of '' quotes where applicable.
      	Use %qs in place of %<%s%>.  Consistently quote __builtin function
      	names.
      
      ada:
      	* misc.c (gnat_handle_option): Use %< and %> for quoting in
      	warning message.
      
      cp:
      	* call.c, class.c, decl.c, decl2.c, error.c, mangle.c, parser.c,
      	pt.c, search.c, semantics.c, typeck.c: Use %q, %< and %> for
      	quoting in diagnostics.
      	* parser.c (cp_parser_sizeof_operand): Use '' instead of `' for
      	quoting in printf format.
      	* decl.c (duplicate_decls, start_decl): Use %qD instead of
      	unquoted %D.
      
      objc:
      	* objc-act.c: Use %q, %< and %> for quoting in diagnostics.
      
      testsuite:
      	* gcc.dg/builtin-prefetch-1.c: Adjust expected messages.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90337 138bc75d-0d04-0410-961f-82ee72b054a4
      1e5fcbe2
  18. 29 Oct, 2004 1 commit
  19. 28 Oct, 2004 1 commit
  20. 27 Oct, 2004 1 commit
  21. 14 Oct, 2004 1 commit
  22. 10 Sep, 2004 2 commits
    • nathan's avatar
      Revert 2004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org> · 2045cdd4
      nathan authored
      	* lambda-mat.c (lambda_matrix_inverse_hard): Use gcc_assert
      	and gcc_unreachable instead of abort.
      	* lambda.h (lambda_vector_min_nz): Likewise.
      	* langhooks.c lhd_set_decl_assembler_name, lhd_can_use_bit_fields_p,
      	lhd_incomplete_type_error, lhd_expand_expr, lhd_types_compatible_p,
      	lhd_gimplify_expr): Likewise.
      	* lcm.c (optimize_mode_switching): Likewise.
      	* local-alloc.c (update_equiv_regs, block_alloc, find_free_reg):
      	Likewise.
      	* loop-doloop.c (doloop_modify): Likewise.
      	* loop-invariant.c (record_use): Likewise.
      	* loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze, get_iv_value,
      	canon_condition, simplify_using_condition,
      	simplify_using_initial_values, shorten_into_mode,
      	canonicalize_iv_subregs, iv_number_of_iterations): Likewise.
      	* loop-unroll.c (unroll_and_peel_loops, peel_loop_completely,
      	unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
      	peel_loop_simple, unroll_loop_stupid): Likewise.
      	* loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
      	unswitch_loop): Likewise.
      	* loop.c (gen_prefetch, loop_optimize, rtx_equal_for_loop_p,
      	move_movables, replace_call_address, find_and_verify_loops,
      	rtx_equal_for_prefetch_p, record_giv, general_induction_var,
      	simplify_giv_expr, check_ext_dependent_givs, try_copy_prop,
      	loop_giv_dump): Likewise.
      	* loop.h (INSN_LUID): Likewise.
      	* modulo-sched.c (normalize_sched_times, generate_prolog_epilog,
      	sms_schedule, check_nodes_order): Likewise.
      	* optabs.c (gen_conditional, add_equal_note, expand_simple_binop,
      	expand_twoval_unop, expand_twoval_binop, expand_twoval_binop_libfunc,
      	expand_simple_unop, emit_no_conflict_block, prepare_cmp_insn,
      	emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
      	prepare_float_lib_cmp, gen_add2_insn, have_add2_insn, gen_sub2_insn,
      	have_sub2_insn, expand_float, expand_fix, debug_optab_libfuncs):
      	Likewise.
      	* opts.c (common_handle_option): Likewise.
      	* params.c (set_param_value): Likewise.
      	* passes.c (open_dump_file, rest_of_handle_final): Likewise.
      	* postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,hash_scan_set,
      	reg_set_between_after_reload_p, reg_used_between_after_reload_p,
      	get_avail_load_store_reg, eliminate_partially_redundant_load):
      	Likewise.
      	* postreload.c (reload_cse_simplify_set, reload_combine_note_use):
      	Likewise.
      	* predict.c (tree_predicted_by_p, expected_value_to_br_prob,
      	propagate_freq, expensive_function_p): Likewise.
      	* pretty-print.c (pp_base_format_text)
      	* profile.c (instrument_edges, instrument_values,
      	compute_branch_probabilities, branch_prob, union_groups,
      	end_branch_prob, tree_register_profile_hooks): Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87290 138bc75d-0d04-0410-961f-82ee72b054a4
      2045cdd4
    • nathan's avatar
      * lambda-mat.c (lambda_matrix_inverse_hard): Use gcc_assert · b690c0a3
      nathan authored
      	and gcc_unreachable instead of abort.
      	* lambda.h (lambda_vector_min_nz): Likewise.
      	* langhooks.c lhd_set_decl_assembler_name, lhd_can_use_bit_fields_p,
      	lhd_incomplete_type_error, lhd_expand_expr, lhd_types_compatible_p,
      	lhd_gimplify_expr): Likewise.
      	* lcm.c (optimize_mode_switching): Likewise.
      	* local-alloc.c (update_equiv_regs, block_alloc, find_free_reg):
      	Likewise.
      	* loop-doloop.c (doloop_modify): Likewise.
      	* loop-invariant.c (record_use): Likewise.
      	* loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze, get_iv_value,
      	canon_condition, simplify_using_condition,
      	simplify_using_initial_values, shorten_into_mode,
      	canonicalize_iv_subregs, iv_number_of_iterations): Likewise.
      	* loop-unroll.c (unroll_and_peel_loops, peel_loop_completely,
      	unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
      	peel_loop_simple, unroll_loop_stupid): Likewise.
      	* loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
      	unswitch_loop): Likewise.
      	* loop.c (gen_prefetch, loop_optimize, rtx_equal_for_loop_p,
      	move_movables, replace_call_address, find_and_verify_loops,
      	rtx_equal_for_prefetch_p, record_giv, general_induction_var,
      	simplify_giv_expr, check_ext_dependent_givs, try_copy_prop,
      	loop_giv_dump): Likewise.
      	* loop.h (INSN_LUID): Likewise.
      	* modulo-sched.c (normalize_sched_times, generate_prolog_epilog,
      	sms_schedule, check_nodes_order): Likewise.
      	* optabs.c (gen_conditional, add_equal_note, expand_simple_binop,
      	expand_twoval_unop, expand_twoval_binop, expand_twoval_binop_libfunc,
      	expand_simple_unop, emit_no_conflict_block, prepare_cmp_insn,
      	emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
      	prepare_float_lib_cmp, gen_add2_insn, have_add2_insn, gen_sub2_insn,
      	have_sub2_insn, expand_float, expand_fix, debug_optab_libfuncs):
      	Likewise.
      	* opts.c (common_handle_option): Likewise.
      	* params.c (set_param_value): Likewise.
      	* passes.c (open_dump_file, rest_of_handle_final): Likewise.
      	* postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,hash_scan_set,
      	reg_set_between_after_reload_p, reg_used_between_after_reload_p,
      	get_avail_load_store_reg, eliminate_partially_redundant_load):
      	Likewise.
      	* postreload.c (reload_cse_simplify_set, reload_combine_note_use):
      	Likewise.
      	* predict.c (tree_predicted_by_p, expected_value_to_br_prob,
      	propagate_freq, expensive_function_p): Likewise.
      	* pretty-print.c (pp_base_format_text)
      	* profile.c (instrument_edges, instrument_values,
      	compute_branch_probabilities, branch_prob, union_groups,
      	end_branch_prob, tree_register_profile_hooks): Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87285 138bc75d-0d04-0410-961f-82ee72b054a4
      b690c0a3
  23. 09 Sep, 2004 1 commit
    • dberlin's avatar
      Toplevel: · 39a1c4e9
      dberlin authored
      2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
      
      	* Makefile.def: Remove libbanshee.
      	* Makefile.tpl: Ditto.
      	* configure.in: Ditto.
      	* Makefile.in: Regen.
      	* configure: Ditto.
      
      gcc/
      
      2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
      
      	* Makefile.in: Remove libbanshee, tree-alias-*.
      	Remove tree-alias-common.h dependencies.
      	* common.opt: Remove -ftree-points-to.
      	* configure.ac: Remove libbanshee.
      	* flags.h: Remove pta_type, flag_tree_points_to.
      	* gengtype.c (open_base_files): Remove tree-alias-type.h.
      	* opts.c (OPT_ftree_points_to): Remove.
      	* toplev.c: Remove tree-alias-common.h, flag_tree_points_to.
      	* tree-dfa.c: Remove tree-alias-common.h
      	* tree-into-ssa.c: Ditto.
      	* tree-outof-ssa.c: Ditto.
      	* tree-ssa-copyrename.c: Ditto.
      	* tree-ssa-live.c: Ditto.
      	* tree-optimize.c: Ditto.
      	* tree-ssa.c: Ditto.
      	Remove pass_build_pta, pass_del_pta.
      	* tree-pass.h: Ditto.
      	* tree-ssa-alias.c: Remove tree-alias-common.h.
      	(struct alias_stats_d):	Remove pta_queries, pta_resolved.
      	(pass_may_alias): Remove PROP_pta requirement.
      	(may_alias_p): Remove pta_queries, pta_resolved, use of andersens.
      	(get_tmt_for): Ditto.
      	(dump_alias_stats): Ditto.
      	* doc/passes.texi: Remove blurb about points-to analysis.
      	* fortran/Make-lang.in: Remove tree-alias-*.o.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87253 138bc75d-0d04-0410-961f-82ee72b054a4
      39a1c4e9
  24. 03 Sep, 2004 1 commit
    • rth's avatar
      PR c/7054 · 6b5553e5
      rth authored
              * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
              * tree.h (initial_max_fld_align): Declare
              * stor-layout.c (initial_max_fld_align): Define and initialize.
              (maximum_field_alignment): Initialize to the same value.
              * common.opt: Add -fpack-struct= variant of switch.
              * opts.c: Handle -fpack-struct= variant of switch.
              * c-pragma.c: Change #pragma pack() handling so that it becomes
              compatible to other compilers: accept individual 'push' argument,
              make final pop restore (command line) default, correct interaction
              of push/pop and sole specification of a new alignment (so that the
              sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
              to #pragma pack(push, <n>).
              * doc/extend.texi: New node "Structure-Packing Pragmas" under
              "Pragmas", describing #pragma pack.
              * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
              * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
              Document new TARGET_DEFAULT_PACK_STRUCT.
      testsuite:
              * gcc.dg/pack-test-2.c: Adjust to permit and check #pragma pack(push).
              * gcc.dg/c99-flex-array-4.c: Add -fpack-struct=8 to provide a
              deterministic starting point for the alignment of structure fields.
              * gcc.dg/Wpadded.c: Dito.
              * g++.dg/abi/vbase10.C: Dito.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87037 138bc75d-0d04-0410-961f-82ee72b054a4
      6b5553e5
  25. 01 Sep, 2004 1 commit
    • rakdver's avatar
      * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency. · 8a5df2ce
      rakdver authored
      	* common.opt (fspeculative-prefetching): New.
      	* flags.h (flag_speculative_prefetching_set): Declare.
      	* gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
      	values.
      	* opts.c (flag_sepculative_prefetching_set): New variable.
      	(common_handle_option): Handle -fspeculative-prefetching.
      	* passes.c (rest_of_compilation): Ditto.
      	* profile.c (instrument_values, compute_value_histograms, branch_prob):
      	Use vectors instead of arrays.
      	* toplev.c (process_options): Handle -fspeculative-prefetching.
      	* rtl-profile.c: Include ggc.h.
      	(rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
      	rtl_gen_one_value_profiler_no_edge_manipulation,
      	rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
      	argument changed.
      	* tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
      	tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
      	argument changed.
      	* value-prof.c: Include ggc.h.
      	(NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
      	macros.
      	(insn_prefetch_values_to_profile, find_mem_reference_1,
      	find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
      	speculative_prefetching_transform): New.
      	(value_profile_transformations): Call speculative_prefetching_transform.
      	(insn_values_to_profile): Call insn_prefetch_values_to_profile.
      	(insn_divmod_values_to_profile, rtl_find_values_to_profile,
      	tree_find_values_to_profile, find_values to profile): Use vectors
      	instead of arrays.
      	(free_profiled_values): Removed.
      	* value-prof.h (struct histogram_value): Renamed to
      	struct histogram_value_t.
      	(histogram_value, histogram_values): New types.
      	(find_values_to_profile): Declaration changed.
      	(free_profiled_values): Removed.
      	(struct profile_hooks): Type of argument of the hooks changed to
      	histogram_value.
      	* doc/invoke.texi (-fspeculative-prefetching): Document.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86930 138bc75d-0d04-0410-961f-82ee72b054a4
      8a5df2ce
  26. 25 Aug, 2004 1 commit
    • zack's avatar
      * flags.h (enum debug_info_type): Remove DWARF_DEBUG. · 346e0763
      zack authored
      	* defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
      	DWARF_DEBUGGING_INFO from choice-of-definition chain;
      	restructure using C89 features (#elif, #error).
      	* c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
      	* config/sh/sh.h: Remove references to DWARF_DEBUG.
      	* doc/invoke.texi: Remove references to DWARF version 1;
      	clarify why -gdwarf-2<n> doesn't work.
      cp:
      	* class.c, search.c: Remove references to DWARF_DEBUG.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86540 138bc75d-0d04-0410-961f-82ee72b054a4
      346e0763
  27. 18 Aug, 2004 1 commit
    • ctice's avatar
      Hot/cold partitioning update patch. The problems that this patch · 065efcb1
      ctice authored
      attemptd to address/fix are:
      
      - Fix places where adding in_unlikely_executed_text to the enum data
        type "in_section"  threw off switch case statements.
      - Make it work correctly (by turning it off) for functions where user
        specifies "__attribute__ section"
      - Make it work correctly (by turning it off) for linkonce sections
      - Make it work correctly with -ffunction-sections flag
      - Make it output correct cold section labels
      - Undo some changes to original assembly code generation
      - Turn off hot/cold partitioning in the presence of DWARF debugging (for
        the moment)
      - Turn off hot/cold partitioning for architectures that do not support
        named sections
      - Use variables rather than constants for cold section labels and names (to
        work correctly with -ffunction-sections, among other things)
      
      
      2004-08-18  Caroline Tice  <ctice@apple.com>
      
              * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
              "-freorder-blocks-and-partition" to the flags used in second
              stage of profiledbootstrap.
              * bb-reorder.c (push_to_next_round_p): Add new variable,
              next_round_is_last; set and use variable to make sure, when
              partitioning, that the last trace construction round consists
              of all (and only) cold basic blocks.
              (rotate_loop): Don't copy blocks that end in a section
              crossing jump.
              (copy_bb): Correctly initialize "partition" of duplicated bb.
              (add_unlikely_executed_notes): Add a comment.
              (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
              to make sure, if function contains hot blocks, that the
              successors of ENTRY_BLOCK_PTR are hot; also, only look for
              crossing edges if the architecture supports named sections.
              (mark_bb_for_unlikely_executed_section): Modify to always
              insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
              the basic block note insn.
              (fix_crossing_unconditional_branches): Remove extra space.
              (fix_edges_for_rarely_executed_code): Modify to only do
              partitioning work if the architecture supports named sections.
              (reorder_basic_blocks): Modify to only add
              NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
              supports named sections.
              * c-common.c (handle_section_attribute): Initialize new global
              variable, user_defined_section_attribute, to true if user has
              specified one.
              * cfgcleanup.c (try_forward_edges): Modify to not attempt to
              forward edges that cross section boundaries.
              * cfglayout.c (fixup_reorder_chain): Modify to only fix up
              partitioning information if the architecture supports named
              sections.
              * cfgrtl.c (target.h): Add statement to include this.
              (rtl_split_block): Make sure newly created bb gets correct
              partition.
              (try_redirect_by_replacing_jump): Make sure redirection isn't
              attempting to cross section boundaries.
              (force_nonfallthru_and_redirect): Only do partition fix up if
              architecture supports named sections.
              (rtl_split_edge): Make sure newly created bb ends up in
              correct partition.
              (commit_one_edge_insertion): Remove code that incorrectly
              updated basic block partition; Make sure partition fix up only
              happens if architecture supports named sections and it's not
              already done.
              (rtl_verify_flow_info_1): Fix if-condition on test/error
              condition that fallthru edges are not allowed to cross section
              boundaries.
              * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
              * final.c (final_scan_insn): Remove redundant test from if-statement;
              change calls to text_section into calls to function_section; add code
              to only to partitioning fix up if architecture supports named
              sections.
              * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
              partition.
              (if_convert): Add targetm.have_named_sections to test.
              * output.h (unlikely_section_label): Extern declaration for new global
              variable.
              (unlikely_text_section_name): Likewise.
              * opts.c (decode_options): If both partitioning and DWARF debugging
              are turned on, issue a warning that this doesn't work, and change
              partitiong to basic block reordering (without hot/cold partitions).
              * passes.c (rest_of_handle_final): Re-set new global variable,
              user_defined_section_attribute, to false.
              (rest_of_compilation): Change options for calling partitioning
              function: Don't call if the user defined the section attribute, and
              don't call if DECL_ONE_ONLY is true for the current function.
              * predict.c (choose_function_section): Return immediately if we
              are doing hot/cold partitioning (i.e. let the basic block partitioning
              determine where the function belongs).
              * reg-stack.c (emit_swap_insn): Add condition to step over
              NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
              * toplev.c (user_defined_section_attribute): New global variable.
              * toplev.h (user_defined_section_attribute): Extern declaration for new
              global variable.
              * varasm.c (unlikely_section_label): New global variable.
              (unlikely_text_section_name): New global variable.
              (unlikely_text_section): Add code to initialize unlikely_text_section_name
              if necessary; modify to use unlikely_text_section_name and
              unlikely_section_label; also to use named_section properly.
              (in_unlikely_text_section):  Modify to work correctly with named_section
              and to use unlikely_text_section_name.
              (named_section):  Add code to work properly with cold section.
              (function_section): Clean up if-statement.
              * config/darwin.c (darwin_asm_named_section): Return to original code,
              removing use of SECTION_FORMAT_STRING.
              * config/arm/pe.h (switch_to_section):  Add case for
              in_unlikely_executed_text to switch statement.
              * config/i386/cygming.h (switch_to_section): Likewise.
              * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
              (SECTION_FORMAT_STRING): Likewise.
              * config/mcore/mcore.h (switch_to_section): Likewise.
              * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86189 138bc75d-0d04-0410-961f-82ee72b054a4
      065efcb1
  28. 25 Jul, 2004 1 commit
    • giovannibajo's avatar
      PR c++/9283 · b212f378
      giovannibajo authored
      	PR c++/15000
      	* c-common.c (c_common_attribute_table): Allow
      	handle_visibility_attribute to be called for types.
      	(handle_visibility_attribute) When given a type, set the visibility
      	bits on the TYPE_NAME.  When given a decl, don't set no_add_attrs
      	so that we can check later whether the attribute was present. Added
      	warning if attribute applied to non class type.
      	* c-decl.c (diagnose_mismatched_decls): Updated rules for merging
      	decls and checking that they are consistent.
      	* common.opt: Added -fvisibility.
      	* c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
      	* c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
      	* flags.h, tree.h: Added assorted support defines for overall patch
      	* opts.c: Added parsing support for -fvisibility.
      	* tree.c (build_decl): Set visibility for all decls to be whatever
      	is in force at that time.
      	* varasm.c (default_binds_local_p_1): Reworked logic determining
      	when to make a symbol locally bound.
      	* doc/invoke.texi: Added documentation for -fvisibility and
      	-fvisibility-inlines-hidden.
      
      	PR c++/15000
      	PR c++/9283
      	* class.c (check_field_decls): Apply hidden visibility if
      	-fvisibility-inlines-hidden and inlined unless otherwise specified
      	(build_vtable): Set vtable visibility to class visibility.
      	(check_field_decls): Default static member visibility to class
      	visibility.
      	(check_methods): Default method visibility to class visibility.
      	* cp-tree.h: Added CLASSTYPE_VISIBILITY and
      	CLASSTYPE_VISIBILITY_SPECIFIED macro.
      	* decl.c (duplicate_decls): New logic for merging definition decls
      	with declaration decls. Added ignore & warning when non default
      	applied to global operator new or delete.
      	* method.c, optimize.c, rtti.c: Added setting of VISIBILITY_SPECIFIED
      	wherever VISIBILITY was changed
      	* rtti.c (get_tinfo_decl): Set typeinfo visibility to class
      	visibility.
      	(tinfo_base_init): Set typeinfo name visibility to class visibility.
      
      	PR c++/9283
      	PR c++/15000
      	* gcc.dg/visibility-9.c, gcc.dg/visibility-a.c: New tests.
      	* g++.dg/ext/visibility/: New directory.
      	* g++.dg/ext/visibility-1.C, g++.dg/ext/visibility-2.C
      	g++.dg/ext/visibility-3.C, g++.dg/ext/visibility-4.C,
      	g++.dg/ext/visibility-5.C, g++.dg/ext/visibility-6.C,
      	g++.dg/ext/visibility-7.C: Move to g++.dg/ext/visibility/.
      	* g++.dg/ext/visibility/fvisibility.C,
      	g++.dg/ext/visibility/fvisibility-inlines-hidden.C,
      	g++.dg/ext/visibility/fvisibility-override1.C
      	g++.dg/ext/visibility/fvisibility-override2.C
      	g++.dg/ext/visibility/memfuncts.C
      	g++.dg/ext/visibility/noPLT.C
      	g++.dg/ext/visibility/pragma.C
      	g++.dg/ext/visibility/pragma-override1.C
      	g++.dg/ext/visibility/pragma-override2.C
      	g++.dg/ext/visibility/staticmemfuncts.C
      	g++.dg/ext/visibility/virtual.C: New tests.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85167 138bc75d-0d04-0410-961f-82ee72b054a4
      b212f378
  29. 15 Jul, 2004 1 commit
    • pbrook's avatar
      * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO · 8ec87476
      pbrook authored
      	to TARGET_UNWIND_INFO.
      	* except.c (output_function_exception_table): Ditto.
      	* except.h: Ditto.
      	* opts.c (decode_options): Ditto.
      	* passes.c (rest_of_handle_final): Ditto.
      	* final.c (final_start_function): Ditto.
      	(final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
      	target hook.
      	* targhooks.h (default_unwind_emit): Declare.
      	* targhooks.c (default_unwind_emit): New function.
      	* target-def.h: Define and use TARGET_UNWIND_EMIT.
      	* target.h (struct gcc_target): Add unwind_emit.
      	* config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
      	* config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
      	Remove IA64_UNWIND_EMIT.
      	* doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84734 138bc75d-0d04-0410-961f-82ee72b054a4
      8ec87476
  30. 08 Jul, 2004 1 commit
    • zack's avatar
      * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope · ae0686dd
      zack authored
      	decls when there is only one input translation unit.
      	* langhooks.c (lhd_set_decl_assembler_name): Partially revert
      	change of 2004-07-05; do not treat declarations with
      	DECL_CONTEXT a TRANSLATION_UNIT_DECL specially.
      	* opts.c (cur_in_fname): Delete.
      	* opts.h: Likewise.
      	* tree.c: Revert changes of 2004-07-05; no special treatment
      	for TRANSLATION_UNIT_DECLs.
      	* Makefile.in (tree.o): Update dependencies.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84306 138bc75d-0d04-0410-961f-82ee72b054a4
      ae0686dd
  31. 05 Jul, 2004 1 commit
    • zack's avatar
      * langhooks.c: Don't include gt-langhooks.h. · 0366834b
      zack authored
      	(var_labelno): Delete.
      	(lhd_set_decl_assembler_name): Do not append a distinguishing
      	number to file-scope internal-linkage declarations for the first
      	input file, even if they have DECL_CONTEXT set.  Use DECL_UID of
      	the declaration itself (if at block scope), or its containing
      	TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing
      	number.
      
      	* opts.c (cur_in_fname): New global.
      	* opts.h: Declare it.
      	* tree.c: Include opts.h.
      	(make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it
      	DECL_UID equal to cur_in_fname.
      	(copy_node_stat): Do not change DECL_UID when copying a
      	TRANSLATION_UNIT_DECL.
      	(build_common_tree_nodes): Adjust next_decl_uid to reserve the
      	range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs.
      
      	* c-decl.c (c_static_assembler_name): Delete.
      	* c-tree.h (c_static_assembler_name): Delete prototype.
      	* c-lang.c, objc/objc-lang.c: Don't override
      	LANG_HOOKS_SET_DECL_ASSEMBLER_NAME.
      
      	* Makefile.in (tree.o): Update dependencies.
      	(GTFILES): Remove langhooks.c.
      
      cp:
      	* decl.c (cxx_init_decl_processing): Call
      	build_common_tree_nodes before creating the global NAMESPACE_DECL.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84123 138bc75d-0d04-0410-961f-82ee72b054a4
      0366834b
  32. 29 Jun, 2004 1 commit
    • dnovillo's avatar
      · 591c2a30
      dnovillo authored
      	* common.opt (ftree-fre): New flag.
      	* flags.h (flag_tree_fre): Declare.
      	* opts.c (decode_options): Set.
      	* timevar.def (TV_TREE_FRE): Define.
      	* tree-flow-inline.h (may_propagate_copy): Re-arrange for
      	readability.  Handle destinations that are not SSA_NAMEs.
      	* tree-flow.h (struct ptr_info_def): Move from tree.h
      	(cprop_into_stmt, cprop_into_successor_phis): Remove.
      	(vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add
      	vuse_optype parameter.
      	* tree-pass.h (pass_fre): Declare.
      	* tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c
      	(cprop_into_stmt): Likewise.
      	(cprop_into_successor_phis): Likewise.
      	* tree-ssa-dom.c (eliminate_redundant_computations): Fix
      	argument ordering in call to may_propagate_copy.
      	* tree-ssa-pre.c (is_undefined_value): Assume hard registers
      	to be always defined.
      	(add_to_sets): New local function.
      	(create_value_expr_from): New local function.
      	(compute_avail): Call them.
      	(eliminate): Don't ignore statements with virtual operands.
      	(init_pre): New local function.
      	(fini_pre): New local function.
      	(execute_pre): Call them.
      	Add argument DO_FRE.  Don't do insertion if DO_FRE is true.
      	(do_pre): New function.
      	(do_fre): New function.
      	(gate_fre): New function.
      	(pass_fre): Declare.
      	* tree-ssa.c (init_tree_ssa): Don't call vn_init.
      	(delete_tree_ssa): Don't call vn_delete.
      	* tree-vn.c (val_expr_pair_d): Add documentation.
      	(vn_compute): Add VUSES argument to incorporate in computing
      	hash values.  Update all callers.
      	(expressions_equal_p): Call operand_equal_p with
      	OEP_PURE_SAME.
      	(vn_add): Add VUSES argument.  Update all callers.
      	(vn_lookup): Likewise.
      	(vn_lookup_or_add): Likewise.
      	* doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83837 138bc75d-0d04-0410-961f-82ee72b054a4
      591c2a30
  33. 14 Jun, 2004 1 commit
    • rakdver's avatar
      * Makefile.in (FLAGS_H): New. · 2e9da478
      rakdver authored
      	(flags.h): Replace by FLAGS_H.
      	* c.opt: Document Var, VarExists, Init and Report attributes.
      	* common.opt: Fill the values of the attributes.
      	* diagnostic.c (flag_fatal_errors): Do not define.
      	* except.c (flag_non_call_exceptions): Do not define.
      	* flags.h: Include options.h.  Remove declarations conflicting with
      	the automatically defined ones.
      	* opts.c: Remove automatically defined variables.
      	(handle_option): Perform default initialization.
      	(common_handle_option): Do not handle options covered by the
      	default initialization.
      	* opts.h (struct cl_option): Add flag_var, has_set_value and set_value
      	fields.
      	(CL_REPORT): New.
      	* opts.sh: Generate variable declarations, handle CL_REPORT.
      	* toplev.c: Remove automatically defined variables.
      	(f_options): Removed.
      	(print_switch_values): Use cl_options instead of f_options.
      	* toplev.h (version_flag): Declaration removed.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83105 138bc75d-0d04-0410-961f-82ee72b054a4
      2e9da478
  34. 25 May, 2004 1 commit
    • hagog's avatar
      · 406a73e7
      hagog authored
       	* ddg.h, ddg.c, modulo-sched.c: New files.
       	* cfglayout.c (duplicate_insn_chain): Remove "static" and push
       	internals to "dupicate_insn".
       	(duplicate_insn): New function.
       	* cfglayout.h (duplicate_insn_chain, duplicate_insn): New
       	declarations.
       	* common.opt (fmodulo-sched): New flag.
       	* df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
       	Remove static and forward declaration.
       	(df_find_def, df_reg_used, df_bb_regno_last_def_find): New
       	functions.
       	* df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
       	df_bb_regno_last_def_find, df_find_def, df_reg_used): New
       	declarations.
       	* flags.h (flag_modulo_sched): New flag.
       	* opts.c (common_handle_option): Handle modulo-sched flag.
       	* params.def (max-sms-loop-number, sms-max-ii-factor,
       	sms-dfa-history, sms-loop-average-count-threshold): New
       	parameters.
      	* params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
       	SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
       	parameters.
       	* passes.c ("sms", "sms-vcg"): New dumps.
       	(rest_of_handle_sched): Call sms_schedule.
       	* rtl.h (sms_schedule): New declaration.
       	* timevar.def (TV_SMS): New.
       	* toplev.c (flag_modulo_sched): Initialize.
       	(f_options): Handle -fmodulo-sched option.
       	* docs/invoke.texi: Document -fmodulo-sched & -dm options.
       	* docs/passes.texi: Document new SMS pass.f toplev.c doc/invoke.texi doc/passes.texi
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82235 138bc75d-0d04-0410-961f-82ee72b054a4
      406a73e7
  35. 13 May, 2004 1 commit
  36. 11 May, 2004 1 commit