1. 19 Dec, 2016 11 commits
    • Remove unused libgfortran functions · 7e294024
      Now that the libgfortran ABI major version has been bumped, we can
      remove functions for which the frontend nowadays generates inline
      code.
      
      This removes the malloc, free, exponent, fraction, nearest, rrspacing,
      spacing, set_exponent and transpose intrinsics. Also the unused
      store_exe_path function is removed.
      
      2016-12-19  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* Makefile.am: Remove exponent, fraction, nearest, rrspacing,
      	set_exponent, spacing, transpose, malloc, transpose_generic.
      	* Makefile.in: Regenerate.
      	* generated/exponent_r10.c: Remove.
      	* generated/exponent_r16.c: Remove.
      	* generated/exponent_r4.c: Remove.
      	* generated/exponent_r8.c: Remove.
      	* generated/fraction_r10.c: Remove.
      	* generated/fraction_r16.c: Remove.
      	* generated/fraction_r4.c: Remove.
      	* generated/fraction_r8.c: Remove.
      	* generated/nearest_r10.c: Remove.
      	* generated/nearest_r16.c: Remove.
      	* generated/nearest_r4.c: Remove.
      	* generated/nearest_r8.c: Remove.
      	* generated/rrspacing_r10.c: Remove.
      	* generated/rrspacing_r16.c: Remove.
      	* generated/rrspacing_r4.c: Remove.
      	* generated/rrspacing_r8.c: Remove.
      	* generated/set_exponent_r10.c: Remove.
      	* generated/set_exponent_r16.c: Remove.
      	* generated/set_exponent_r4.c: Remove.
      	* generated/set_exponent_r8.c: Remove.
      	* generated/spacing_r10.c: Remove.
      	* generated/spacing_r16.c: Remove.
      	* generated/spacing_r4.c: Remove.
      	* generated/spacing_r8.c: Remove.
      	* generated/transpose_c10.c: Remove.
      	* generated/transpose_c16.c: Remove.
      	* generated/transpose_c4.c: Remove.
      	* generated/transpose_c8.c: Remove.
      	* generated/transpose_i16.c: Remove.
      	* generated/transpose_i4.c: Remove.
      	* generated/transpose_i8.c: Remove.
      	* generated/transpose_r10.c: Remove.
      	* generated/transpose_r16.c: Remove.
      	* generated/transpose_r4.c: Remove.
      	* generated/transpose_r8.c: Remove.
      	* gfortran.map: Remove exponent, fraction, nearest, rrspacing,
      	set_exponent, spacing, transpose, malloc, free, transpose_generic,
      	store_exe_path.
      	* intrinsics/malloc.c: Remove.
      	* intrinsics/transpose_generic.c: Remove.
      	* libgfortran.h (store_exe_path): Remove.
      	* m4/exponent.m4: Remove.
      	* m4/fraction.m4: Remove.
      	* m4/nearest.m4: Remove.
      	* m4/rrspacing.m4: Remove.
      	* m4/set_exponent.m4: Remove.
      	* m4/spacing.m4: Remove.
      	* m4/transpose.m4: Remove.
      	* runtime/main.c (store_exe_path): Remove.
      
      From-SVN: r243799
      Janne Blomqvist committed
    • print-rtl.c: use '<' and '>' rather than % for pseudos in compact mode · 596762ee
      gcc/ChangeLog:
      	* print-rtl.c (rtx_writer::print_rtx_operand_code_r): For
      	non-virtual pseudos in compact mode, wrap the regno in '<' and '>'
      	rather than using a '%' prefix.
      	* rtl-tests.c (selftest::test_dumping_regs): Update for above change.
      
      From-SVN: r243798
      David Malcolm committed
    • chmod.c (chmod_internal): Fix case where mode_t is different from unsigned int. · dc31c238
      	* intrinsics/chmod.c (chmod_internal): Fix case where mode_t is
      	different from unsigned int.
      
      From-SVN: r243796
      Francois-Xavier Coudert committed
    • Make the perfect-forwarding constructor of a two-element tuple sfinae away when… · 4b21c3ea
      Make the perfect-forwarding constructor of a two-element tuple sfinae away when the first argument is an allocator_arg.
      
      Make the perfect-forwarding constructor of a two-element tuple
      sfinae away when the first argument is an allocator_arg.
      * include/std/tuple (tuple(_U1&&, _U2&&)): Constrain.
      * testsuite/20_util/tuple/cons/allocator_with_any.cc: New.
      * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust.
      
      From-SVN: r243795
      Ville Voutilainen committed
    • re PR fortran/78545 (Possible correction to online LTIME documentation) · 99eb50e8
      2016-12-19  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/78545
      	* intrinsic.texi: Minor documentation fixes for non-standard
      	time-related intrinsics. Add references to standard intrinsics and
      	linkify some existing references.
      
      From-SVN: r243794
      Janus Weil committed
    • PR target/78748: S/390: Fix ICE with ANDC splitter. · ad7ab32e
      gcc/ChangeLog:
      
      2016-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      
      	PR target/78748
      	* config/s390/s390.md ("*andc_split_<mode>"): Allow memory destination
      	only if it coincides with operand 2.
      
      gcc/testsuite/ChangeLog:
      
      2016-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      
      	PR target/78748
      	* gcc.c-torture/compile/pr78748.c: New test.
      
      From-SVN: r243793
      Dominik Vogt committed
    • combine: Omit redundant AND in change_zero_ext. · e01f223f
      This is another micro-optimisation in change_zero_ext.  If an
      
        (and (lshiftrt ... (N)) (M))
      
      generated by change_zero_ext is equivalent to just
      
        (lshiftrt ... (N))
      
      (because the AND constant selects the N rightmost bits of the
      result), strip off the AND.
      
      gcc/ChangeLog:
      
      2016-12-19  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      
      	* combine.c (change_zero_ext): Skip generation of redundant AND.
      
      From-SVN: r243792
      Dominik Vogt committed
    • netbsd.h (LINK_EH_SPEC): Define. · 26b14bc1
      2016-12-19  Krister Walfridsson  <krister.walfridsson@gmail.com>
      
      	* config/netbsd.h (LINK_EH_SPEC): Define.
      
      From-SVN: r243791
      Krister Walfridsson committed
    • config.host (*-*-netbsd*): Add t-eh-dw2-dip to tmake_file. · ab955692
      2016-12-19  Krister Walfridsson  <krister.walfridsson@gmail.com>
      
      	* config.host (*-*-netbsd*): Add t-eh-dw2-dip to tmake_file.
      	* crtstuff.c (BSD_DL_ITERATE_PHDR_AVAILABLE): Define for NetBSD.
      	* unwind-dw2-fde-dip.c (USE_PT_GNU_EH_FRAME, ElfW): Likewise.
      
      From-SVN: r243790
      Krister Walfridsson committed
    • Add myself under Write After Approval. · cc811459
      From-SVN: r243789
      Chenghua Xu committed
    • Daily bump. · 1e3823ca
      From-SVN: r243788
      GCC Administrator committed
  2. 18 Dec, 2016 5 commits
  3. 17 Dec, 2016 9 commits
    • re PR fortran/78746 (charlen_03, charlen_10 ICE) · efa84b01
      2016-12-17  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/78746
      	* charlen_03.f90: Remove test. 
      	* charlen_10.f90: Ditto.
      
      From-SVN: r243778
      Steven G. Kargl committed
    • re PR sanitizer/78832 (-fcompare-debug failure (length) with -fsanitize=address) · 8ccaace8
      	PR sanitizer/78832
      	* sanopt.c (sanitize_asan_mark_unpoison): Remove next variable, use
      	continue if gsi_next should be skipped.
      	(sanitize_asan_mark_poison): Remove prev variable, use continue if
      	gsi_prev should be skipped.  When removing ASAN_MARK, do gsi_prev
      	first and gsi_remove on a previously made copy of the iterator.
      
      	* gcc.dg/asan/pr78832.c: New test.
      
      From-SVN: r243777
      Jakub Jelinek committed
    • re PR fortran/78239 (ICE in char_len_param_value, at fortran/decl.c:926, with -fimplicit-none) · 63ac6251
      2016-12-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/78239
      	* decl.c (char_len_param_value):  Actually commit
      	previous change.
      
      From-SVN: r243776
      Thomas Koenig committed
    • gmon: Remove empty directory. · de34320f
      2016-12-17  Matthias Klose  <doko@ubuntu.com>
      
              * config/arc/gmon: Remove empty directory.
      
      From-SVN: r243775
      Matthias Klose committed
    • avx512bwintrin.h: Add new k-mask intrinsics. · 75d727d2
      	* config/i386/avx512bwintrin.h: Add new k-mask intrinsics.
      	* config/i386/avx512dqintrin.h: Ditto.
      	* config/i386/avx512fintrin.h: Ditto.
      	* config/i386/i386-builtin.def (__builtin_ia32_kaddqi,
      	__builtin_ia32_kaddhi, __builtin_ia32_kaddsi,
      	__builtin_ia32_kadddi): New.
      	* config/i386/sse.md (kadd<mode>): New.
      
      testsuite/ChangeLog:
      
      	* gcc.target/i386/avx512bw-kaddd-1.c: New test.
      	* gcc.target/i386/avx512bw-kaddq-1.c: Ditto.
      	* gcc.target/i386/avx512dq-kaddb-1.c: Ditto.
      	* gcc.target/i386/avx512f-kaddw-1.c: Ditto.
      
      From-SVN: r243774
      Andrew Senkevich committed
    • re PR fortran/78239 (ICE in char_len_param_value, at fortran/decl.c:926, with -fimplicit-none) · 52fd48ae
      2016-12-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/78239
      	* decl.c(char_len_param_value): Also check for -fimplicit-none
      	when determining if implicit none is in force.
      
      2016-12-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/78239
      	* gfortran.dg/fimplicit_none_1.f90:  New test.
      	* gfortran.dg/fimplicit_none_2.f90:  New test.
      
      From-SVN: r243773
      Thomas Koenig committed
    • i386.md (*tzcnt<mode>_1): Merge *tzcnt<mode>_1_falsedep_1 and *tzcnt<mode>_1 to… · c5b1ea25
      i386.md (*tzcnt<mode>_1): Merge *tzcnt<mode>_1_falsedep_1 and *tzcnt<mode>_1 to define_insn_and_split pattern.
      
      	* config/i386/i386.md (*tzcnt<mode>_1): Merge *tzcnt<mode>_1_falsedep_1
      	and *tzcnt<mode>_1 to define_insn_and_split pattern.  Adjust split
      	condition to split after epilogue_completed.
      	(ctz<mode>2): Remove expander.
      	(ctz<mode>2): Merge *ctz<mode>2_falsedep_1 and *ctz<mode>2 to
      	define_insn_and_split pattern.  Adjust split condition to split
      	after epilogue_completed.
      	(clz<mode>2_lznct): Remove expander.
      	(clz<mode>2_lzcnt): Merge *clz<mode>2_lzcnt_falsedep_1 and
      	*clz<mode>2 to define_insn_and_split pattern.  Adjust split
      	condition to split after epilogue_completed.
      	(<lt_zcnt>_<mode>): Remove expander.
      	(<lt_zcnt>_<mode>): Merge *<lt_zcnt>_<mode>_falsedep_1 and
      	*<lt_zcnt>_<mode> to define_insn_and_split pattern.  Adjust split
      	condition to split after epilogue_completed.
      	(<lt_zcnt>_hi): New insn pattern.
      	(popcount<mode>2): Remove expander.
      	(popcount<mode>2): Merge *popcount<mode>2_falsedep_1 and
      	*popcount<mode>2 to define_insn_and_split pattern.  Adjust split
      	condition to split after epilogue_completed.
      	(popcounthi2): New insn pattern.
      
      From-SVN: r243772
      Uros Bizjak committed
    • byte-in-either-range-0.c: New test. · 6040f6d4
      gcc/testsuite/ChangeLog:
      
      2016-12-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* gcc.target/powerpc/byte-in-either-range-0.c: New test.
      	* gcc.target/powerpc/byte-in-either-range-1.c: New test.
      	* gcc.target/powerpc/byte-in-range-0.c: New test.
      	* gcc.target/powerpc/byte-in-range-1.c: New test.
      	* gcc.target/powerpc/byte-in-set-0.c: New test.
      	* gcc.target/powerpc/byte-in-set-1.c: New test.
      	* gcc.target/powerpc/byte-in-set-2.c: New test.
      
      
      gcc/ChangeLog:
      
      2016-12-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	* config/rs6000/altivec.md (UNSPEC_CMPRB): New unspec value.
      	(UNSPEC_CMPRB2): New unspec value.
      	(UNSPEC_CMPEQB): New unspec value.
      	(cmprb): New expansion.
      	(*cmprb_internal): New insn.
      	(*setb_internal): New insn.
      	(cmprb2): New expansion.
      	(*cmprb2_internal): New insn.
      	(cmpeqb): New expansion.
      	(*cmpeqb_internal): New insn.
      	* config/rs6000/rs6000-builtin.def (BU_P9_2): New macro.
      	(BU_P9_64BIT_2): Likewise.
      	(BU_P9_OVERLOAD_2): Likewise.
      	(CMPRB): Add byte-in-range built-in function.
      	(CMBRB2): Add byte-in-either-range built-in function.
      	(CMPEQB): Add byte-in-set built-in function.
      	(CMPRB): Add overload support for byte-in-range function.
      	(CMPRB2): Add overload support for byte-in-either-range function.
      	(CMPEQB): Add overload support for byte-in-set built-in function.
      	* config/rs6000/rs6000-c.c (P9_BUILTIN_CMPRB): Macro expansion to
      	define argument types for new builtin. 
      	(P9_BUILTIN_CMPRB2): Likewise.
      	(P9_BUILTIN_CMPEQB): Likewise.
      	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Rearrange
      	the order of presentation for certain built-in functions
      	(scalar_extract_exp, scalar_extract_sig, scalar_insert_exp)
      	(scalar_cmp_exp_gt, scalar_cmp_exp_lt, scalar_cmp_exp_eq)
      	(scalar_cmp_exp_unordered, scalar_test_data_class)
      	(scalar_test_neg) to improve locality and flow.  Document
      	the new __builtin_scalar_byte_in_set,
      	__builtin_scalar_byte_in_range, and
      	__builtin_scalar_byte_in_either_range functions.
      
      From-SVN: r243770
      Kelvin Nilsen committed
    • Daily bump. · 68dde2bf
      From-SVN: r243769
      GCC Administrator committed
  4. 16 Dec, 2016 15 commits
    • compiler: add containing Bfunction to some backend interfaces. · 8220e3f9
          
          Change the interfaces for backend methods that create statements to
          always pass in the enclosing Bfunction for the statement.  Having the
          function available simplifies things if a temporary variable has to be
          created during the construction of a statement.
          
          This also includes a change to the Mark_lvalue_varexprs helper
          class to handle indirections on the left hand side of assignments
          (e.g. "*x.y = ...").
          
          Reviewed-on: https://go-review.googlesource.com/34471
      
      	* go-gcc.cc (Gcc_backend::expression_statement): Add Bfunction*
      	parameter.
      	(Gcc_backend::init_statement): Likewise.
      	(Gcc_backend::assignment_statement): Likewise.
      	(Gcc_backend::if_statement): Likewise.
      
      From-SVN: r243766
      Than McIntosh committed
    • re PR fortran/78662 ([F03] Incorrect parsing of quotes in the… · 5cdc4b0e
      re PR fortran/78662 ([F03] Incorrect parsing of quotes in the char-literal-constant of the DT data descriptor)
      
      2016-12-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/78622
      	* io.c (format_lex): Continue of string delimiter seen.
      
      	* io/transfer.c (get_dt_format): New static function to alloc
      	and set the DT iotype string, handling doubled quotes.
      	(formatted_transfer_scalar_read,
      	formatted_transfer_scalar_write): Use new function.
      
      	* gfortran.dg/dtio_20.f03: New test.
      
      From-SVN: r243765
      Jerry DeLisle committed
    • re PR fortran/78757 (ICE with function returning a pointer to a character) · c2d42d16
      	PR fortran/78757
      	* trans-expr.c (gfc_conv_procedure_call): Emit DECL_EXPR for the
      	type pstr var points to.
      
      	* gfortran.dg/char_result_16.f90: New test.
      
      From-SVN: r243761
      Jakub Jelinek committed
    • * fr.po: Update. · d380fed1
      From-SVN: r243759
      Joseph Myers committed
    • Reuse Doxygen comments for map::erase overloads · f23e3d74
      	* include/bits/stl_map.h (map::erase(iterator)): Add Doxygen markup
      	to reuse documentation for erase(const_iterator) overload.
      	* include/bits/stl_multimap.h (multimap::erase(iterator)): Likewise.
      
      From-SVN: r243758
      Jonathan Wakely committed
    • Add assertion to _Rb_tree::erase to check for end iterators · 36b88526
      	* include/bits/stl_tree.h (_Rb_tree::_M_erase_aux(const_iterator)):
      	Add assertion for undefined argument.
      	(_Rb_tree::_M_erase_aux(const_iterator, const_iterator)): Call
      	_M_erase_aux directly instead of through erase.
      	(_Rb_tree::_M_erase_aux(const Key&)): Likewise.
      	* testsuite/23_containers/map/modifiers/erase/end_neg.cc: New test.
      
      From-SVN: r243757
      Jonathan Wakely committed
    • [AArch64] Split X-reg UBFIZ into W-reg LSL when possible · 680153bd
      	* config/aarch64/aarch64.md: New define_split above bswap<mode>2.
      
      	* gcc.target/aarch64/ubfiz_lsl_1.c: New test.
      
      From-SVN: r243756
      Kyrylo Tkachov committed
    • [AArch64] Split X-reg UBFX into W-reg LSR when possible · bcb036c5
      	* config/aarch64/aarch64.md: New define_split above insv<mode>.
      
      	* gcc.target/aarch64/ubfx_lsr_1.c: New test.
      
      From-SVN: r243755
      Kyrylo Tkachov committed
    • Revert accidentally changed file. · 17f3bb6d
      From-SVN: r243754
      Jakub Jelinek committed
    • re PR c/78408 (C loop initial declarations generate wrong code) · 7b45d0df
      	PR c/78408
      	* tree-ssa-ccp.c: Include tree-dfa.h.
      	(optimize_memcpy): New function.
      	(pass_fold_builtins::execute): Use it.  Remove useless conditional
      	break after BUILT_IN_VA_*.
      
      	* gcc.dg/pr78408-1.c: New test.
      	* gcc.dg/pr78408-2.c: New test.
      
      From-SVN: r243753
      Jakub Jelinek committed
    • re PR tree-optimization/78819 (Wrong code with VRP caused by register assertions… · 6b520e8d
      re PR tree-optimization/78819 (Wrong code with VRP caused by register assertions along default switch labels)
      
      	PR tree-optimization/78819
      	* tree-vrp.c (find_switch_asserts): Return if the insertion limit is 0.
      	Don't register an assertion if the default case shares a label with
      	another case.
      
      	* gcc.dg/tree-ssa/vrp112.c: New test.
      
      From-SVN: r243746
      Marek Polacek committed
    • The negdi2 patterns for ARM and Thumb-2 are duplicated because Thumb-2 doesn't… · ed2def05
      The negdi2 patterns for ARM and Thumb-2 are duplicated because Thumb-2 doesn't support RSC with an immediate.
      
      The negdi2 patterns for ARM and Thumb-2 are duplicated because Thumb-2
      doesn't support RSC with an immediate.  We can however emulate RSC with
      zero using a shifted SBC.  If we add this to subsi3_carryin the negdi
      patterns can be merged, simplifying things a bit.  This should generate
      identical code in all cases.
      
          gcc/
              * config/arm/arm.md (subsi3_carryin): Add Thumb-2 RSC #0.
              (arm_negdi2) Rename to negdi2_insn, allow on Thumb-2.
              * config/arm/thumb2.md (thumb2_negdi2): Remove pattern.
      
      From-SVN: r243745
      Wilco Dijkstra committed
    • Thumb uses a special register allocation order to increase the use of low registers. · c67b6f26
      Thumb uses a special register allocation order to increase the use of low
      registers.  Oddly enough, LR appears before R12, which means that LR must
      be saved and restored even if R12 is available.  Swapping R12 and LR means
      this simple example now uses R12 as a temporary (just like ARM):
      
      int f(long long a, long long b)
      {
        if (a < b) return 1;
        return a + b;
      }
      
          gcc/
      	* config/arm/arm.c (thumb_core_reg_alloc_order): Swap R12 and R14.
      
      From-SVN: r243744
      Wilco Dijkstra committed
    • [ARC] Remove old prof patterns. · bfb688ae
      gcc/
      2016-12-16  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.md (call_prof): Remove.
      	(call_value_prof): Likewise.
      	(sibcall_prof): Likewise.
      	(sibcall_value_prof): Likewise.
      
      From-SVN: r243743
      Claudiu Zissulescu committed
    • [ARC] Rework code for profiling. · e04ea1da
      gcc/
      2016-12-16  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.h (LINK_SPEC): Tidy up.
      	(ENDFILE_SPEC): Likewise.
      	(LIB_SPEC): Likewise.
      	(STARTFILE_SPEC): Include gcrt0 when profiling.
      	(FUNCTION_PROFILER): Use __mcount.
      	* config/arc/arc.opt (mucb-mcount): Remove.
      	* doc/invoke.texi (ARC): Remove mucb-mcount doc.
      	* arc/arc-protos.h (arc_profile_call): Remove.
      	* config/arc/arc.c (write_profile_sections): Likewise.
      	(arc_profile_call): Likewise.
      	(unspec_prof_hash): Likewise.
      	(unspec_prof_htab_eq): Likewise.
      	(arc_legitimate_constant_p): Remove UNSPEC_PROF.
      	(arc_reorg): Remove call to write_profile_sections.
      	* config/arc/arc.md (call): Remove call to arc_profile_call.
      	(call_value): Likewise.
      	(sibcall): Likewise.
      	(sibcall_value): Likewise.
      	(define_constants): Remove UNSPEC_PROF.
      
      libgcc/
      	* config.host (arc*-*-linux-uclibc*): Remove libgmon, crtg, and
      	crtgend.
      	(arc*-*-elf*): Likewise.
      	* config/arc/t-arc: Remove old gmon lib targets.
      	* config/arc/crtg.S: Remove.
      	* config/arc/crtgend.S: Likewise.
      	* config/arc/gmon/atomic.h: Likewise.
      	* config/arc/gmon/auxreg.h: Likewise.
      	* config/arc/gmon/dcache_linesz.S: Likewise.
      	* config/arc/gmon/gmon.c: Likewise.
      	* config/arc/gmon/machine-gmon.h: Likewise.
      	* config/arc/gmon/mcount.c: Likewise.
      	* config/arc/gmon/prof-freq-stub.S: Likewise.
      	* config/arc/gmon/prof-freq.c: Likewise.
      	* config/arc/gmon/profil.S: Likewise.
      	* config/arc/gmon/sys/gmon.h: Likewise.
      	* config/arc/gmon/sys/gmon_out.h: Likewise.
      	* config/arc/t-arc-newlib: Likewise.
      	* config/arc/t-arc700-uClibc: Renamed to t-arc-uClibc.
      
      From-SVN: r243742
      Claudiu Zissulescu committed