1. 12 Apr, 2005 1 commit
  2. 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
  3. 31 Mar, 2005 1 commit
  4. 18 Mar, 2005 1 commit
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 27 Jan, 2005 2 commits
  11. 29 Nov, 2004 2 commits
  12. 18 Nov, 2004 1 commit
  13. 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
  14. 29 Oct, 2004 1 commit
  15. 28 Oct, 2004 1 commit
  16. 27 Oct, 2004 1 commit
  17. 14 Oct, 2004 1 commit
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 13 May, 2004 1 commit
  32. 11 May, 2004 1 commit
  33. 30 Apr, 2004 1 commit
    • wilson's avatar
      Patch from Richard Guenther. · 295acf4f
      wilson authored
      * commom.opt (Wfatal-errors): Add it.
      * diagnostic.c (flag_fatal_errors): Define it.
      (diagnostic_action_after_output): Check for flag_fatal_errors.
      * flags.h (flag_fatal_errors): Declare it.
      * opts.c (common_handle_option): Add OPT_Wfatal_errors.
      * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81323 138bc75d-0d04-0410-961f-82ee72b054a4
      295acf4f
  34. 17 Apr, 2004 1 commit
    • bonzini's avatar
      2004-04-17 Paolo Bonzini <bonzini@gnu.org> · ad469377
      bonzini authored
              * opts.c (decode_options): Do not enable flag_rename_registers
              and flag_web at -O3.
              * toplev.c (flag_rename_registers): Initialize
              flag_rename_registers and flag_web to
              AUTODETECT_FLAG_VAR_TRACKING.
              (default_debug_hooks): New global.
              (process_options): Initialize default_debug_hooks.  Warn if
              -fvar-tracking specified but not supported by the current
              debug format.  Do not run var tracking at -O0 or if not
              supported by the current debug format, even if
              -fvar-tracking was given.  If -fno-rename-registers
              is not specified, always run register renaming if var
              tracking is supported by the default debugging information
              format for the target, and we are at -O1 or higher; similarly
              for -fweb, but only at -O2 or higher.
              * doc/invoke.texi (Optimize Options): Document this.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@80789 138bc75d-0d04-0410-961f-82ee72b054a4
      ad469377
  35. 09 Apr, 2004 1 commit
    • ctice's avatar
      2004-04-09 Caroline Tice <ctice@apple.com> · 4f18499c
      ctice authored
              * basic-block.h (struct edge_def):  Add new field, crossing_edge.
              (struct basic_block_def):  Add new field, partition.
              (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
              definitions.
              (partition_hot_cold_basic_blocks): Add extern function
              declaration.
              * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
              include statements.
              (N_ROUNDS): Increase the maximum number of rounds by 1.
              (branch_threshold): Add array value for new round.
              (exec_threshold): Add array value for new round.
              (push_to_next_round_p): New function.
              (add_unlikely_executed_notes): New function.
              (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
              (mark_bb_for_unlikely_executed_section): New function.
              (add_labels_and_missing_jumps): New function.
              (add_reg_crossing_jump_notes): New function.
              (fix_up_fall_thru_edges): New function.
              (find_jump_block): New function.
              (fix_crossing_conditional_branches): New function.
              (fix_crossing_unconditional_branches): New function.
              (fix_edges_for_rarely_executed_code): New function.
              (partition_hot_cold_basic_blocks): New function.
              (find_traces):  Add an extra round for partitioning hot/cold
              basic blocks.
              (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
              and only cold blocks, into the last (extra) round of collecting traces.
              (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
              over crossing edges.
              (bb_to_key):  Add code to correctly identify cold blocks when
              doing partitioning.
              (connect_traces): Modify to connect all the non-cold traces first, then
              go back and connect up all the cold traces.
              (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
              * cfg.c (entry_exit_blocks): Add initialization for partition field in
              entry and exit blocks.
              * cfgbuild.c (make_edges): Update current_function_has_computed_jump
              if we are doing hot/cold partitioning.
              * cfgcleanup.c (cfglayout.h): Add new include statement.
              (try_simplify_condjump): Modify to not attempt on blocks with jumps
              that cross section boundaries.
              (try_forward_edges): Likewise.
              (merge_blocks_move_predecessor_nojumps): Likewise.
              (merge_blocks_move_successor_nojumps): Likewise.
              (merge_blocks_move): Likewise.
              (try_crossjump_to_edge): Modify to not attempt after we have done
              the block partitioning.
              (try_crossjump_bb): Modify to not attempt on blocks with jumps that
              cross section boundaries.
              (try_optimize_cfg): Likewise.
              * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
              jumps that cross section boundaries.
              * cfglayout.c (flags.h): Add new include statement.
              (update_unlikely_executed_notes):  New function.
              (fixup_reorder_chain):  Add code so when a new jumping basic block is
              added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
              updated appropriately.
              (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
              introduced by this optimization.
              * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
              extern function declaration.
              * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
              list of notes that can be deleted.
              (create_basic_block_structure):  Add initialization for partition field.
              (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
              section boundaries.
              (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
              cross section boundaries.
              (commit_one_edge_insertion): Add code so newly created basic block
              ends up in correct (hot or cold) section.  Modify to disallow
              insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
              (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
              crosses section boundaries.
              (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
              cross section boundaries.
              (force_nonfallthru_and_redirect): Modify to make sure new basic block
              ends up in correct section, with correct notes attached.
              * common.opt (freorder-blocks-and-partition):  Add new flag for this
              optimization.
              * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
              the end of functions are written into the correct (hot or cold)
              section.
              (dbx_source_file): Add code so writing debug file information
              doesn't incorrectly change sections.
              * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
              in partitioning hot/cold basic blocks into separate sections.
              (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
              section partitioning.
              (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
              conditional branches can span all of memory.
              (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
              unconditional branches can span all of memory.
              * final.c (scan_ahead_for_unlikely_executed_note):  New function.
              (final_scan_insn):  Add code to check for NOTE instruction indicating
              whether basic block belongs in hot or cold section, and to make sure
              the current basic block is being written to the appropriate section.
              Also added code to ensure that jump table basic blocks end up in the
              correct section.
              * flags.h (flag_reorder_blocks_and_partition):  New flag.
              * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
              one of the branches has a jump that crosses between sections.
              (find_if_case_2): Likewise.
              (ifcvt): Modify to not attempt to mark loop exit edges after
              hot/cold partitioning has occurred.
              * opts.c (decode_options): Code to handle new flag,
              flag_reorder_blocks_and_partition; also to turn it off if
              flag_exceptions is on.
              (common_handle_option): Code to handle new flag,
              flag_reorder_blocks_and_partition.
              * output.h (unlikely_text_section): New extern function declaration.
              (in_unlikely_text_section): New extern function declaration.
              * passes.c (rest_of_handle_stack_regs):  Add
              flag_reorder_blocks_and_partition as an 'or' condition for calling
              reorder_basic_blocks.
              (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
              as an 'or' condition for calling reorder_basic_blocks.
              (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
              * print-rtl.c (print_rtx): Add code for handling new note,
              NOTE_INSN_UNLIKELY_EXECUTED_CODE
              * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
              (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
              cross between section boundaries.
              * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
              indicating the basic block containing it belongs in the cold section.
              (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
              between hot and cold sections.
              * toplev.c (flag_reorder_blocks_and_partition):  Add code to
              initialize this flag, and to tie it to the command-line option
              freorder-blocks-and-partition.
              * varasm.c (cfglayout.h):  Add new include statement.
              (unlikely_section_label_printed):  New global variable, used for
              determining when to output section name labels for cold sections.
              (in_section):  Add in_unlikely_executed_text to enum data structure.
              (text_section):  Modify code to use SECTION_FORMAT_STRING and
              NORMAL_TEXT_SECTION_NAME macros.
              (unlikely_text_section):  New function.
              (in_unlikely_text_section):  New function.
              (function_section):  Add code to make sure beginning of function is
              written into correct section (hot or cold).
              (assemble_start_function):  Add code to make sure stuff is written to
              the correct section.
              (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
              to an if statement that was checking 'in_text_section'.
              (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
              condition to an if statement that was checking 'in_text_section'.
              (default_section_type_flags_1):  Add check: if in cold section
              flags = SECTION_CODE.
              * config/darwin.c (darwin_asm_named_section):  Modify to use
              SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
              * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
              specifically for the i386.
              (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
              * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
              text string to something more informative.
              (NORMAL_TEXT_SECTION_NAME): Add new definition.
              (SECTION_FORMAT_STRING):  Add new definition.
              * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
              '!in_unlikely_text_section' as an 'and' condition to an if statement
              that was already checking '!in_text_section'.
              * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
              UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
              sure these are properly defined for linux on ppc.
              * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
              for this new flag.
              * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
              reg_note.
              * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
              HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
              these new macros.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@80564 138bc75d-0d04-0410-961f-82ee72b054a4
      4f18499c
  36. 02 Apr, 2004 1 commit