1. 07 Jun, 2011 1 commit
  2. 04 Jun, 2011 1 commit
    • invoke.texi: Document -Wdelete-non-virtual-dtor. · 014ab419
      	* doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
      
      c-family:
      	* c.opt: Add -Wdelete-non-virtual-dtor.
      	* c-opts.c (c_common_handle_option): Include it in -Wall.
      
      cp:
      	* init.c (build_delete): Warn when deleting type with non-virtual
      	destructor.
      
      testsuite:
      	* testsuite/g++.dg/warn/delete-non-virtual-dtor.C: New.
      
      From-SVN: r174643
      Jonathan Wakely committed
  3. 03 Jun, 2011 3 commits
    • linux.h (MD_UNWIND_SUPPORT): Remove. · 58cd1d70
      	gcc:
      	* config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
      	* config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
      	* config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
      	* config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
      	* config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
      	* config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
      	* config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
      	* config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
      	* config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
      	* config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
      	* config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
      	* config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
      	* config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
      	* config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
      	* config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
      	* config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
      	* config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
      	* config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
      	* config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
      	* config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
      	* config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
      	* config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
      	* config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
      	* config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
      	* config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
      	* config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
      	* config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
      	* config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
      	* config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
      	* config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
      	* config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
      	* config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
      	* config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
      	* config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
      	* system.h (MD_UNWIND_SUPPORT): Poison.
      	* doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
      	* doc/tm.texi: Regenerate.
      	* unwind-dw2.c: Include md-unwind-support.h instead of
      	MD_UNWIND_SUPPORT.
      	* config/ia64/unwind-ia64.c: Likewise.
      	* config/xtensa/unwind-dw2-xtensa.c: Likewise.
      
      	libgcc:
      	* config/alpha/linux-unwind.h: Move from ../gcc/config/alpha.
      	* config/alpha/osf5-unwind.h: Move from ../gcc/config/alpha.
      	* config/alpha/vms-unwind.h: Move from ../gcc/config/alpha.
      	* config/bfin/linux-unwind.h: Move from ../gcc/config/bfin.
      	* config/i386/linux-unwind.h: Move from ../gcc/config/i386.
      	* config/i386/sol2-unwind.h: Move from ../gcc/config/i386.
      	* config/i386/w32-unwind.h: Move from ../gcc/config/i386.
      	Wrap in !__MINGW64__.
      	* config/ia64/linux-unwind.h: Move from ../gcc/config/ia64.
      	* config/ia64/vms-unwind.h: Move from ../gcc/config/ia64.
      	* config/m68k/linux-unwind.h: Move from ../gcc/config/m68k.
      	* config/mips/linux-unwind.h: Move from ../gcc/config/mips.
      	* config/pa/hpux-unwind.h: Move from ../gcc/config/pa.
      	* config/pa/linux-unwind.h: Move from ../gcc/config/pa.
      	* config/rs6000/darwin-unwind.h: Move from ../gcc/config/rs6000.
      	Wrap in !__LP64__.
      	* config/rs6000/linux-unwind.h: Move from ../gcc/config/rs6000.
      	* config/s390/linux-unwind.h: Move from ../gcc/config/s390.
      	* config/s390/tpf-unwind.h: Move from ../gcc/config/s390.
      	* config/sh/linux-unwind.h: Move from ../gcc/config/sh.
      	* config/sparc/linux-unwind.h: Move from ../gcc/config/sparc.
      	* config/sparc/sol2-unwind.h: Move from ../gcc/config/sparc.
      	* config/xtensa/linux-unwind.h: Move from ../gcc/config/xtensa.
      	* config/no-unwind.h: New file.
      	* config.host (md_unwind_header): Document.
      	Define.
      	(alpha*-*-linux*, alpha*-dec-osf5.1*, alpha64-dec-*vms*,
      	alpha*-dec-*vms*, bfin*-uclinux*, bfin*-linux-uclibc*,
      	hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
      	hppa[12]*-*-hpux11*): Set md_unwind_header.
      	(i[34567]86-*-linux*): Handle i[34567]86-*-kopensolaris*-gnu.
      	Set md_unwind_header.
      	(x86_64-*-linux*, i[34567]86-*-solaris2*): Set md_unwind_header.
      	(i[34567]86-*-cygwin*): Split from i[34567]86-*-mingw*.
      	(i[34567]86-*-mingw*, ia64*-*-linux*, ia64-hp-*vms*,
      	m68k-*-uclinux*, m68k-*-linux*, mips64*-*-linux*, mips*-*-linux*,
      	powerpc-*-darwin*, powerpc-*-linux*, s390-*-linux*,
      	s390x-*-linux*,  s390x-ibm-tpf*, sh*-*-linux*, sparc-*-linux*,
      	sparc*-*-solaris2*, sparc64-*-linux*, xtensa*-*-linux*): Set
      	md_unwind_header.
      	* configure.ac: Link md-unwind-support.h to $md_unwind_header.
      	* configure: Regenerate.
      
      From-SVN: r174613
      Rainer Orth committed
    • re PR debug/47590 (pragma optimize doesn't recompute derived options (was: var… · 2ba42841
      re PR debug/47590 (pragma optimize doesn't recompute derived options (was: var tracking produces wrong debug in code where optimization is turned off using pragma))
      
      PR debug/47590
      * target.def (delay_sched2, delay_vartrack): New.
      * doc/tm.texi.in: Update.
      * doc/tm.texi: Rebuild.
      * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
      * var-tracking.c (gate_handle_var_tracking): Likewise.
      * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
      (bfin_flag_var_tracking): Drop.
      (output_file_start): Don't save and override flag_var_tracking.
      (bfin_option_override): Ditto flag_schedule_insns_after_reload.
      (bfin_reorg): Test original variables.
      (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
      * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
      (ia64_flag_var_tracking): Drop.
      (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
      (ia64_file_start): Don't save and override flag_var_tracking.
      (ia64_override_options_after_change): Ditto
      flag_schedule_insns_after_reload.
      (ia64_reorg): Test original variables.
      * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
      (picochip_flag_var_tracking): Drop.
      (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
      (picochip_option_override): Don't save and override
      flag_schedule_insns_after_reload.
      (picochip_asm_file_start): Ditto flag_var_tracking.
      (picochip_reorg): Test original variables.
      * config/spu/spu.c (spu_flag_var_tracking): Drop.
      (TARGET_DELAY_VARTRACK): Define.
      (spu_var_tracking): New.
      (spu_machine_dependent_reorg): Call it.
      (asm_file_start): Don't save and override flag_var_tracking.
      
      From-SVN: r174595
      Alexandre Oliva committed
  4. 01 Jun, 2011 1 commit
    • arm-cores.def: Add cortex-r5. · 572070ef
      2011-06-01  Paul Brook  <paul@cpodesourcery.com>
      
      	gcc/
      	* config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
      	Cortex-A15.
      	* config/arm/arm-tune.md: Regenerate.
      	* config/arm/arm-tables.opt: Regenerate.
      	* config/arm/arm.c (FL_DIV): Rename...
      	(FL_THUMB_DIV): ... to this.
      	(FL_ARM_DIV): Define.
      	(FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
      	(arm_arch_hwdiv): Remove.
      	(arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
      	(arm_issue_rate): Add cortexr5.
      	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
      	__ARM_ARCH_EXT_IDIV__.
      	(TARGET_IDIV): Define.
      	(arm_arch_hwdiv): Remove.
      	(arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
      	* config/arm/arm.md (tune_cortexr4): Add cortexr5.
      	(divsi3, udivsi3): New patterns.
      	* config/arm/thumb2.md (divsi3, udivsi3): Remove.
      	* doc/invoke.texi: Document ARM -mcpu=cortex-r5
      
      From-SVN: r174526
      Paul Brook committed
  5. 31 May, 2011 1 commit
  6. 30 May, 2011 1 commit
  7. 27 May, 2011 2 commits
    • contrib.texi: Update copyright years. · d296760d
      2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
      
      	* doc/contrib.texi: Update copyright years.
      	(Contributors): Add Zdenek Sojka.
      
      From-SVN: r174344
      Alexander Monakov committed
    • sched-int.h (struct _haifa_deps_insn_data): New members cond and reverse_cond. · b0bd15f7
      	* sched-int.h (struct _haifa_deps_insn_data): New members cond
      	and reverse_cond.
      	(INSN_COND, INSN_REVERSE_COND): New macros.
      	* sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
      	once.
      	(sched_get_condition_with_rev): Cache the results, and look them up
      	if possible.
      	(sched_analyze_insn): Destroy INSN_COND of previous insns if they
      	are clobbered by the current insn.
      	* target.def (exposed_pipline): New sched data hook.
      	* doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r174336
      Bernd Schmidt committed
  8. 25 May, 2011 4 commits
    • Update pause intrinsic. · 6c81b2bc
      2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* doc/extend.texi (X86 Built-in Functions): Update pause
      	intrinsic.
      
      From-SVN: r174217
      H.J. Lu committed
    • Implement x86 pause intrinsic. · 74838de3
      gcc/
      
      2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
      
      	* config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
      	(bdesc_special_args): Add pause intrinsic.
      
      	* config/i386/i386.md (UNSPEC_PAUSE): New.
      	(pause): Likewise.
      	(*pause): Likewise.
      	* config/i386/ia32intrin.h (__pause): Likewise.
      
      	* doc/extend.texi (X86 Built-in Functions): Add documentation for
      	pause intrinsic.
      
      gcc/testsuite/
      
      2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
      
      	 * gcc.target/i386/pause-1.c: New.
      
      From-SVN: r174197
      H.J. Lu committed
    • libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if LIBGCC2_GNU_PREFIX is defined. · cdbf4541
      	gcc/
      	* libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
      	LIBGCC2_GNU_PREFIX is defined.
      	(__N): New macro.
      	(__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
      	__mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
      	__divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
      	__clz_tab): Define using __N.
      	(__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
      	COMPAT_SIMODE_TRAPPING_ARITHMETIC.
      	* target.def (libfunc_gnu_prefix): New hook.
      	* doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
      	(TARGET_LIBFUNC_GNU_PREFIX): Add hook.
      	* doc/tm.texi: Regenerate.
      	* system.h (LIBGCC2_GNU_PREFIX): Poison.
      	* optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
      	account.
      	(gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
      	(init_optabs): Likewise for the bswap libfuncs.
      	* tree.c (build_common_builtin_nodes): Likewise for complex multiply
      	and divide.
      	* config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
      	* config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
      	* libgcc-std.ver: Remove.
      	* Makefile.in (srcdirify): Handle $$(libgcc_objdir).
      	* config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
      	libgcc-std.ver.
      	* config/i386/t-linux (SHLIB_MAPFILES): Likewise.
      	* config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
      	* config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
      	* config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
      	* config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
      	* config/i386/t-linux (SHLIB_MAPFILES): Likewise.
      	* config/i386/t-linux (SHLIB_MAPFILES): Likewise.
      	* config/fixed-bit.h (FIXED_OP): Define differently depending on
      	LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
      	(FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
      
      	libgcc/
      	* libgcc-std.ver.in: New file.
      	* Makefile.in (LIBGCC_VER_GNU_PREFIX, LIBGCC_VER_SYMBOLS_PREFIX): New
      	variables.
      	(libgcc-std.ver): New rule.
      	* config/t-gnu-prefix: New file.
      
      From-SVN: r174187
      Bernd Schmidt committed
    • common.opt (flag_stack_usage_info): New variable. · a11e0df4
      	* common.opt (flag_stack_usage_info): New variable.
      	(-Wstack-usage): New option.
      	* doc/invoke.texi (Warning options): Document -Wstack-usage.
      	* opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
      	<OPT_fstack_usage>: Likewise.
      	* toplev.c (output_stack_usage): Handle -Wstack-usage.
      	* calls.c (expand_call): Test flag_stack_usage_info variable instead
      	of flag_stack_usage.
      	(emit_library_call_value_1): Likewise.
      	* explow.c (allocate_dynamic_stack_space): Likewise.
      	* function.c (instantiate_virtual_regs ): Likewise.
      	(prepare_function_start): Likewise.
      	(rest_of_handle_thread_prologue_and_epilogue): Likewise.
      	* config/alpha/alpha.c (alpha_expand_prologue): Likewise.
      	* config/arm/arm.c (arm_expand_prologue): Likewise.
      	(thumb1_expand_prologue): Likewise.
      	* config/avr/avr.c (expand_prologue): Likewise.
      	* config/i386/i386.c (ix86_expand_prologue): Likewise.
      	* config/ia64/ia64.c (ia64_expand_prologue): Likewise.
      	* config/m68k/m68k.c (m68k_expand_prologue): Likewise.
      	* config/mips/mips.c (mips_expand_prologue): Likewise.
      	* config/pa/pa.c (hppa_expand_prologue): Likewise.
      	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
      	* config/s390/s390.c (s390_emit_prologue): Likewise.
      	* config/sh/sh.c (sh_expand_prologue): Likewise.
      	* config/sparc/sparc.c (sparc_expand_prologue): Likewise.
      	* config/spu/spu.c (spu_expand_prologue): Likewise.
      
      From-SVN: r174182
      Eric Botcazou committed
  9. 23 May, 2011 2 commits
    • optc-save-gen.awk: New. · 57dfdff0
      	* optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
      	parts of output shared with the driver.
      	* optc-gen.awk: Don't generate parts of output not shared with the
      	driver.
      	* opth-gen.awk: Remove GCC_DRIVER conditionals.
      	* doc/options.texi (SourcerInclude): Mention options-save.c.
      	* Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
      	(OBJS): Add options-save.o.
      	(options-save.c, options-save.o): New.
      	(options.o): Update dependencies.
      	(gcc-options.o): Remove.
      	(mostlyclean): Remove options-save.c.
      
      From-SVN: r174085
      Joseph Myers committed
    • gthr-gnat.c: Remove. · c8028650
      	gcc:
      	* gthr-gnat.c: Remove.
      	* gthr-gnat.h: Remove.
      	* Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
      	* config/t-freebsd (LIB2ADDEH): Likewise.
      	* config/t-linux (LIB2ADDEH): Likewise.
      	* config/t-sol2 (LIB2ADDEH): Likewise.
      	* config/ia64/t-vms (LIB2ADDEH): Likewise.
      	* configure.ac (target_thread_file): Remove gnat handling.
      	* configure: Regenerate.
      	* doc/install.texi (Configuration, --enable-threads): Remove gnat.
      
      	gcc/po:
      	* EXCLUDES: Remove gthr-gnat.c, gthr-gnat.h.
      
      	libgcc:
      	* config/s390/t-tpf (LIB2ADDEH): Remove $(gcc_srcdir)/gthr-gnat.c.
      
      From-SVN: r174064
      Rainer Orth committed
  10. 21 May, 2011 2 commits
  11. 18 May, 2011 1 commit
    • invoke.texi (Blackfin Options): -mcpu accepts bf592. · 033b0805
      2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
      
          * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
          * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
          bf592-none.
          * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
          * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
          * config/bfin/bfin.c (bfin_cpus): Add bf592.
          * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
          __ADSPBF592__ and __ADSPBF59x__ for     BFIN_CPU_BF592.
          * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
          * config/bfin/elf.h (LIB_SPEC): Add bf592.
      
      From-SVN: r173867
      Stuart Henderson committed
  12. 14 May, 2011 1 commit
    • invoke.texi (-Ofast): Also enables -fstack-arrays. · 2d8c9ad5
      2011-05-14  Tobias Burnus  <burnus@net-b.de>
      
              * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
      
      2011-05-14  Tobias Burnus  <burnus@net-b.de>
      
              * options.c (gfc_init_options, gfc_post_options): Enable
              -fstack-arrays by default if -Ofast is used.
              * invoke.texi (-fstack-arrays): Document this.
      
      From-SVN: r173751
      Tobias Burnus committed
  13. 13 May, 2011 1 commit
  14. 11 May, 2011 1 commit
    • install.texi (Configuration): Document --with-linker-hash-style. · 79bec923
      2011-05-11  Satoru Takabayashi  <satorux@google.com>
      	    Paul Pluzhnikov  <ppluzhnikov@google.com>
      
      	* gcc/doc/install.texi (Configuration): Document
      	--with-linker-hash-style.
      	* gcc/gcc.c (init_spec): Handle LINKER_HASH_STYLE.
      	* gcc/config.in: Add LINKER_HASH_STYLE.
      	* gcc/configure.ac: Add --with-linker-hash-style.
      	* gcc/configure: Regenerate.
      
      
      Co-Authored-By: Paul Pluzhnikov <ppluzhnikov@google.com>
      
      From-SVN: r173668
      Satoru Takabayashi committed
  15. 10 May, 2011 1 commit
  16. 07 May, 2011 1 commit
  17. 06 May, 2011 1 commit
  18. 04 May, 2011 5 commits
  19. 03 May, 2011 2 commits
    • md.texi (vec_load_lanes, [...]): Document. · 272c6793
      gcc/
      	* doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
      	* optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
      	convert_optab_index values.
      	(vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
      	* genopinit.c (optabs): Initialize the new optabs.
      	* internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
      	* internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
      	(expand_STORE_LANES): New functions.
      	* tree.h (build_array_type_nelts): Declare.
      	* tree.c (build_array_type_nelts): New function.
      	* tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
      	(vect_model_load_cost): Likewise.
      	(vect_store_lanes_supported, vect_load_lanes_supported)
      	(vect_record_strided_load_vectors): Declare.
      	* tree-vect-data-refs.c (vect_lanes_optab_supported_p)
      	(vect_store_lanes_supported, vect_load_lanes_supported): New functions.
      	(vect_transform_strided_load): Split out statement recording into...
      	(vect_record_strided_load_vectors): ...this new function.
      	* tree-vect-stmts.c (create_vector_array, read_vector_array)
      	(write_vector_array, create_array_ref): New functions.
      	(vect_model_store_cost): Add store_lanes_p argument.
      	(vect_model_load_cost): Add load_lanes_p argument.
      	(vectorizable_store): Try to use store-lanes functions for
      	interleaved stores.
      	(vectorizable_load): Likewise load-lanes and loads.
      	* tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
      	to vect_model_store_cost.
      	(vect_build_slp_tree): Likewise vect_model_load_cost.
      
      From-SVN: r173291
      Richard Sandiford committed
    • hooks.h (hook_bool_mode_uhwi_false): Declare. · 0f6d54f7
      gcc/
      	* hooks.h (hook_bool_mode_uhwi_false): Declare.
      	* hooks.c (hook_bool_mode_uhwi_false): New function.
      	* target.def (array_mode_supported_p): New hook.
      	* doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
      	* doc/tm.texi: Regenerate.
      	* stor-layout.c (mode_for_array): New function.
      	(layout_type): Use it.
      	* config/arm/arm.c (arm_array_mode_supported_p): New function.
      	(TARGET_ARRAY_MODE_SUPPORTED_P): Define.
      
      From-SVN: r173290
      Richard Sandiford committed
  20. 26 Apr, 2011 2 commits
  21. 25 Apr, 2011 1 commit
    • c-common.c (struct c_common_resword): Add __underlying_type. · 74e883ce
      /gcc
      2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* c-family/c-common.c (struct c_common_resword): Add
      	__underlying_type.
      	* c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
      	* doc/extend.texi: Document __underlying_type.
      
      /cp
      2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* cp-tree.def: Add a new UNDERLYING_TYPE tree code.
      	* cp-tree.h (enum cp_trait_kind): Add CPTK_UNDERLYING_TYPE, tidy.
      	(UNDERLYING_TYPE_TYPE): Add.
      	* cp-objcp-common.c (cp_common_init_ts): Mark UNDERLYING_TYPE
      	as TS_COMMON.
      	* parser.c (cp_lexer_next_token_is_decl_specifier_keyword,
      	cp_parser_simple_type_specifier): Handle UNDERLYING_TYPE.
      	(cp_parser_trait_expr): Deal with RID_UNDERLYING_TYPE; tidy.
      	* semantics.c (finish_underlying_type): New.
      	* typeck.c (structural_comptypes): Handle UNDERLYING_TYPE.
      	* error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
      	* cxx-pretty-print.c (p_cxx_type_id): Likewise.
      	* tree.c (cp_walk_subtrees): Likewise.
      	* pt.c (for_each_template_parm_r, tsubst, unify,
      	dependent_type_p_r): Likewise.
      	* mangle.c (write_type): Sorry for __underlying_type.
      
      /testsuite
      2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/ext/underlying_type1.C: New.
      	* g++.dg/ext/underlying_type2.C: Likewise.
      	* g++.dg/ext/underlying_type3.C: Likewise.
      	* g++.dg/ext/underlying_type4.C: Likewise.
      	* g++.dg/ext/underlying_type5.C: Likewise.
      	* g++.dg/ext/underlying_type6.C: Likewise.
      	* g++.dg/ext/underlying_type7.C: Likewise.
      	* g++.dg/ext/underlying_type8.C: Likewise.
      	* g++.dg/ext/underlying_type9.C: Likewise.
      	* g++.dg/ext/underlying_type10.C: Likewise.
      
      From-SVN: r172945
      Paolo Carlini committed
  22. 24 Apr, 2011 2 commits
  23. 21 Apr, 2011 2 commits
    • target.def (legitimate_constant_p): New hook. · 1a627b35
      gcc/
      	* target.def (legitimate_constant_p): New hook.
      	* doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
      	(TARGET_LEGITIMATE_CONSTANT_P): ...this.
      	* doc/tm.texi: Regenerate.
      	* hooks.h (hook_bool_mode_rtx_true): Declare.
      	* hooks.c (hook_bool_mode_rtx_true): Define.
      	* system.h (LEGITIMATE_CONSTANT_P): Poison.
      	* calls.c (precompute_register_parameters): Replace uses of
      	LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
      	(emit_library_call_value_1): Likewise.
      	* expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
      	(compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
      	* ira-costs.c (scan_one_insn): Likewise.
      	* recog.c (general_operand, immediate_operand): Likewise.
      	* reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
      	* reload1.c (init_eliminable_invariants): Likewise.
      
      	* config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
      	mode argument.
      	* config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
      	argument.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      	* config/alpha/predicates.md (input_operand): Update call to
      	alpha_legitimate_constant_p.
      
      	* config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
      	* config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
      	(THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
      	* config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
      	(arm_legitimate_constant_p): New functions.
      	(arm_cannot_force_const_mem): Make static.
      
      	* config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
      	* config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
      	instead of bfin_legitimate_constant_p.
      	(bfin_legitimate_constant_p): Make static.  Add a mode argument.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      
      	* config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
      	* config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(frv_legitimate_constant_p): Make static.  Add a mode argument.
      
      	* config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
      	* config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
      
      	* config/i386/i386-protos.h (legitimate_constant_p): Delete.
      	* config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/i386/i386.c (legitimate_constant_p): Rename to...
      	(ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
      	argument.
      	(ix86_cannot_force_const_mem): Update accordingly.
      	(ix86_legitimate_address_p): Likewise.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      	* config/i386/i386.md: Update commentary.
      
      	* config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
      	* config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(ia64_legitimate_constant_p): Make static.  Add a mode argument.
      
      	* config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
      	* config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(lm32_legitimate_constant_p): Make static.  Add a mode argument.
      
      	* config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
      	* config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
      
      	* config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(m32r_legitimate_constant_p): New function.
      
      	* config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
      	* config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
      	LEGITIMATE_CONSTANT_P.
      	(LEGITIMATE_CONSTANT_P): Delete.
      	* config/m68k/m68k.c (m68k_expand_prologue): Call
      	m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
      	(m68k_legitimate_constant_p): New function.
      	* config/m68k/m68k.md: Update comments.
      
      	* config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(mcore_legitimate_constant_p): New function.
      
      	* config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
      	* config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/mep/mep.c (mep_legitimate_constant_p): Make static.
      	Add a mode argument.
      	(mep_legitimate_address): Update accordingly.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      
      	* config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
      	Delete.
      	* config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/microblaze/microblaze.c (microblaze_const_double_ok): Make
      	static.  Check OP's mode for VOIDmode.
      	(microblaze_legitimate_constant_p): New function.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      
      	* config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/mips/mips.c (mips_legitimate_constant_p): New function.
      	(mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      	* config/mips/predicates.md: Update comments.
      
      	* config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
      	* config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(mmix_legitimate_constant_p): Make static, return a bool, and take
      	a mode argument.
      	(mmix_print_operand_address): Update accordingly.
      
      	* config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
      	Delete.
      	* config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/mn10300/mn10300.c (mn10300_legitimate_constant_p):
      	Make static.  Add a mode argument.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      
      	* config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(pa_legitimate_constant_p): New function.
      
      	* config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(pdp11_legitimate_constant_p): New function.
      
      	* config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(rs6000_legitimate_constant_p): New function.
      
      	* config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
      	(rx_legitimate_constant_p): ...this.
      	* config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/rx/rx.c (rx_is_legitimate_constant): Replace with...
      	(rx_legitimate_constant_p): ...this.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      	* config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
      
      	* config/s390/s390-protos.h (legitimate_constant_p): Delete.
      	* config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/s390/s390.c (legitimate_constant_p): Rename to...
      	(s390_legitimate_constant_p): ...this.  Make static, return a bool,
      	and add a mode argument.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      
      	* config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(sh_legitimate_constant_p): New function.
      
      	* config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
      	* config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(legitimate_constant_p): Rename to...
      	(sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
      	argument.
      	(constant_address_p): Update accordingly.
      
      	* config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
      	argument and return a bool.
      	* config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(spu_legitimate_constant_p): Add a mode argument and return a bool.
      	(spu_rtx_costs): Update accordingly.
      	* config/spu/predicates.md (vec_imm_operand): Likewise.
      
      	* config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
      
      	* config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/v850/v850.c (v850_legitimate_constant_p): New function.
      	(TARGET_LEGITIMATE_CONSTANT_P): Define.
      
      	* config/vax/vax-protos.h (legitimate_constant_p): Delete.
      	* config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
      	* config/vax/vax.c (legitimate_constant_p): Likewise.
      
      	* config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
      	* config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
      	(xtensa_legitimate_constant_p): New function.
      
      From-SVN: r172814
      Richard Sandiford committed
    • target.def (cannot_force_const_mem): Add a mode argument. · fbbf66e7
      gcc/
      	* target.def (cannot_force_const_mem): Add a mode argument.
      	* doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
      	* doc/tm.texi: Regenerate.
      	* hooks.h (hook_bool_mode_rtx_false): Declare.
      	* hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
      	(hook_bool_mode_const_rtx_true): Likewise.
      	(hook_bool_mode_rtx_false): New function.
      	* reload.c (CONST_POOL_OK_P): Take a mode argument and require it
      	to be non-VOID.  Update call to cannot_force_const_mem.
      	(find_reloads): Update accordingly.
      	* varasm.c (force_const_mem): Update call to cannot_force_const_mem.
      	* config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
      	argument.
      	* config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
      	* config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
      	* config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
      	* config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
      	* config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
      	* config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
      	* config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
      	* config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
      	(m68k_cannot_force_const_mem): ...this new function.
      	* config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
      	argument.
      	(mips_const_insns, mips_legitimize_const_move): Update calls.
      	(mips_secondary_reload_class): Likewise.
      	* config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
      	(pa_cannot_force_const_mem): ...this new function.
      	* config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine
      	to...
      	(rs6000_cannot_force_const_mem): ...this new function.
      	* config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
      	argument.
      	* config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
      	* config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
      	to...
      	(xtensa_cannot_force_const_mem): ...this new function.
      
      From-SVN: r172813
      Richard Sandiford committed
  24. 20 Apr, 2011 1 commit
    • mips.opt (mfix-24k): New. · 0eda4033
      2011-04-20  Catherine Moore  <clm@codesourcery.com>
      
      	* config/mips/mips.opt (mfix-24k): New.
      	* config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
      	* config/mips/mips.md (length): Increase by 4 for stores if
      	fixing 24K errata.
      	* config/mips/mips.c (mips_reorg_process_insns): Do not allow
      	all noreorder if fixing 24K errata.
      	* doc/invoke.texi: Document mfix-24k.
      
      From-SVN: r172780
      Catherine Moore committed