1. 18 Mar, 2005 1 commit
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 27 Jan, 2005 2 commits
  8. 29 Nov, 2004 2 commits
  9. 18 Nov, 2004 1 commit
  10. 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
  11. 29 Oct, 2004 1 commit
  12. 28 Oct, 2004 1 commit
  13. 27 Oct, 2004 1 commit
  14. 14 Oct, 2004 1 commit
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 13 May, 2004 1 commit
  29. 11 May, 2004 1 commit
  30. 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
  31. 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
  32. 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
  33. 02 Apr, 2004 1 commit
  34. 14 Mar, 2004 1 commit
    • sayle's avatar
      · dc24ddbd
      sayle authored
      	* alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
      	with lang_hooks.foo ().
      	* builtins.c (expand_builtin_va_arg): Likewise.
      	* c-common.c (fname_as_string, c_common_truthvalue_conversion,
      	c_common_type_for_mode, c_common_nodes_and_builtins,
      	handle_mode_attribute, handle_vector_size_attribute): Likewise.
      	* c-convert.c (convert): Likewise.
      	* c-format.c (check_format_types): Likewise.
      	* c-objc-common.c (c_tree_printer): Likewise.
      	* c-typeck.c (build_unary_op, build_conditional_expr,
      	build_binary_op): Likewise.
      	* calls.c (try_to_integrate, expand_call,
      	emit_library_call_value_1): Likewise.
      	* cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
      	Likewise.
      	* cgraphunit.c (record_call_1, cgraph_analyze_function,
      	cgraph_expand_function): Likewise.
      	* convert.c (convert_to_pointer, convert_to_integer): Likewise.
      	* coverage.c (build_fn_info_type, build_ctr_info_type,
      	build_gcov_info, create_coverage): Likewise.
      	* dbxout.c (dbxout_init): Likewise.
      	* diagnostic.c (diagnostic_report_current_function): Likewise.
      	* dojump.c (do_jump): Likewise.
      	* dwarf2out.c (dwarf2_name): Likewise.
      	* except.c (init_eh): Likewise.
      	* explow.c (expr_size, int_expr_size): Likewise.
      	* expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
      	Likewise.
      	* expr.c (store_expr, store_constructor, safe_from_p,
      	expand_expr_real, do_store_flag, try_casesi): Likewise.
      	* function.c (push_function_context_to, pop_function_context_from,
      	free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
      	put_var_into_stack, allocate_struct_function, current_function_name):
      	Likewise.
      	* integrate.c (copy_decl_for_inlining, expand_inline_function):
      	Likewise.
      	* langhooks.c (lhd_clear_binding_stack, write_global_declarations,
      	lhd_print_error_function): Likewise.
      	* opts.c (handle_option, decode_options): Likewise.
      	* passes.c (open_dump_file): Likewise.
      	* print-tree.c (print_node): Likewise.
      	* stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
      	expand_decl_cleanup, emit_case_nodes): Likewise.
      	* stor-layout.c (variable_size): Likewise.
      	* toplev.c (announce_function, wrapup_global_declarations,
      	check_global_declarations, compile_file, default_tree_printer,
      	process_options, lang_dependent_init, finalize): Likewise.
      	* tree-dump.c (dequeue_and_dump): Likewise.
      	* tree-inline.c (remap_decl, remap_block, copy_body_r,
      	initialize_inlined_parameters, declare_return_variable,
      	inlinable_function_p, expand_call_inline, optimize_inline_calls,
      	walk_tree, copy_tree_r): Likewise.
      	* tree-optimize.c (tree_rest_of_compilation): Likewise.
      	* tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
      	unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
      	variably_modified_type_p, dump_tree_statistics): Likewise.
      	* varasm.c (assemble_variable, compare_constant, copy_constant,
      	force_const_mem, compute_reloc_for_constant, output_constant,
      	output_addressed_constants, initializer_constant_valid_p): Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79481 138bc75d-0d04-0410-961f-82ee72b054a4
      dc24ddbd
  35. 10 Mar, 2004 1 commit
    • wilson's avatar
      New option -Wstrict-aliasing=2. · c1628b55
      wilson authored
      	* alias.c (alias_sets_might_conflict_p): New.
      	* c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
      	* common.opt (Wstrict-aliasing=): New.
      	* flags.h (warn_strict_aliasing): Change type to int.
      	* opts.c (warn_strict_aliasing): Change type to int.
      	(common_handle_option): Handle OPT_Wstrict_aliasing_.
      	* tree.h (alias_sets_might_conflict_p): Declare it.
      	* doc/invoke.tex (-Wstrict-aliasing=2): Document it.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79222 138bc75d-0d04-0410-961f-82ee72b054a4
      c1628b55
  36. 03 Mar, 2004 1 commit
    • dje's avatar
      2004-03-03 Mostafa Hagog <mustafa@il.ibm.com> · 839f8415
      dje authored
              * common.opt: Add description of the new -fgcse-after-reload flag.
      
              * flags.h (flag_gcse_after_reload): Declaration of global variable.
      
              * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
              reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
              is_jump_table_basic_block, bb_has_well_behaved_predecessors,
              get_bb_avail_insn, hash_scan_set_after_reload,
              compute_hash_table_after_reload, eliminate_partially_redundant_loads,
              gcse_after_reload, get_bb_avail_insn): New functions to implement
              gcse-after-reload.
              (gcse_after_reload_main): New function, the main entry point to
              gcse-after-reload.
      
              * rtl.h (gcse_after_reload_main): Declaration of the new function.
      
              * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
      
              * toplev.c (flag_gcse_after_reload): Initialization.
      
              * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
      
              * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
              PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
              the gcse after reload optimization.
      
              * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
              GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
              parameters.
      
              * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78842 138bc75d-0d04-0410-961f-82ee72b054a4
      839f8415
  37. 23 Feb, 2004 1 commit
    • kazu's avatar
      gcc/ · a814bad5
      kazu authored
      	Remove -fwritable-strings.
      	* c-common.c (fix_string_type): Don't check
      	flag_writable_strings.
      	(fix_string_type): Likewise.
      	* c-opts.c (set_std_c89): Don't initialize
      	flag_writable_strings.
      	(set_std_c99): Likewise.
      	* common.opt (fwritable-strings): Remove.
      	* flags.h: Remove the external declaration of
      	flag_writable_strings.
      	* opts.c (common_handle_option) <OPT_fwritable_strings>:
      	Remove.
      	* toplev.c (flag_writable_strings): Remove.
      	(f_options): Remove an entry for writable-strings.
      	* varasm.c (const_hash_1) <STRING_CST>: Don't check
      	flag_writable_strings.
      	(compare_constant) <STRING_CST>: Likewise.
      	(build_constant_desc): Likewise.
      	* config/darwin.c (machopic_select_section): Likewise.
      	* config/arm/arm.c (AOF_ASSEMBLER): Likewise.
      	* config/arm/pe.c (arm_pe_encode_section_info): Likewise.
      	* config/iq2000/iq2000.c (iq2000_select_section): Likewise.
      	* config/mips/mips.c (mips_select_section): Likewise.
      	(mips_encode_section_info): Likewise.
      	* config/pa/pa.c (pa_select_section): Likewise.
      	* config/pa/pa.h (TEXT_SPACE_P): Likewise.
      	* config/v850/v850.c (v850_select_section): Likewise.
      	* doc/invoke.texi (-fwritable-strings): Remove.
      	(-fno-const-strings): Don't mention -fwritable-strings.
      	* doc/trouble.texi: Don't mention -fwritable-strings.
      
      gcc/cp/
      	* decl.c (cxx_init_decl_processing): Don't check
      	flag_writable_strings.
      
      gcc/testsuite/
      	* gcc.dg/fwritable-strings-1.c: Remove.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78333 138bc75d-0d04-0410-961f-82ee72b054a4
      a814bad5