1. 07 May, 2019 29 commits
    • Improve API docs for <chrono> and <ratio> · c34d3fd3
      	* doc/doxygen/doxygroups.cc (std::literals): Add documentation for
      	inline namespace.
      	* include/std/chrono: Improve docs.
      	* include/std/ratio: Do not document implementation details.
      	* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Adjust dg-error
      	line numbers.
      	* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
      
      From-SVN: r270988
      Jonathan Wakely committed
    • PR libstdc++/89102 implement new common_type rules (P0435R1, P0548R1) · f61a12b3
      This change ensures that std::common_type<> is a complete type (LWG
      2408), and that std::common_type<T>, std::common_type<cv T1, cv T2>, and
      std::common_type<T1, T2, R...> will use program-defined specializations
      for std::common_type<T1, T2> (LWG 2465).
      
      The implementation of common_type<T1, T2, R...> is changed to use
      void_t, and the specializations for duration and time_point are modified
      to also use void_t instead of depending on implementation details of
      common_type.
      
      	PR libstdc++/89102
      	* doc/xml/manual/intro.xml: Document DR 2408 and 2465 changes.
      	* include/std/chrono (__duration_common_type_wrapper): Replace with ...
      	(__duration_common_type): New helper.
      	(common_type<chrono::duration<R1, P2>, chrono::duration<R2, P2>>): Use
      	__duration_common_type.
      	(__timepoint_common_type_wrapper): Replace with ...
      	(__timepoint_common_type): New helper.
      	(common_type<chrono::time_point<C, D2>, chrono::time_point<C, D2>>):
      	Use __time_point_common_type.
      	* include/std/type_traits (common_type<>): Define, as per LWG 2408.
      	(__common_type_impl): If either argument is transformed by decay,
      	use the common_type of the decayed types.
      	(__common_type_impl<_Tp, _Up, _Tp, _Up>): If the types are already
      	decayed, use __do_common_type_impl to get the common_type.
      	(common_type<_Tp>): Use common_type<_Tp, _Tp>.
      	(__do_member_type_wrapper, __member_type_wrapper)
      	(__expanded_common_type_wrapper): Remove.
      	(__common_type_pack, __common_type_fold): New helpers.
      	(common_type<_Tp, _Up, _Vp...>): Use new helpers instead of
      	__member_type_wrapper and __expanded_common_type_wrapper.
      	* testsuite/20_util/common_type/requirements/explicit_instantiation.cc:
      	Test zero-length template argument list.
      	* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
      	Test single argument cases and argument types that should decay.
      	* testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
      	Adjust expected error.
      	* testsuite/20_util/duration/literals/range_neg.cc: Use zero for
      	dg-error lineno.
      	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
      	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
      
      From-SVN: r270987
      Jonathan Wakely committed
    • PR c++/90171 - reorganize usual_deallocation_fn_p · f7f36e3d
      When fixing 90171 it struck me as undesirable to have so many separate
      functions that all needed to know about the definition of a usual
      deallocation function.  So this patch condenses them into one.  I left
      destroying_delete_p because it is used by other files as well.
      
      	* call.c (struct dealloc_info): New.
      	(usual_deallocation_fn_p): Take a dealloc_info*.
      	(aligned_deallocation_fn_p, sized_deallocation_fn_p): Remove.
      	(build_op_delete_call): Adjust.
      
      From-SVN: r270986
      Jason Merrill committed
    • PR c++/86485 - -Wmaybe-unused with empty class ?: · 7f16ac89
      	* typeck.c (build_static_cast_1): Use cp_build_addr_expr.
      
      For GCC 9 I fixed this bug with a patch to gimplify_cond_expr, but this
      function was also doing the wrong thing.
      
      Using build_address does not push the ADDR_EXPR down into the arms of a
      COND_EXPR, which we need for proper handling of conversion of an lvalue ?:
      to another reference type.
      
      From-SVN: r270985
      Jason Merrill committed
    • A non-type template parm with a placeholder type is type-dependent. · 258195f1
      	* pt.c (type_dependent_expression_p): A non-type template parm with
      	a placeholder type is type-dependent.
      
      From-SVN: r270984
      Jason Merrill committed
    • rs6000: Remove reload leftovers · 76ddb9eb
      There are a few things left in the rs6000 port that are unused now
      that we do not support old reload anymore.  This removes those.
      
      
      	* config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
      	Delete declaration.
      	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
      	(rs6000_debug_legitimize_reload_address): Delete.
      	(rs6000_legitimize_reload_address_ptr): Delete.
      	(rs6000_option_override_internal): Adjust.
      	(mem_operand_gpr): Adjust comment.
      	(legitimate_lo_sum_address_p): Ditto.
      	(rs6000_legitimize_reload_address): Delete.
      	(rs6000_debug_legitimize_reload_address): Delete.
      	* config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
      
      From-SVN: r270983
      Segher Boessenkool committed
    • re PR middle-end/89765 (Multiple problems with vec-insert implementation on PowerPC) · 5d30228e
      gcc/ChangeLog:
      
      2019-05-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	PR target/89765
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
      	to compute vector element selector for both constant and variable
      	operands.
      
      gcc/testsuite/ChangeLog:
      
      2019-05-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	PR target/89765
      	* gcc.target/powerpc/pr89765-mc.c: New test.
      	* gcc.target/powerpc/vsx-builtin-10c.c: New test.
      	* gcc.target/powerpc/vsx-builtin-10d.c: New test.
      	* gcc.target/powerpc/vsx-builtin-11c.c: New test.
      	* gcc.target/powerpc/vsx-builtin-11d.c: New test.
      	* gcc.target/powerpc/vsx-builtin-12c.c: New test.
      	* gcc.target/powerpc/vsx-builtin-12d.c: New test.
      	* gcc.target/powerpc/vsx-builtin-13c.c: New test.
      	* gcc.target/powerpc/vsx-builtin-13d.c: New test.
      	* gcc.target/powerpc/vsx-builtin-14c.c: New test.
      	* gcc.target/powerpc/vsx-builtin-14d.c: New test.
      	* gcc.target/powerpc/vsx-builtin-15c.c: New test.
      	* gcc.target/powerpc/vsx-builtin-15d.c: New test.
      	* gcc.target/powerpc/vsx-builtin-16c.c: New test.
      	* gcc.target/powerpc/vsx-builtin-16d.c: New test.
      	* gcc.target/powerpc/vsx-builtin-17c.c: New test.
      	* gcc.target/powerpc/vsx-builtin-17d.c: New test.
      	* gcc.target/powerpc/vsx-builtin-18c.c: New test.
      	* gcc.target/powerpc/vsx-builtin-18d.c: New test.
      	* gcc.target/powerpc/vsx-builtin-19c.c: New test.
      	* gcc.target/powerpc/vsx-builtin-19d.c: New test.
      	* gcc.target/powerpc/vsx-builtin-20c.c: New test.
      	* gcc.target/powerpc/vsx-builtin-20d.c: New test.
      	* gcc.target/powerpc/vsx-builtin-9c.c: New test.
      	* gcc.target/powerpc/vsx-builtin-9d.c: New test.
      
      From-SVN: r270982
      Kelvin Nilsen committed
    • i386.md (cvt_mnemonic): New mode attribute. · e9d2e7b8
      	* config/i386/i386.md (cvt_mnemonic): New mode attribute.
      	(ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
      	ashrdi3_cvt using SWI48 mode iterator.
      
      From-SVN: r270981
      Uros Bizjak committed
    • [libcpp] Reimplement mkdeps data structures · 61145d93
      https://gcc.gnu.org/ml/gcc-patches/2019-05/msg00323.html
      	* files.c (_cpp_stack_file): Empty filenames aren't dependencies.
      	* mkdeps.c (deps_add_dep): Assert not empty.
      
      From-SVN: r270978
      Nathan Sidwell committed
    • Resign as IA-64 maintainer. · 2ed6d245
      	* MAINTAINERS: Remove myself as IA-64 maintainer.
      
      From-SVN: r270977
      Jim Wilson committed
    • This patch adds support to vectorize sum of abslolute differences (SAD_EXPR) · a9fad8fe
      using SVE.
      
      Given this input code:
      
      int
      sum_abs (uint8_t *restrict x, uint8_t *restrict y, int n)
      {
        int sum = 0;
      
        for (int i = 0; i < n; i++)
          {
            sum += __builtin_abs (x[i] - y[i]);
          }
      
        return sum;
      }
      
      The resulting SVE code is:
      
      0000000000000000 <sum_abs>:
         0:	7100005f 	cmp	w2, #0x0
         4:	5400026d 	b.le	50 <sum_abs+0x50>
         8:	d2800003 	mov	x3, #0x0                   	// #0
         c:	93407c42 	sxtw	x2, w2
        10:	2538c002 	mov	z2.b, #0
        14:	25221fe0 	whilelo	p0.b, xzr, x2
        18:	2538c023 	mov	z3.b, #1
        1c:	2518e3e1 	ptrue	p1.b
        20:	a4034000 	ld1b	{z0.b}, p0/z, [x0, x3]
        24:	a4034021 	ld1b	{z1.b}, p0/z, [x1, x3]
        28:	0430e3e3 	incb	x3
        2c:	0520c021 	sel	z1.b, p0, z1.b, z0.b
        30:	25221c60 	whilelo	p0.b, x3, x2
        34:	040d0420 	uabd	z0.b, p1/m, z0.b, z1.b
        38:	44830402 	udot	z2.s, z0.b, z3.b
        3c:	54ffff21 	b.ne	20 <sum_abs+0x20>  // b.any
        40:	2598e3e0 	ptrue	p0.s
        44:	04812042 	uaddv	d2, p0, z2.s
        48:	1e260040 	fmov	w0, s2
        4c:	d65f03c0 	ret
        50:	1e2703e2 	fmov	s2, wzr
        54:	1e260040 	fmov	w0, s2
        58:	d65f03c0 	ret
      
      Notice how udot is used inside a fully masked loop.
      
      
      gcc/Changelog:
      
      2019-05-07  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
      
      	* config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
      	(aarch64_<su>abd<mode>_3): Likewise.
      	(*aarch64_<su>abd<mode>_3): New define_insn.
      	(<sur>sad<vsi2qi>): New define_expand.
      	* config/aarch64/iterators.md: Added MAX_OPP attribute.
      	* tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
      	(build_vect_cond_expr): Likewise.
      
      gcc/testsuite/Changelog:
       
      2019-05-07  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
      
      	* gcc.target/aarch64/sve/sad_1.c: New test for sum of absolute
      	differences.
      
      From-SVN: r270975
      Alejandro Martinez committed
    • cfgexpand.c (asm_clobber_reg_is_valid): Reject clobbers outside of accessible_reg_set. · 0a592151
      	* cfgexpand.c (asm_clobber_reg_is_valid): Reject
      	clobbers outside of accessible_reg_set.
      	* config/i386/i386.c (ix86_conditional_register_usage):
      	Disable register sets by clearing corresponding bits in
      	accessible_reg_set.  Do not set corresponding bits in fixed_regs,
      	call_used_regs and don't clear corresponding reg_names array members.
      
      testsuite/ChangeLog:
      
      	* gcc.target/i386/asm-7.c: New test.
      	* gcc.target/i386/asm-1.c: Update expected error string.
      	* gcc.target/i386/pr62120.c: Ditto.
      
      From-SVN: r270955
      Uros Bizjak committed
    • Fix incorrect DR numbers in libstdc++ manual · 73e828be
      	* doc/xml/manual/intro.xml: Fix DR 2537 and DR 2566 confusion.
      
      From-SVN: r270954
      Jonathan Wakely committed
    • Make allocator propagation more consistent for operator+(basic_string) (P1165R1) · f4e678ef
      2019-05-01  Nina Dinka Ranns  <dinka.ranns@gmail.com>
      
      	Make allocator propagation more consistent for
      	operator+(basic_string) (P1165R1)
      	* include/bits/basic_string.h
      	(operator+(basic_string&&, basic_string&&): Changed resulting
      	allocator to always be the one from the first parameter.
      	* include/bits/basic_string.tcc
      	(operator+(const _CharT*, const basic_string&)): Changed
      	resulting allocator to be SOCCC on the second parameter's allocator.
      	(operator+(_CharT, const basic_string&)): Likewise.
      	* testsuite/21_strings/basic_string/allocator/char/operator_plus.cc:
      	New.
      	* testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc:
      	New.
      
      From-SVN: r270953
      Nina Dinka Ranns committed
    • Improve API docs for std::regex · 2313938e
      	* include/bits/regex.h: Improve docs.
      	* include/bits/regex.tcc: Do not document implementation details.
      
      From-SVN: r270952
      Jonathan Wakely committed
    • Add test for std::hash<std::error_code> · 99f12959
      Copied from 19_diagnostics/error_condition/hash.cc added recently.
      
      	* testsuite/19_diagnostics/error_code/hash.cc: New test.
      
      From-SVN: r270951
      Jonathan Wakely committed
    • Fix make install-gcc-specs with empty GCC_SPECS_FILES · 339197c7
      	* gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
      	Honor DESTDIR.
      
      From-SVN: r270947
      Rainer Orth committed
    • tree-vect-stmts.c (vect_is_simple_cond): When vectype is not specified still… · fcd0566b
      tree-vect-stmts.c (vect_is_simple_cond): When vectype is not specified still compute a comp_vectype for invariant compares.
      
      2019-05-07  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-stmts.c (vect_is_simple_cond): When vectype is
      	not specified still compute a comp_vectype for invariant
      	compares.
      
      From-SVN: r270945
      Richard Biener committed
    • re PR tree-optimization/90316 (large compile time increase in opt / alias stmt… · 530ec1ac
      re PR tree-optimization/90316 (large compile time increase in opt / alias stmt walking for Go example)
      
      2019-05-07  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/90316
      	* tree-ssa-pre.c (translate_vuse_through_block): When
      	same_valid is NULL do not bother to search for a virtual
      	PHI continuation.
      	(phi_translate_1): When operands changed we cannot keep
      	the same value-number so do not bother to ask whether
      	that's possible from translate_vuse_through_block.
      
      From-SVN: r270944
      Richard Biener committed
    • [libcpp] Reimplement mkdeps data structures · d7b6aee8
      https://gcc.gnu.org/ml/gcc-patches/2019-05/msg00293.html
      	* include/mkdeps.h (deps_write): Add PHONY arg.
      	(deps_phony_targets): Delete.
      	* init.c (cpp_finish): Just call deps_write.
      	* mkdeps.c (struct mkdeps): Add local vector class.  Reimplement
      	vector handling.
      	(munge): Munge to static buffer.
      	(apply_vpath): Adjust vector handling.
      	(deps_init, deps_free): Use new, delete.
      	(deps_add_target): Do not munge here.  Record quoting low water mark.
      	(deps_add_dep): Do not munge here.
      	(deps_add_vpath): Adjust vector handling.
      	(make_write_name): New.  Munge on demand here.
      	(make_write_vec): New.
      	(deps_phony_targets): Delete.
      	(make_write): New.
      	(deps_write): Forward to deps_Write.
      	(deps_save, deps_restore): Adjust vector handling.
      
      From-SVN: r270943
      Nathan Sidwell committed
    • Fix bitmap registration of overheads. · 7664eeb7
      2019-05-07  Martin Liska  <mliska@suse.cz>
      
      	* bitmap.c (bitmap_register): Come up with
      	alloc_descriptor_max_uid and assign it for
      	a new bitmap.
      	(register_overhead): Use get_descriptor as
      	a descriptor.
      	(release_overhead): New.
      	(bitmap_elem_to_freelist): Call it.
      	(bitmap_elt_clear_from): Likewise.
      	(bitmap_obstack_free): Likewise.
      	(bitmap_move): Sensitively release memory.
      	* bitmap.h (struct GTY): Add alloc_descriptor and padding.
      	(bitmap_initialize): Initialize alloc_descriptor to zero.
      	* tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
      
      From-SVN: r270942
      Martin Liska committed
    • tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever we build a SLP node. · 9f708a84
      2019-05-07  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
      	we build a SLP node.  Remove max_size and limiting.
      	(vect_analyze_slp_instance): Record and dump size of the SLP graph.
      
      From-SVN: r270941
      Richard Biener committed
    • re PR tree-optimization/90316 (large compile time increase in opt / alias stmt… · 3cf8b3e3
      re PR tree-optimization/90316 (large compile time increase in opt / alias stmt walking for Go example)
      
      2019-05-07  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/90316
      	* tree-ssa-alias.h (get_continuation_for_phi): Take walking
      	limit by reference.
      	(walk_non_aliased_vuses): Take walking limit argument.
      	* tree-ssa-alias.c (maybe_skip_until): Take limit and abort
      	walking if it is reached instead of just counting.
      	(get_continuation_for_phi): Likewise.
      	(walk_non_aliased_vuses): Likewise, instead of leaving counter
      	limiting to the callback.
      	* tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
      	(vn_reference_lookup_3): Likewise.
      	(vn_reference_lookup_pieces): Likewise.
      	(vn_reference_lookup): Likewise.
      	* tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
      	* tree-ssa-scopedtables.c (vuse_eq): Adjust.
      	(avail_exprs_stack::lookup_avail_expr): Likewise.
      
      From-SVN: r270940
      Richard Biener committed
    • Check if Solaris ld supports -z relax=transtls · bca0a321
      	* m4/druntime/os.m4 (DRUNTIME_OS_LINK_SPEC): Only use -z
      	relax=transtls if linker supports it.
      	* configure.ac (enable_libphobos, LIBPHOBOS_SUPPORTED): Move down.
      	(x86_64-*-solaris2.* | i?86-*-solaris2.*): Only
      	mark supported with either gld or ld -z relax=transtls.
      	* configure: Regenerate.
      
      From-SVN: r270939
      Rainer Orth committed
    • tree-ssa-alias.c (aliasing_component_refs_p): Continue looking for comparaible… · 9edfa4c0
      tree-ssa-alias.c (aliasing_component_refs_p): Continue looking for comparaible types in the second direction even if...
      
      	* tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
      	for comparaible types in the second direction even if first one
      	hits incomparable type.
      
      From-SVN: r270938
      Jan Hubicka committed
    • re PR lto/90369 (error: could not unlink output file) · fe267711
      2019-05-07  Richard Biener  <rguenther@suse.de>
      
      	PR lto/90369
      	* lto-wrapper.c (debug_objcopy): Use the original filename
      	including archive offset for the filename used for -save-temps.
      
      From-SVN: r270937
      Richard Biener committed
    • Fix Solaris bootstrap: lto-common.c, lto-dump.c format mismatches · 03de2955
      	* lto-common.c (lto_file_read): Print section->start as int64_t,
      	section->len as uint64_t.
      	* lto-dump.c (symbol_entry::dump): Print sz as uint64_t.
      
      From-SVN: r270935
      Rainer Orth committed
    • Fix a typo in two_value_replacement function · b65307e9
      GCC revision 267634 implemented two_value_replacement function.
      However, a typo occurred during the parameter check, which caused
      us to miss some optimizations.
      
      The intent of the code might be to check that the input parameters
      are const int and their difference is one.  However, when I read
      the code, I found that it is wrong to detect whether an input data
      plus one is equal to itself.  This could be a typo.
      
      2019-05-07  Li Jia He  <helijia@linux.ibm.com>
      
      	* tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
      	detection.
      	* gcc.dg/tree-ssa/pr37508.c: Add the no-ssa-phiopt option to skip phi
      	optimization.
      	* gcc.dg/tree-ssa/pr88676-2.c: New testcase.
      
      From-SVN: r270934
      Li Jia He committed
    • Daily bump. · caa3bffa
      From-SVN: r270933
      GCC Administrator committed
  2. 06 May, 2019 11 commits
    • rs6000: Renumber the registers · 33463137
      This renumbers the registers.
      
      It moves the VRs to 64..95, right after the GPRs and the FPRS.  This
      means that the VSRs (which are aliases to the FPRs and the VRs, in
      that order) are consecutive now.
      
      It removes MQ, which has been just a stub for ages (it is a leftover
      from RIOS, old POWER).
      
      It moves the CR fields to 100..107, which is a bit easier to read
      than the 68..75 is was before.
      
      The rest fills the holes.  It should be easy to move anything else
      after this series, so the exact order isn't very important anymore,
      we aren't stuck with it if we dislike it.
      
      Many things still want the GPRs to be at 0..31, and some things want
      the FPRs at 32..63.  I don't think we'll ever want to change that,
      so I left it be.
      
      Small things...  It removes DWARF_FRAME_REGISTERS, it used to save
      1000 or so words of memory, but it has been just a handful for a
      while, and now it is one.  Some whitespace fixes.  Testing showed one
      or two places where register allocation was different (not worse, not
      better, just different).
      
      
      	* config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
      	(LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
      	(CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
      	(CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
      	(FRAME_POINTER_REGNUM): Change numbering.
      	* config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
      	(alt_reg_names): Adjust.
      	(rs6000_conditional_register_usage): Don't mark hard register 64 as
      	fixed.
      	* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
      	(DWARF_FRAME_REGISTERS): Delete.
      	(DWARF2_FRAME_REG_OUT): Fix whitespace.
      	(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
      	Adjust.
      	(REG_ALLOC_ORDER): Adjust.
      	(FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
      	(REG_CLASS_CONTENTS): Adjust.
      	(RETURN_ADDR_RTX): Change comment.
      	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
      	instead of 67.
      	(REGISTER_NAMES): Adjust.
      	(ADDITIONAL_REGISTER_NAMES): Adjust.
      	* config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
      
      From-SVN: r270929
      Segher Boessenkool committed
    • re PR fortran/90290 (-std=f2008 should reject non-constant stop and error stop codes) · c21ffa3e
      2019-05-06  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/90290
      	* match.c (gfc_match_stopcode): Check F2008 condition on stop code.
      
      2019-05-06  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/90290
      	* gfortran.dg/pr90290.f90: New test.
      
      From-SVN: r270928
      Steven G. Kargl committed
    • rs6000: Remove TM regs · b56be669
      We do not need to expose the TM registers in debug info.  It isn't
      actually useful there, because none of the things that can modify
      these registers (other than explicit moves) are marked.
      
      We also do not need the registers for GCC itself internally.  This
      patch deletes them.
      
      
      	* config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
      	Delete.
      	* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
      	(DWARF_FRAME_REGISTERS): Adjust.
      	(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
      	Adjust.
      	(REG_ALLOC_ORDER): Adjust.
      	(enum reg_class): Delete SPR_REGS.
      	(REG_CLASS_NAMES): Delete SPR_REGS.
      	(REG_CLASS_CONTENTS): Delete SPR_REGS.  Adjust for deleted TM regs.
      	(REGISTER_NAMES): Adjust.
      	(ADDITIONAL_REGISTER_NAMES): Adjust.
      	* config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
      	* config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
      	* config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
      	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
      	(htm_spr_regno): Delete.
      	(htm_expand_builtin): Adjust: the HTM builtins now have one fewer
      	argument.
      	(rs6000_dbx_register_number): Adjust.
      
      From-SVN: r270927
      Segher Boessenkool committed
    • rs6000: Delete PRE_GCC3_DWARF_FRAME_REGISTERS · 7da118f1
      We don't need this.
      
      
      	* config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
      
      From-SVN: r270926
      Segher Boessenkool committed
    • rs6000: rs6000_dbx_register_number for fp/ap/mq · e294835a
      The frame pointer and the argument pointer aren't real registers.  MQ
      was a register on old POWER.  All three are still used as arguments to
      rs6000_dbx_register_number during initialisation.  If we handle them
      explicitly we can do a gcc_unreachable to catch other unexpected
      registers.
      
      
      	* config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
      	FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
      
      From-SVN: r270925
      Segher Boessenkool committed
    • re PR tree-optimization/88709 (Improve store-merging) · 3afd514b
      	PR tree-optimization/88709
      	PR tree-optimization/90271
      	* params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
      	* gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
      	non-clobber CONSTRUCTORs with no elts.  Remove useless tmp_int
      	variable.
      	(imm_store_chain_info::coalesce_immediate_stores): Punt if the size
      	of the store merging group is larger than
      	PARAM_STORE_MERGING_MAX_SIZE parameter.
      	(split_group): Add bzero_first argument.  If set, always emit first
      	the first store which must be = {} of the whole area and then for the
      	rest of the stores consider all zero bytes as paddings.
      	(imm_store_chain_info::output_merged_store): Check if first store
      	is = {} of the whole area and if yes, determine which setting of
      	bzero_first for split_group gives smaller number of stores.  Adjust
      	split_group callers.
      	(lhs_valid_for_store_merging_p): Allow decls.
      	(rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
      	no elts.
      	(pass_store_merging::process_store): Likewise.
      
      	* gcc.dg/store_merging_26.c: New test.
      	* gcc.dg/store_merging_27.c: New test.
      	* gcc.dg/store_merging_28.c: New test.
      	* gcc.dg/store_merging_29.c: New test.
      
      From-SVN: r270924
      Jakub Jelinek committed
    • re PR target/89424 (__builtin_vec_ext_v1ti (v, i) results in ICE with variable i (RS6000)) · 839c480a
      gcc/ChangeLog:
      
      2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	PR target/89424
      	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
      	handling of V1TImode.
      
      gcc/testsuite/ChangeLog:
      
      2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
      
      	PR target/89424
      	* gcc.target/powerpc/pr89424-0.c: New test.
      	* gcc.target/powerpc/vsx-builtin-13a.c: Define macro PR89424 to
      	enable testing of newly patched capability.
      	* gcc.target/powerpc/vsx-builtin-13b.c: Likewise.
      	* gcc.target/powerpc/vsx-builtin-20a.c: Likewise.
      	* gcc.target/powerpc/vsx-builtin-20b.c: Likewise.
      
      From-SVN: r270918
      Kelvin Nilsen committed
    • PR c++/90265 - ICE with generic lambda. · cd0a831c
      	* pt.c (tsubst_copy_and_build): Use a dedicated variable for the last
      	element in the vector.
      
      	* g++.dg/cpp1y/lambda-generic-90265.C: New test.
      
      From-SVN: r270917
      Marek Polacek committed
    • re PR target/89221 (--enable-frame-pointer does not work as intended) · fd661a34
      	PR target/89221
      	* config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
      	and enable_frame_pointer ...
      	* configure.ac: ... here.  Update help strings for
      	--enable-frame-pointer.
      	* configure: Regenerate.
      	* config/i386/i386-options.c (ix86_option_override_internal): Remove
      	USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
      	* config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
      	(USE_X86_64_FRAME_POINTER): Ditto.
      
      From-SVN: r270914
      Uros Bizjak committed
    • Append to target_gtfiles in order to fix Darwin bootstrap. · 7c0b7150
      2019-05-06  Martin Liska  <mliska@suse.cz>
      
      	* config.gcc: Append to target_gtfiles and fix indentation.
      
      From-SVN: r270913
      Martin Liska committed
    • re PR tree-optimization/90358 (526.blender_r train run does not finish after r270847 on znver1) · 89875850
      2019-05-06  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/90358
      	* tree-vect-stmts.c (get_group_load_store_type): Properly
      	detect unused upper half of load.
      	(vectorizable_load): Likewise.
      
      	* gcc.target/i386/pr90358.c: New testcase.
      
      From-SVN: r270911
      Richard Biener committed