1. 28 Jan, 2007 1 commit
    • common.opt: Add fstrict-overflow. · eeef0e45
      ./:	* common.opt: Add fstrict-overflow.
      	* opts.c (decode_options): Set flag_strict_overflow if -O2.
      	* flags.h (TYPE_OVERFLOW_WRAPS): Define.
      	(TYPE_OVERFLOW_UNDEFINED): Define.
      	(TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
      	Replace all uses.
      	* tree.h (TYPE_TRAP_SIGNED): Don't define.
      	* fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
      	(fold_negate_expr): Likewise.
      	(make_range): Likewise.
      	(extract_muldiv_1): Likewise.
      	(maybe_canonicalize_comparison): Likewise.
      	(fold_comparison): Likewise.
      	(fold_binary): Likewise.
      	(tree_expr_nonnegative_p): Likewise.
      	(tree_expr_nonzero_p): Likewise.
      	* tree-vrp.c (compare_values): Likewise.
      	(extract_range_from_binary_expr): Likewise.
      	(extract_range_from_unary_expr): Likewise.
      	* tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
      	Likewise.
      	(nowrap_type_p): Likewise.
      	* tree-scalar-evolution.c (simple_iv): Likewise.
      	* fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
      	(build_range_check): Likewise.
      	(extract_muldiv_1): Likewise.
      	(fold_comparison): Likewise.
      	* tree-vrp.c (vrp_int_const_binop): Likewise.
      	(extract_range_from_unary_expr): Likewise.
      	* convert.c (convert_to_integer): Likewise.
      	* fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
      	(fold_comparison): Likewise.
      	(fold_binary): Likewise.
      	* optabs.c (optab_for_tree_code): Likewise.
      	* tree-vectorizer.c (vect_is_simple_reduction): Likewise.
      	* simplify-rtx.c (simplify_const_relational_operation): Check
      	flag_strict_overflow and flag_trapv.
      	(simplify_const_relational_operation): Likewise.
      	* doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
      	(Optimize Options): Add -fstrict-overflow to -O2 list.  Document
      	-fstrict-overflow.
      testsuite/:
      	* gcc.dg/strict-overflow-1.c: New test.
      	* gcc.dg/no-strict-overflow-1.c: New test.
      	* gcc.dg/strict-overflow-2.c: New test.
      	* gcc.dg/no-strict-overflow-2.c: New test.
      	* gcc.dg/strict-overflow-3.c: New test.
      	* gcc.dg/no-strict-overflow-3.c: New test.
      	* gcc.dg/strict-overflow-4.c: New test.
      	* gcc.dg/no-strict-overflow-4.c: New test.
      	* gcc.dg/fold-mod-1.c: Add -fstrict-overflow option.
      	* gcc.dg/pr15784-1.c: Likewise.
      	* gcc.dg/pr20922-1.c: Likewise.
      	* gcc.dg/pr20922-3.c: Likewise.
      	* gcc.dg/pr20922-4.c: Likewise.
      	* gcc.dg/pr20922-6.c: Likewise.
      	* gcc.dg/compare-4.c: Likewise.
      	* gcc.dg/torture/pr26898-1.c: Likewise.
      	* gcc.dg/tree-ssa/divide-1.c: Likewise.
      	* gcc.dg/tree-ssa/divide-2.c: Likewise.
      	* gcc.dg/tree-ssa/divide-3.c: Likewise.
      	* gcc.dg/tree-ssa/divide-4.c: Likewise.
      	* gcc.dg/tree-ssa/pr14490-1.c: Likewise.
      	* gcc.dg/tree-ssa/pr14490-3.c: Likewise.
      	* gcc.dg/tree-ssa/pr21082.c: Likewise.
      	* gcc.dg/tree-ssa/pr26899.c: Likewise.
      	* g++.dg/tree-ssa/pr21082.C: Likewise.
      
      From-SVN: r121254
      Ian Lance Taylor committed
  2. 27 Jan, 2007 1 commit
  3. 25 Jan, 2007 2 commits
    • invoke.texi (-Wcoverage-mismatch): Document. · 16c1c158
      2007-01-25  Richard Guenther  <rguenther@suse.de>
      
      	* doc/invoke.texi (-Wcoverage-mismatch): Document.
      	* common.opt (-Wcoverage-mismatch): New warning option.
      	* coverage.c (get_coverage_counts): Ignore coverage mismatch
      	if -Wcoverage-mismatch is given.
      
      	* gcc.dg/tree-prof/tree-prof.exp: Define _PROFILE_GENERATE
      	and _PROFILE_USE.
      	* gcc.dg/tree-prof/wcoverage-mismatch.c: New testcase.
      
      From-SVN: r121169
      Richard Guenther committed
    • c-common.h (RID_FIRST_CXX0X): New. · e1f1ee86
      2007-01-24  Douglas Gregor  <dgregor@osl.iu.edu>
      
      	* c-common.h (RID_FIRST_CXX0X): New.
      	(RID_LAST_CXX0X): New.
      	* c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
      	by -Wall.
      	* c.opt (Wc++0x-compat): New.
      	* doc/invoke.texi (-Wc++0x-compat): Document.
      
      From-SVN: r121162
      Douglas Gregor committed
  4. 24 Jan, 2007 3 commits
    • ipa-inline.c (initial_insns, max_insns): Delete. · b7c27d51
      	* ipa-inline.c (initial_insns, max_insns): Delete.
      	(compute_max_insns): New function.
      	(cgraph_decide_inlining_of_small_function): Use it; take minimal amount
      	of insns as base for code growth.
      	(cgraph_decide_inlining): Make initial_insns local; do not compute
      	max_insns.
      	* params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
      	* doc/invoke.texi (inline-unit-growth): Update docs.
      
      From-SVN: r121144
      Jan Hubicka committed
    • target.h (globalize_decl_name): New. · 812b587e
      	* target.h (globalize_decl_name): New.
      	* target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
      	* output.h (default_globalize_decl_name): New.
      	* varasm.c (asm_output_bss): Use globalize_decl_name instead of
      	globalize_label.
              (globalize_decl): Ditto.
      	(default_globalize_decl_name): New.
      	* config/ia64/ia64.c (ia64_globalize_decl_name): New.
      	(ia64_handle_version_id_attribute): New.
      	(TARGET_ASM_GLOBALIZE_DECL_NAME): New.
      	(ia64_asm_output_external): Use globalize_decl_name instead
      	of globalize_label.
      	* doc/extend.texi (version_id): New pragma.
      	* doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
      
      From-SVN: r121128
      Steve Ellcey committed
    • c-cppbuiltin.c (builtin_define_type_sizeof): New function. · 024a85ae
      2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* c-cppbuiltin.c (builtin_define_type_sizeof): New function.
      	(c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
      	__SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
      	__SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
      	__SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
      	__SIZEOF_PTRDIFF_T__.
      	* doc/cpp.texi: Documentation for the new builtin macros added.
      
      2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* gcc.c-torture/compile/sizeof-macros-1.c: New testcase.
      
      From-SVN: r121107
      Andreas Krebbel committed
  5. 21 Jan, 2007 1 commit
    • invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox. · 78681dbd
      	* doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
      	(-fdump-rtl-stack): Likewise.
      	(-fno-signed-zeros): Use @minus{} for a minus sign.  Correct typo.
      	(-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
      	(-mpt-fixed): Use @minus{} for minus sign.
      	(Using Precompiled Headers): Fix under/overfull hbox.
      
      
      Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
      
      From-SVN: r121023
      Roger Sayle committed
  6. 19 Jan, 2007 3 commits
    • common.opt (fsigned-zeros): New command line option. · db02da79
      	* common.opt (fsigned-zeros): New command line option.
      	* flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
      	of flag_unsafe_math_optimizations.
      	* opts.c (set_fast_math_flags): The -ffast-math command line option
      	implies -fno-signed-zeros.
      	(fast_math_flags_set_p): Likewise.
      
      	* doc/invoke.texi: Document new -fno-signed-zeros option, and update
      	the documentation of -ffast-math appropriately.  Wrap long lines.
      
      	* gcc.dg/pr30172-1.c: Specify the -fno-signed-zeros command line
      	option instead of -funsafe-math-optimizations.
      
      From-SVN: r120978
      Roger Sayle committed
    • gty.texi (Options): Document the mark_hook option to GTY. · 8d6419b2
      2007-01-19  Basile Starynkevitch  <basile@starynkevitch.net>
      
      	* gcc/doc/gty.texi (Options): Document the mark_hook option to
      	GTY.
      	* gcc/gengtype.c (write_types_data, write_func_for_structure,
      	write_types, ggc_wtd, pch_wtd): Added skip_hooks to
      	write_types_data, ggc_wtd, pch_wtd for mark_hook.
      	(walk_type, write_func_for_structure): Generate the mark_hook if
      	needed.
      
      	* MAINTAINERS: added myself (Basile Starynkevitch) to write after
      	approval.
      
      From-SVN: r120973
      Basile Starynkevitch committed
    • tm.texi (TARGET_HAS_SINCOS): Document new target macro. · 006339cd
      2007-01-19  Richard Guenther  <rguenther@suse.de>
      
      	* doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
      	* defaults.h (TARGET_HAS_SINCOS): Default to off.
      	* config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
      	* config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
      	* config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
      	* config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
      	* config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
      	* config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
      
      From-SVN: r120952
      Richard Guenther committed
  7. 18 Jan, 2007 3 commits
    • 200x-xx-xx Kazu Hirata <kazu@codesourcery.com> Richard Sandiford <richard@codesourcery.com> · 576c9028
      gcc/
      200x-xx-xx  Kazu Hirata  <kazu@codesourcery.com>
      	    Richard Sandiford  <richard@codesourcery.com>
      
      	* doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
      	parallels.
      	* calls.c (expand_call): If the return value is a PARALLEL,
      	extract its first member.
      	* config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
      	* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
      	use FUNCTION_EXTRA_EPILOGUE.
      	(m68k_function_value): Return a PARALLEL if the return value
      	is of a pointer type.
      	* config/m68k/netbsd-elf.h (current_function_returns_pointer)
      	(FUNCTION_EXTRA_EPILOGUE): Remove.
      	* config/m68k/m68k.md (D0_REG): New constant.
      
      Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
      
      From-SVN: r120929
      Kazu Hirata committed
    • · Richard Guenther <rguenther@suse.de> · 590b1f2d
      2007-01-18  Dirk Mueller  <dmueller@suse.de>
      ·           Richard Guenther <rguenther@suse.de>
      
      ·       PR diagnostic/8268
      ·       * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
      ·       * common.opt (Warray-bounds): Add new warning option.
      ·       * c-opts.c (c_common_handle_option): Define -Warray-bounds
      ·       if -Wall is given.
              * Makefile.in: make tree-vrp.o depend on toplev.h
      ·       * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
      ·       is enabled.
      ·       (check_array_refs, check_array_bounds, check_array_ref): New.
      
      ·       * gcc.dg/Warray-bounds.c: New testcase.
              * gcc.dg/Warray-bounds-2.c: New testcase.
              * g++.dg/warn/Warray-bounds.C: New testcase.
              * g++.dg/warn/Warray-bounds-2.C: New testcase.
      
      From-SVN: r120898
      Dirk Mueller committed
  8. 17 Jan, 2007 1 commit
  9. 15 Jan, 2007 1 commit
    • sourcebuild.texi (libgcj Tests): Don't mention jacks. · 69403237
      gcc
      	* doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
      	* doc/install.texi (Testing): Don't mention jacks.
      	(Configuration): Document --enable-java-maintainer-mode.  Move
      	--with-java-home to libgcj-specific section.  Document
      	--with-ecj-jar.
      	(Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
      contrib
      	* download_ecj: New file.
      
      From-SVN: r120802
      Tom Tromey committed
  10. 14 Jan, 2007 1 commit
    • param.h (MIN_VECT_LOOP_BOUND): New. · acdc40df
              * param.h (MIN_VECT_LOOP_BOUND): New.
              * params.def (MIN_VECT_LOOP_BOUND): New.
              * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
              argument - minimum threshold for number of iterations.
              * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
              argument to declaration.
              * tree-vect-analyze.c (vect_analyze_operations): Check value of
              MIN_VECT_LOOP_BOUND.
              * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
              slpeel_tree_peel_loop_to_edge with additional argument.
              (vect_do_peeling_for_alignment): Likewise.
              * doc/invoke.texi (min-vect-loop-bound): Document new param option.
      
      From-SVN: r120770
      Dorit Nuzman committed
  11. 12 Jan, 2007 8 commits
    • loop.texi: Document recording of loop exits. · 6270df4c
      	* doc/loop.texi: Document recording of loop exits.
      	* cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
      	(update_single_exits_after_duplication,
      	update_single_exit_for_duplicated_loop,
      	update_single_exit_for_duplicated_loops): Removed.
      	(duplicate_loop_to_header_edge): Do not call
      	update_single_exits_after_duplication and
      	update_single_exit_for_duplicated_loops.
      	(loop_version): Do not update single_exit information.
      	(fix_loop_structure): Use record_loop_exits instead of
      	mark_single_exit_loops.
      	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
      	the lists of loop exits.
      	* cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
      	split_edge, merge_blocks): Update the lists of loop exits.
      	* modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
      	loop_optimizer_init.
      	* loop-init.c (loop_optimizer_init): Call record_loop_exits instead
      	of mark_single_exit_loops.
      	(loop_optimizer_finalize): Call release_recorded_exits.
      	* tree-ssa-loop.c (tree_loop_optimizer_init): Pass
      	LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
      	* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
      	update single exit information.
      	* lambda-code.c (perfect_nestify): Ditto.
      	* cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
      	(mark_single_exit_loops): Removed.
      	(alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
      	get_exit_descriptions, rescan_loop_exit, record_loop_exits,
      	dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
      	functions.
      	(get_loop_exit_edges, single_exit): Use recorded exit lists.
      	(add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
      	(verify_loop_structure): Verify consistency of the exit lists.
      	(flow_loops_find): Use alloc_loop.  Initialize exits hash.
      	(set_single_exit): Removed.
      	* cfgloop.h (struct loop_exit): New function.
      	(struct loop): single_exit_ field replaced by exits field.
      	(LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by LOOPS_HAVE_RECORDED_EXITS.
      	(struct loops): Added exits hash.
      	(mark_single_exit_loops, set_single_exit): Declaration removed.
      	(release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
      
      From-SVN: r120728
      Zdenek Dvorak committed
    • invoke.texi: Avoid use of @headitem. · 1cbe999f
      gcc/
      	* doc/invoke.texi: Avoid use of @headitem.
      
      From-SVN: r120726
      Richard Sandiford committed
    • install.texi: Fix m68k-*-* anchor and add m68k-*-* to the list of targets. · 183dc04b
      gcc/
      	* doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
      	list of targets.
      
      From-SVN: r120718
      Richard Sandiford committed
    • 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford <richard@codesourcery.com> · 64826589
      gcc/
      200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>
      	    Richard Sandiford  <richard@codesourcery.com>
      
      	* doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
      	* config/m68k/m68k.opt: Resort options.
      	(mbitfield, mrtd, mshort): Remove RejectNegative properties.
      
      Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
      
      From-SVN: r120717
      Nathan Sidwell committed
    • 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford <richard@codesourcery.com> · 7eb4f044
      gcc/
      200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>
      	    Richard Sandiford  <richard@codesourcery.com>
      
      	* doc/invoke.texi: Document the macros that are defined by
      	m68k's -mtune and -mhard-float options.
      	* config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
      	(m68k_cpp_cpu_family): Likewise.
      	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
      	of __ucfv*__ macros.  Define __mcffpu__ if generating code for
      	ColdFire FPUs.  Define __mcf_cpu_* and __mcf_family_* macros.
      	* config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
      	(m68k_cpp_cpu_family): Likewise.
      
      Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
      
      From-SVN: r120716
      Nathan Sidwell committed
    • 200x-xx-xx Julian Brown <julian@codesourcery.com> Nathan Sidwell... · 900ec02d
      gcc/
      200x-xx-xx  Julian Brown  <julian@codesourcery.com>
      	    Nathan Sidwell  <nathan@codesourcery.com>
      	    Richard Sandiford  <richard@codesourcery.com>
      
      	* config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
      	the -mcpu= argument associated with the --with-cpu setting.
      	Define M68K_DEFAULT_TUNE to the default -mtune= option,
      	if different from the one implied by the -mcpu setting.
      	Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
      	using mcpu=FOO as the default CPU option.  Set target_cpu_default2.
      	* doc/invoke.texi: Mention ColdFire in the introduction to the
      	m68k options.  Document the new -march, -mcpu, -mtune, -mdiv,
      	-mno-div and -mhard-float options.  Make -m68881 a synonym for
      	-mhard-float.  Document the previously-undocumented -m5206e,
      	-m528x, -m5307 and -m5407 options.  Tweak the existing option
      	documentation for consistency.
      	* doc/install.texi: Mention new --with-cpu arguments.
      	* config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
      	default CPU if neither -mcpu nor -march are specified.
      	(ASM_CPU_SPEC): Pass down -mcpu and -march options.
      	(TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
      	TARGET_ISA*.  Set the legacy __mcf*__ cpu macros in the same way,
      	using m68k_tune to decide between families that implement the
      	same ISA.  Use m68k_tune to set __mcfv4e__.
      	(FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
      	(FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
      	(FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
      	(FL_ISA_C, FL_ISA_MMU): New macros.
      	(MASK_COLDFIRE): Delete.
      	(TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
      	(TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
      	(TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
      	(TARGET_HARD_FLOAT): Do not define here.
      	(TARGET_ISAAPLUS, TARGET_ISAC): New macros.
      	(TUNE_68000): New macro.
      	(TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
      	(TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
      	(TUNE_CFV2): Redefine in terms of m68k_tune.
      	(uarch_type, target_device, fpu_type): New enums.
      	(m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
      	* config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
      	(FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
      	(FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
      	(FL_FOR_isa_c): New macros.
      	(m68k_isa): New enum.
      	(m68k_target_selection): New structure.
      	(all_devices, all_isas, all_microarchs): New tables.
      	(m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
      	(m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
      	(MASK_ALL_CPU_BITS): Delete.
      	(m68k_find_selection): New function.
      	(m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
      	Map the legacy target options to a combination of the new ones.
      	(override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
      	m68k_cpu_flags.  Handle M68K_DEFAULT_TUNE.  Use m68k_cpu_flags
      	to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
      	settings.
      	* config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
      	(m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
      	properties.
      	(m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
      	(march=, mcpu=, mdiv, mhard-float, mtune=): New options.
      	* config/m68k/m68k-devices.def: New file.
      
      Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>
      Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
      
      From-SVN: r120713
      Julian Brown committed
    • 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford... · 59fbf3cb
      gcc/
      200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>
      	    Richard Sandiford  <richard@codesourcery.com>
      	    Julian Brown  <julian@codesourcery.com>
      
      	* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
      	(m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
      	to the configuration's default CPU.
      	(m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
      	Remove default masks.
      	(m680[012]0-*-*): Set the default with_cpu to the first part of
      	the target name.
      	(m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
      	(m68k*-*-linux): Extend the --with-cpu handling to...
      	(m680[012]0-*-*, m68k*-*-*): ...these configurations.  Allow m68000
      	and m68010.  Don't set target_cpu_default2.
      	* doc/install.texi: Document --with-cpu for m68k.
      	* config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
      	* config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
      	(M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
      	(M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
      	(ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
      	(ASM_SPEC): Remove use of %(asm_cpu_default).
      	(EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
      	* config/m68k/linux.h (TARGET_DEFAULT): Delete.
      	(CPP_SPEC): Merge definitions.  Do not handle __HAVE_68881__ here.
      	* config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
      	__HAVE_FPU__ if TARGET_HARD_FLOAT.
      	(TARGET_DEFAULT): Delete.
      	(EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
      	cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
      	(CPP_CPU_SPEC): Delete.
      	(TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
      	the appropriate string.
      	(CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
      	(CPP_SPEC): Define to NETBSD_CPP_SPEC.
      	(ASM_SPEC): Don't use %(asm_default_spec).
      	* config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
      	TARGET_DEFAULT and add MASK_68881.
      	* config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
      
      Co-Authored-By: Julian Brown <julian@codesourcery.com>
      Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
      
      From-SVN: r120711
      Nathan Sidwell committed
    • config.gcc (m68010-*-netbsdelf*): Add MASK_68010. · 3197c489
      gcc/
      	* config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
      	(m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
      	MASK_68010 alongside MASK_68020.
      	* doc/invoke.texi: Document -m68010.
      	* config/m68k/m68k.opt (m68010): New.
      	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
      	if TUNE_68010.
      	(TUNE_68010): New macro.
      	* config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
      	(M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
      	(M68K_CPU_m68332): Add MASK_68010.
      	* config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
      	fallback definition.
      	* config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
      	defines.
      	* config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
      	(m68k_handle_option): Handle OPT_m68010.  Add MASK_68010
      	to all entries that use MASK_68020.
      	(output_move_simode_const, output_move_himode, output_move_qimode)
      	(output_move_stricthi, output_move_strictqi): Use TARGET_68010
      	instead of TARGET_68020 to select clr behavior.  Remove comment
      	about there being no TARGET_68010.
      	* config/m68k/m68k.md: Likewise throughout.
      
      From-SVN: r120710
      Richard Sandiford committed
  12. 11 Jan, 2007 2 commits
    • PR preprocessor/15185, PR preprocessor/20989: · 78392049
      	* doc/cppopts.texi <-MT>: Update description of algorithm for
      	computing default target.
      	<-M, -MD>: Reword "basename" text.
      
      From-SVN: r120679
      Tom Tromey committed
    • configure.ac (strict1_warn): Rename to strict_warn. · 8b1f719a
      2007-01-11  Paolo Bonzini  <bonzini@gnu.org>
      
      	* configure.ac (strict1_warn): Rename to strict_warn.
      	(WERROR, --enable-werror, symlink hacks, stage1_cflags,
      	cc_set_by_configure, quoted_cc_set_by_configure,
      	stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
      	all_boot_languages, all_stagestuff): Remove.
      	(target_list): Remove bootstrap targets.
      	* Makefile.in (quickstrap): Unconditionally make a synonym of all.
      	(BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
      	REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
      	SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
      	VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
      	STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
      	stage1_copy, stage2_build, stage2_copy, stageprofile_build,
      	stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
      	stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
      	bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
      	bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
      	unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
      	restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
      	cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
      	*compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
      	stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
      	stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
      	risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
      	(ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
      	(STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
      	(mostlyclean): Adjust.
      	(clean, distclean): Don't mention bootstrap stuff.
      	* configure: Regenerate.
      	* ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
      	java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
      	treelang/config-lang.in (stagestuff): Remove.
      	* doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
      	stageprofile, stagefeedback, stagestuff): Remove mention.
      
      From-SVN: r120670
      Paolo Bonzini committed
  13. 09 Jan, 2007 3 commits
    • tm.texi: Update documentation to reflect reality of exec and start file search behaviours. · fe037b8a
      gcc/
      
      2007-01-09  Carlos O'Donell  <carlos@codesourcery.com>
      
      	* doc/tm.texi: Update documentation to reflect reality of exec
      	and start file search behaviours. Update copyright year.
      	* doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
      	header file directories.
      
      From-SVN: r120622
      Carlos O'Donell committed
    • Index: ChangeLog · 157600d0
      2007-01-08  Geoffrey Keating  <geoffk@apple.com>
      
      	* target.h (struct gcc_target): New field library_rtti_comdat.
      	* target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
      	(TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
      	* doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
      	* config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
      
      Index: testsuite/ChangeLog
      2007-01-08  Geoffrey Keating  <geoffk@apple.com>
      
      	* g++.dg/rtti/darwin-builtin-linkage.C: New.
      
      Index: cp/ChangeLog
      2007-01-08  Geoffrey Keating  <geoffk@apple.com>
      
      	* rtti.c: Include target.h.
      	(emit_support_tinfos): If ! targetm.cxx.library_rtti_comdat (),
      	don't emit typeinfo for fundamental types as weak.
      	* Make-lang.in (cp/rtti.o): Update and correct dependencies.
      
      From-SVN: r120611
      Geoffrey Keating committed
  14. 08 Jan, 2007 3 commits
    • genautomata.c (STATS_OPTION): New option. · df1133a6
      	* genautomata.c (STATS_OPTION): New option.
      	(stats_flag): New flag.
      	(gen_automata_option): Handle it.
      	(initiate_automaton_gen): Ditto.
      	(write_automata): Output statistics only if stats_flag is
      	set. Likewise, output time statistics only if time_flag is set.
      	* doc/md.texi (Processor pipeline description): Document new flag.
      
      From-SVN: r120594
      Ben Elliston committed
    • c.opt: Add -flax-vector-conversions. · 00c8e9f6
      	gcc/
      	* c.opt: Add -flax-vector-conversions.
      	* c-typeck.c (convert_for_assignment): Pass flag to
      	vector_types_convertible_p to allow emission of note.
      	(digest_init): Likewise.
      	(comptypes_internal): Use vector_types_convertible_p.
      	* c-opts.c: Handle -flax-vector-conversions.
      	* c-common.c (flag_lax_vector_conversions): New.
      	(vector_types_convertible_p): Unless -flax-vector conversions
      	has been passed, disallow conversions between vectors with
      	differing numbers of subparts and/or element types.  If such
      	a conversion is disallowed, possibly emit a note on the first
      	occasion only to inform the user of -flax-vector-conversions.
      	The new last argument specifies this.
      	* c-common.h (flag_lax_vector_conversions): New.
      	(vector_types_convertible_p): Add extra argument.
      	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
      	char_type_node for V*QI type vectors.
      	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
      	Update to satisfy new typechecking rules.
      	* config/rs6000/altivec.h (vec_cmple): Use vec_cmpge.
      	* doc/invoke.texi (C Dialect Options): Document
      	-flax-vector-conversions.
      
      	gcc/cp/
      	* call.c (standard_conversion): Pass flag to
      	vector_types_convertible_p to disallow emission of note.
      	* typeck.c (convert_for_assignment): Pass flag to
      	vector_types_convertible_p to allow emission of note.
      	(ptr_reasonably_similar): Pass flag to vector_types_convertible_p
      	to disallow emission of note.
      
      	gcc/testsuite/
      	* gcc.target/i386/20020531-1.c: Use "char" not "unsigned char"
      	in __v8qi typedef.
      	* gcc.target/powerpc/altivec-vec-merge.c (foo): Add casts.
      	* gcc.dg/simd-1.c: Update dg-error directives to reflect new
      	compiler behaviour.
      	* gcc.dg/simd-5.c: Likewise.
      	* gcc.dg/simd-6.c: Likewise.
      	* g++.dg/conversion/simd1.C: Likewise.
      	* g++.dg/conversion/simd3.C: Likewise.
      	* g++.dg/ext/attribute-test-2.C (data): Add "vs" member.
      	(main): Use it.
      
      From-SVN: r120572
      Mark Shinwell committed
    • arm.c, [...]: Fix comment typos. · 7a085dce
      	* config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
      	config/arm/thumb2.md: Fix comment typos.
      	* doc/extend.texi: Fix a typo.
      
      From-SVN: r120566
      Kazu Hirata committed
  15. 05 Jan, 2007 2 commits
  16. 04 Jan, 2007 1 commit
    • Makefile.def (target_modules): Add libgcc. · fa958513
      ./	* Makefile.def (target_modules): Add libgcc.
      	(lang_env_dependencies): Remove default items.  Use no_c and no_gcc.
      	* Makefile.tpl (clean-target-libgcc): Delete.
      	(configure-target-[+module+]): Emit --disable-bootstrap dependencies
      	on gcc even for bootstrapped modules.  Rewrite handling of
      	lang_env_dependencies to loop over target_modules.
      	* configure.in (target_libraries): Add target-libgcc.
      	* Makefile.in, configure: Regenerated.
      gcc/
      	* config.gcc: Mention libgcc/config.host.
      	* Makefile.in: Update comments mentioning libgcc.
      	(LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
      	(all.cross, start.encap, rest.encap, rest.cross): Update
      	dependencies for libgcc move.
      	(libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
      	(clean-target, clean-target-libgcc): Delete.
      	(srcdirify, GCC_EXTRA_PARTS): New macros.
      	(libgcc-support, libgcc.mvars): New rules.
      	(distclean): Remove mention of mklibgcc.
      	(install): Don't reference INSTALL_LIBGCC.
      	(install-common): Don't reference EXTRA_PARTS.
      	(install-libgcc, install-multilib): Delete rules.
      	* mklibgcc.in: Delete file.
      	* doc/configfiles.texi: Don't mention mklibgcc.
      
      	* config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
      	* config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
      	* config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
      	* config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
      	(mklibgcc, ldblspecs): Likewise.
      
      	* config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
      	(posixpre.def): Use $(T).
      	(SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
      	(SHLIB_SRC, SHLIB_INSTALL): Delete.
      	(SHLIB_LINK): Make dummy.
      	* config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
      
      	* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
      
      	* config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
      	* config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
      	config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
      	config/rs6000/t-newas, config/sparc/t-elf: Likewise.
      
      	* configure.ac (all_outputs): Remove mklibgcc.
      	* configure: Regenerated.
      libgcc/
      	* Makefile.in, config/i386/t-darwin, config/i386/t-darwin64,
      	config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128,
      	config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64,
      	config/sparc/t-crtfm, config/t-slibgcc-darwin,
      	config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk,
      	shared-object.mk, siditi-object.mk, static-object.mk: New files.
      	* configure: Generated.
      
      Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>
      
      From-SVN: r120429
      Daniel Jacobowitz committed
  17. 03 Jan, 2007 1 commit
    • backport: thumb2.md: New file. · 5b3e6663
      2007-01-03  Paul Brook  <paul@codesourcery.com>
      
      	Merge from sourcerygxx-4_1.
      	gcc/
      	* config/arm/thumb2.md: New file.
      	* config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
      	Thumb-2.
      	* config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
      	* config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
      	(ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
      	* config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
      	tables.
      	(ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
      	* config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
      	comptibility.
      	* config/arm/ieee754-sf.S: Ditto.
      	* config/arm/arm.c (thumb_base_register_rtx_p): Rename...
      	(thumb1_base_register_rtx_p): ... to this.
      	(thumb_index_register_rtx_p): Rename...
      	(thumb1_index_register_rtx_p): ... to this.
      	(thumb_output_function_prologue): Rename...
      	(thumb1_output_function_prologue): ... to this.
      	(thumb_legitimate_address_p): Rename...
      	(thumb1_legitimate_address_p): ... to this.
      	(thumb_rtx_costs): Rename...
      	(thumb1_rtx_costs): ... to this.
      	(thumb_compute_save_reg_mask): Rename...
      	(thumb1_compute_save_reg_mask): ... to this.
      	(thumb_final_prescan_insn): Rename...
      	(thumb1_final_prescan_insn): ... to this.
      	(thumb_expand_epilogue): Rename...
      	(thumb1_expand_epilogue): ... to this.
      	(arm_unwind_emit_stm): Rename...
      	(arm_unwind_emit_sequence): ... to this.
      	(thumb2_legitimate_index_p, thumb2_legitimate_address_p,
      	thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
      	thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
      	arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
      	thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
      	thumb2_output_casesi): New functions.
      	(TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
      	(FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
      	FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
      	THUMB2_WORK_REGS): Define.
      	(arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
      	arm_condexec_mask, arm_condexec_masklen)): New variables.
      	(all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
      	(arm_override_options): Check new CPU capabilities.
      	Set new architecture flag variables.
      	(arm_isr_value): Handle v7m interrupt functions.
      	(user_return_insn): Return 0 for v7m interrupt functions.  Handle
      	Thumb-2.
      	(const_ok_for_arm): Handle Thumb-2 constants.
      	(arm_gen_constant): Ditto.  Use movw when available.
      	(arm_function_ok_for_sibcall): Return false for v7m interrupt
      	functions.
      	(legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
      	(thumb_find_work_register, arm_load_pic_register,
      	legitimize_tls_address, arm_address_cost, load_multiple_sequence,
      	emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
      	print_multi_reg, output_mov_long_double_fpa_from_arm,
      	output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
      	output_mov_double_fpa_from_arm, output_move_double,
      	arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
      	output_return_instruction, arm_output_function_prologue,
      	arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
      	arm_output_mi_thunk, thumb_set_return_address): Ditto.
      	(arm_expand_prologue): Handle Thumb-2.  Use arm_save_coproc_regs.
      	(arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
      	(arithmetic_instr, shift_op): Use arm_shift_nmem.
      	(arm_print_operand): Use arm_print_condition.  Handle '(', ')', '.',
      	'!' and 'L'.
      	(arm_final_prescan_insn): Use extract_constrain_insn_cached.
      	(thumb_expand_prologue): Use thumb_set_frame_pointer.
      	(arm_file_start): Output directive for unified syntax.
      	(arm_unwind_emit_set): Handle stack alignment instruction.
      	* config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
      	Add v6t2, v7, v7a, v7r and v7m.
      	(RETLDM): Add Thumb-2 code.
      	(do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
      	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
      	(TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
      	TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
      	THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
      	ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
      	THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
      	CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
      	ADJUST_INSN_LENGTH): Define.
      	(TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
      	STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
      	BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
      	PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
      	SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
      	TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
      	HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
      	HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
      	REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
      	REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
      	LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
      	GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
      	ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
      	FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
      	PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
      	(arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
      	* config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
      	cortex-m3.
      	* config/arm/arm-tune.md: Regenerate.
      	* config/arm/arm-protos.h: Update prototypes.
      	* config/arm/vfp.md: Enable patterns for Thumb-2.
      	(arm_movsi_vfp): Add movw alternative.  Use output_move_vfp.
      	(arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
      	(thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
      	thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
      	* config/arm/libunwind.S: Add Thumb-2 code.
      	* config/arm/constraints.md: Update include Thumb-2.
      	* config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
      	* config/arm/ieee754-df.S: Ditto.
      	* config/arm/bpabi.S: Ditto.
      	* config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
      	* config/arm/predicates.md (low_register_operand,
      	low_reg_or_int_operand, thumb_16bit_operator): New.
      	(thumb_cmp_operand, thumb_cmpneg_operand): Rename...
      	(thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
      	* config/arm/t-arm-elf: Add armv7 multilib.
      	* config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
      	Include thumb2.md.
      	(UNSPEC_STACK_ALIGN, ce_count): New.
      	(arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
      	arm_zero_extendsidi2, arm_zero_extendqidi2): New
      	insns/expanders.
      	* config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
      	(thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
      	thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
      	* config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
      	(cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
      	thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
      	insns.
      	* doc/extend.texi: Document ARMv7-M interrupt functions.
      	* doc/invoke.texi: Document Thumb-2 new cores+architectures.
      
      From-SVN: r120408
      Paul Brook committed
  18. 02 Jan, 2007 2 commits
    • re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags) · b1ed4cb4
      2007-01-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
      
      	PR middle-end/7651
      	* c.opt (Wold-style-declaration): New.
      	* doc/invoke.texi (C-only Warning Options): New.
      	(Wold-style-declaration): Document it.
      	(Wextra): Enabled by -Wextra.
      	* c-opts.c (c_common_post_options): Enabled by -Wextra.
      	* c-decl.c (declspecs_add_scspec): Replace -Wextra with
      	-Wold-style-declaration.
      
      testsuite/
      	* gcc.dg/declspec-3.c: Replace -W with -Wold-style-declaration.
      	* gcc.dg/declspec-3-Wextra.c: New.
      	* gcc.dg/declspec-3-no.c: New
      
      From-SVN: r120347
      Manuel López-Ibáñez committed
    • c-common.c (c_common_nodes_and_builtins): Since variants of void_type_node get… · 06d40de8
      c-common.c (c_common_nodes_and_builtins): Since variants of void_type_node get built before it is given a name...
      
      2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
      
      	* c-common.c(c_common_nodes_and_builtins): Since variants of
      	void_type_node get built before it is given a name, we need to
      	give those variants the name, too. 
      	(complete_array_type): We need to work with the canonical main
      	type of the array, from which we will build the qualified version.
      	* params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
      	* print-tree.c (print_node): Display canonical type information
      	for each type.
      	* stor-layout.c (layout_type): When we don't know the
      	alignment of a type for which we're building an array, we end up
      	guessing wrong, so make the type require structural equality.
      	* tree.c (make_node_stat): When we build a new type, it is its
      	own canonical type.
      	(build_type_attribute_qual_variant): When building an attribute
      	variant, its canonical type is the non-attribute variant. However,
      	if the attributes are target-dependent and they differ, we need to
      	use structural equality checks for this type.
      	(build_qualified_type): A qualified type is not equivalent to its
      	unqualified variant; set the canonical type appropriately.
      	(build_distinct_type_copy): When building a distinct type from
      	another type, the new type is its own canonical type.
      	(build_variant_type_copy): When building a new type variant, we
      	assume that it is equivalent to the original type.
      	(build_pointer_type_for_mode): When building a pointer type, also
      	build a canonical type pointer.
      	(build_reference_type_for_mode): When building a reference type,
      	also build a canonical type reference.
      	(build_index_type): When we can't hash an index type (e.g.,
      	because its maximum value is negative), the index type requires
      	structural equality tests.
      	(build_array_type): Build the canonical form of an array type.
      	(build_function_type): Function types require structural equality,
      	because they contain default arguments, attributes, etc. 
      	(build_method_type_directly): Ditto for method types.
      	(build_offset_type): Build the canonical offset type.
      	(build_complex_type): Build the canonical vector type.
      	(make_vector_type): Build the canonical vector type.
      	* tree.h (TYPE_CANONICAL): New.
      	(TYPE_STRUCTURAL_EQUALITY_P): New.
      	(SET_TYPE_STRUCTURAL_EQUALITY): New.
      	(struct tree_type): Added "canonical" field.
      	* params.h (VERIFY_CANONICAL_TYPES): New.
      	* doc/c-tree.texi (TYPE_CANONICAL): Document.
      	(TYPE_STRUCTURAL_EQUALITY_P): Document.
      	(SET_TYPE_STRUCTURAL_EQUALITY): Document.
      	* doc/invoke.texi (verify-canonical-types): Document --param
      	parameter for verifying canonical types.
      	
      2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
      
      	* typeck.c (structural_comptypes): Renamed from "comptypes".
      	(comptypes): Use canonical type information to perform fast type
      	comparison. When VERIFY_CANONICAL_TYPES, verify that the
      	canonical type comparison returns the same results as we would see
      	from the current, structural check. Support COMPARE_STRUCTURAL
      	when we need structural checks.
      	* decl.c (typename_compare): Fix comment.
      	(build_typename_type): TYPENAME_TYPE nodes require structural
      	equality checks, because they resolve different based on the
      	current class type.
      	(make_unbound_class_template): UNBOUND_CLASS_TEMPLATE nodes
      	require structural equality checks (for now).
      	(build_ptrmemfunc_type): Build the canonical pointer to member
      	function type.
      	(compute_array_index_type): Whenever we build a new index type
      	to represent the size of an array in a template, we need to mark
      	this index type as requiring structural equality. This goes for
      	arrays with value-dependent sizes with the current ABI, or all
      	arrays with ABI-1.
      	* tree.c (cplus_array_hash): New.
      	(struct cplus_array_info): New.
      	(cplus_array_compare): New.
      	(cplus_array_htab): New.
      	(build_cplus_array_type_1): Use a hash table to cache the array
      	types we build. Build the canonical array type for each array
      	type.
      	(cp_build_qualified_type_real): When building a cv-qualified array
      	type, use the hash table of array types and build canonical array
      	types as necessary.
      	(bind_template_template_parm): BOUND_TEMPLATE_TEMPLATE_PARM nodes
      	use structural equality (for now).
      	* cp-tree.h (COMPARE_STRUCTURAL): New.
      	* pt.c (canonical_template_parms): New.
      	(canonical_type_parameter): New.
      	(process_template_parm): Find the canonical type parameter.
      	(lookup_template_class): When we have named the primary template
      	type, set the canonical type for our template class to the primary
      	template type. If any of the template arguments need structural
      	equality checks, the template class needs structural equality
      	checks.
      	(tsubst): When reducing the level of a template template
      	parameter, we require structural equality tests for the resulting
      	parameter because its template parameters have not had their types
      	canonicalized. When reducing a template type parameter, find the
      	canonical reduced type parameter.
      	(any_template_arguments_need_structural_equality_p): New.
      
      2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
      	
      	* objc-act.c (objc_build_volatilized_type): Keep track of
      	canonical types.
      	(objc_get_protocol_qualified_type): Ditto.
      
      From-SVN: r120341
      Douglas Gregor committed
  19. 29 Dec, 2006 1 commit