1. 13 Nov, 2016 7 commits
  2. 12 Nov, 2016 9 commits
  3. 11 Nov, 2016 14 commits
  4. 10 Nov, 2016 10 commits
    • re PR c/37998 (Unclear documentation of -fno-common) · c47c7215
      2016-11-10  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR c/37998
      
      	gcc/
      	* doc/invoke.texi (Code Gen Options) [-fno-common]: Use correct
      	terminology.  Expand to remove ambiguity.
      
      From-SVN: r242062
      Sandra Loosemore committed
    • runtime: copy signal code from Go 1.7 runtime · 980f9a0a
          
          Add a little shell script to auto-generate runtime.sigtable from the
          known signal names.
          
          Force the main package to always import the runtime package.  Otherwise
          some runtime package global variables may never be initialized.
          
          Set the syscallsp and syscallpc fields of g when entering a syscall, so
          that the runtime package knows when a g is executing a syscall.
          
          Fix runtime.funcPC to avoid dead store elimination of the interface
          value when the function is inlined.
          
          Reviewed-on: https://go-review.googlesource.com/33025
      
      From-SVN: r242060
      Ian Lance Taylor committed
    • combine: Do not call simplify from inside change_zero_ext (PR78232) · 071af74d
      When combine splits a three-insn combination into two instructions it
      can reuse i2dest for the temporary result of the first new instruction.
      However all information it has in reg_stat about that register will be
      stale.  This results in the simplify_gen_binary calls in change_zero_ext
      using out-of-date information, which makes it think one of the ANDs
      generated there always results in 0, and it doesn't get better from there.
      
      This can also happen if a splitter in the MD uses nonzero_bits (for
      example).  I tried to make the splitting code in combine save and restore
      the i2dest reg_stat info, but that causes one of the acats tests to fail.
      
      This whole reg_stat thing needs an overhaul, and/or we shouldn't reuse
      i2dest for unrelated purposes when splitting.
      
      This patch changes change_zero_ext to do the expected simplifications
      itself and not call simplify_gen_*.
      
      
      	PR rtl-optimization/78232
      	* combine.c (try_combine): Add a big comment about why reusing i2dest
      	is undesirable.
      	(change_zero_ext): Do not call simplify_gen_binary, do the
      	simplifications manually.
      
      From-SVN: r242059
      Segher Boessenkool committed
    • Fix ICE and improve errors for invalid anonymous structure declarations. · 94903212
      	PR fortran/78277
      	* gcc/fortran/decl.c (gfc_match_data_decl): Gracefully handle bad
      	anonymous structure declarations.
      
      	PR fortran/78277
      	* gcc/testsuite/gfortran.dg/dec_structure_17.f90: New test.
      
      From-SVN: r242058
      Fritz O. Reese committed
    • Fix some whitespace. · 05b8fcb4
      	gcc/fortran/
      	* decl.c (get_struct_decl, gfc_match_map, gfc_match_union): Fix
      	whitespace.
      	* interface.c (gfc_compare_union_types): Likewise.
      
      From-SVN: r242057
      Fritz O. Reese committed
    • PR c++/77337 - auto return and lambda · f065303f
      	* pt.c (tsubst_friend_function): Don't set DECL_INITIAL.
      	(instantiate_decl): It's OK to defer a constexpr function.
      	* cp-tree.h (DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION): Check
      	DECL_LANG_SPECIFIC.
      	* decl2.c (decl_defined_p): Use it.  No longer static.
      	* decl.c (redeclaration_error_message): Use decl_defined_p.
      	* constexpr.c (cxx_eval_call_expression): Set input_location around
      	call to instantiate_decl.
      
      From-SVN: r242056
      Jason Merrill committed
    • debug.cc (format_word): Delete. · 28d1bf44
      2016-11-10  François Dumont  <fdumont@gcc.gnu.org>
      
      	* src/c++11/debug.cc (format_word): Delete.
      	(print_literal): New. Replace call to print_word for literals.
      
      From-SVN: r242055
      François Dumont committed
    • rs6000.c (rs6000_hard_regno_mode_ok): If ISA 3.0... · 456f0dfa
      [gcc]
      2016-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If ISA 3.0,
      	enable HImode and QImode to go in vector registers by default if
      	the -mvsx-small-integer option is enabled.
      	(rs6000_secondary_reload_simple_move): Likewise.
      	(rs6000_preferred_reload_class): Don't force integer constants to
      	be loaded into vector registers that we can easily make into
      	memory (or being created in the GPRs and moved over with direct
      	move).
      	* config/rs6000/vsx.md (UNSPEC_P9_MEMORY): Delete, no longer
      	used.
      	(vsx_extract_<mode>): Rework V4SImode, V8HImode, and V16QImode
      	vector extraction on ISA 3.0 when the scalar integer can be
      	allocated in vector registers.  Generate the VEC_SELECT directy,
      	and don't use UNSPEC's to avoid having the scalar type in a vector
      	register.  Make the expander target registers, and let the
      	combiner fold in results storing to memory, if the machine
      	supports stores.
      	(vsx_extract_<mode>_di): Likewise.
      	(vsx_extract_<mode>_p9): Likewise.
      	(vsx_extract_<mode>_di_p9): Likewise.
      	(vsx_extract_<mode>_store_p9): Likewise.
      	(vsx_extract_si): Likewise.
      	(vsx_extract_<mode>_p8): Likewise.
      	(p9_lxsi<wd>zx): Delete, no longer used.
      	(p9_stxsi<wd>x): Likewise.
      	* config/rs6000/rs6000.md (INT_ISA3): New mode iterator for
      	integers in vector registers for ISA 3.0.
      	(QHI): Update comment.
      	(zero_extendqi<mode>2): Add support for ISA 3.0 scalar load or
      	vector extract instructions in sign/zero extend.
      	(zero_extendhi<mode>): Likewise.
      	(extendqi<mode>): Likewise.
      	(extendhi<mode>2): Likewise.
      	(HImode splitter for load/sign extend in vector register):
      	Likewise.
      	(float<QHI:mode><FP_ISA3:mode>2): Eliminate old method of
      	optimizing floating point conversions to/from small data types and
      	rewrite it to support QImode/HImode being allowed in vector
      	registers on ISA 3.0.
      	(float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
      	(floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
      	(floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
      	(fix_trunc<SFDF:mode><QHI:mode>2): Likewise.
      	(fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
      	(fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
      	(fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
      	VSPLITISW on ISA 2.07.
      	(movhi_internal): Combine movhi_internal and movqi_internal into
      	one mov<mode>_internal with an iterator.  Add support for QImode
      	and HImode being allowed in vector registers.  Make large number
      	of attributes and constraints easier to read.
      	(movqi_internal): Likewise.
      	(mov<mode>_internal): Likewise.
      	(movdi_internal64): Fix constraint to allow loading -16..15 with
      	VSPLITISW on ISA 2.07.
      	(integer XXSPLTIB splitter): Add support for QI, HI, and SImode as
      	well as DImode.
      
      [gcc/testsuite]
      2016-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/vsx-qimode.c: New test for QImode, HImode
      	being allowed in vector registers.
      	* gcc.target/powerpc/vsx-qimode2.c: Likewise.
      	* gcc.target/powerpc/vsx-qimode3.c: Likewise.
      	* gcc.target/powerpc/vsx-himode.c: Likewise.
      	* gcc.target/powerpc/vsx-himode2.c: Likewise.
      	* gcc.target/powerpc/vsx-himode3.c: Likewise.
      	* gcc.target/powerpc/p9-extract-1.c: Change MFVSRD to just MFVSR,
      	to allow matching MFVSRD or MFVSRW.
      
      From-SVN: r242048
      Michael Meissner committed
    • re PR rtl-optimization/78241 (wrong code with -funroll-loops) · 8d34bfa8
      	PR rtl-optimization/78241
      	* loop-unroll.c (unroll_loop_runtime_iterations): Don't adjust 'niter', but
      	emit initial peel copy if niter expr is not reliable.
      
      	* gcc.dg/pr78241.c: New test.
      
      From-SVN: r242047
      Pat Haugen committed
    • dwarf2cfi: Dump row differences before asserting · a1566696
      If maybe_record_trace_start fails because the CFI is inconsistent on two
      paths into a block it currently just ICEs.  This changes it to also dump
      the CFI on those two paths in the dump file; debugging it without that
      information is hopeless.
      
      
      	* dwarf2cfi.c (dump_cfi_row): Add forward declaration.
      	(maybe_record_trace_start): If the CFI is different on the new and
      	old paths, print out both to the dump file before ICEing.
      
      From-SVN: r242046
      Segher Boessenkool committed