1. 08 Feb, 2018 10 commits
    • re PR middle-end/84233 (ICE (segfault) in gimple_assign_rhs_code) · 24db2556
      2018-02-08  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/84233
      	* tree-ssa-phiprop.c (propagate_with_phi): Use separate
      	changed flag instead of boguously re-using phi_inserted.
      
      	* g++.dg/torture/pr84233.C: New testcase.
      
      From-SVN: r257486
      Richard Biener committed
    • [hsa] Fix PR82416 testcase · 3d224921
      2018-02-08  Martin Jambor  <mjambor@suse.cz>
      
      	* testsuite/libgomp.hsa.c/pr82416.c: Make the function with target
      	clonable.
      
      From-SVN: r257485
      Martin Jambor committed
    • [hsa] Set program allocation for static local variables · c7c30edd
      2018-02-08  Martin Jambor  <mjambor@suse.cz>
      
      	* hsa-gen.c (get_symbol_for_decl): Set program allocation for
      	static local variables.
      
      libgomp/
      	* testsuite/libgomp.hsa.c/staticvar.c: New test.
      
      From-SVN: r257484
      Martin Jambor committed
    • re PR target/84278 (claims initv4sfv2sf is available but inits through stack) · 414fef4e
      2018-02-08  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/84278
      	* tree-vect-stmts.c (vectorizable_store): When looking for
      	smaller vector types to perform grouped strided loads/stores
      	make sure the mode is supported by the target.
      	(vectorizable_load): Likewise.
      
      	* gcc.target/i386/pr84278.c: New testcase.
      
      From-SVN: r257483
      Richard Biener committed
    • [AArch64] Use more LDP/STP in shrinkwrapping · 3f26f054
      The shrinkwrap optimization added in GCC 7 allows each callee-save to
      be delayed and done only across blocks which need a particular callee-save.
      Although this reduces unnecessary memory traffic on code paths that need
      few callee-saves, it typically uses LDR/STR rather than LDP/STP.  This
      means more memory accesses and increased codesize, ~1.0% on average.
      
      To improve this, if a particular callee-save must be saved/restored, also
      add the adjacent callee-save to allow use of LDP/STP.  This significantly
      reduces codesize (for example gcc_r, povray_r, parest_r, xalancbmk_r are
      1% smaller).  This is a simple fix which can be backported.  A more advanced
      approach would scan blocks for pairs of callee-saves, but that requires a
      full rewrite of all the callee-save code which is too late at this stage.
      
      An example epilog in a shrinkwrapped function before:
      
      ldp    x21, x22, [sp,#16]
      ldr    x23, [sp,#32]
      ldr    x24, [sp,#40]
      ldp    x25, x26, [sp,#48]
      ldr    x27, [sp,#64]
      ldr    x28, [sp,#72]
      ldr    x30, [sp,#80]
      ldr    d8, [sp,#88]
      ldp    x19, x20, [sp],#96
      ret
      
      And after this patch:
      
      ldr    d8, [sp,#88]
      ldp    x21, x22, [sp,#16]
      ldp    x23, x24, [sp,#32]
      ldp    x25, x26, [sp,#48]
      ldp    x27, x28, [sp,#64]
      ldr    x30, [sp,#80]
      ldp    x19, x20, [sp],#96
      ret
      
          gcc/
      	* config/aarch64/aarch64.c (aarch64_components_for_bb):
      	Increase LDP/STP opportunities by adding adjacent callee-saves.
      
      From-SVN: r257482
      Wilco Dijkstra committed
    • PR84068, PR83459: Fix sort order of SCHED_PRESSURE_MODEL · 18fbe394
      The comparison function for SCHED_PRESSURE_MODEL is incorrect.  If either
      instruction is not in target_bb, the ordering is not well defined.  
      Since all instructions outside the target_bb get the highest model_index,
      all we need to do is sort on model_index.  If the model_index is the same
      we defer to RFS_DEP_COUNT and/or RFS_TIE.
      
          gcc/
      	PR rtl-optimization/84068
      	PR rtl-optimization/83459
      	* haifa-sched.c (rank_for_schedule): Fix SCHED_PRESSURE_MODEL sorting.
      
          gcc/testsuite
      	PR rtl-optimization/84068
      	PR rtl-optimization/83459
      	* gcc.dg/pr84068.c: New test.
      
      From-SVN: r257481
      Wilco Dijkstra committed
    • re PR tree-optimization/84224 (ICE in execute, at gimple-ssa-warn-alloca.c:448) · eacac712
      	PR tree-optimization/84224
      	* gimple-ssa-warn-alloca.c (pass_walloca::execute): Remove assert.
      	* calls.c (gimple_alloca_call_p): Only return TRUE when we have
      	non-zero arguments.
      
      From-SVN: r257480
      Aldy Hernandez committed
    • slp-pr56812.cc: Allow either basic-block or loop vectorization to happen. · 3b263f5a
      2018-02-08  Richard Biener  <rguenther@suse.de>
      
      	* g++.dg/vect/slp-pr56812.cc: Allow either basic-block or
      	loop vectorization to happen.
      
      From-SVN: r257479
      Richard Biener committed
    • re PR c++/83204 (c++ -std=c++14 ICE in maybe_undo_parenthesized_ref, at cp/semantics.c:1694) · 66a90e86
      /cp
      2018-02-08  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/83204
      	* pt.c (tsubst_copy_and_build): Use force_paren_expr for INDIRECT_REF.
      
      /testsuite
      2018-02-08  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/83204
      	* g++.dg/cpp0x/lambda/lambda-ice25.C: New.
      
      From-SVN: r257478
      Paolo Carlini committed
    • Daily bump. · f986f7e4
      From-SVN: r257477
      GCC Administrator committed
  2. 07 Feb, 2018 30 commits
    • install.texi (Configuration): Document the --with-long-double-format={ibm,ieee}… · d2591b68
      install.texi (Configuration): Document the --with-long-double-format={ibm,ieee} PowerPC configuration options.
      
      2018-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* doc/install.texi (Configuration): Document the
      	--with-long-double-format={ibm,ieee} PowerPC configuration
      	options.
      
      From-SVN: r257473
      Michael Meissner committed
    • altivec.md (*restore_world): Remove LR use. · 11e887c4
      2018-02-07  Iain Sandoe  <iain@codesourcery.com>
      
      	* config/rs6000/altivec.md (*restore_world): Remove LR use.
      	* config/rs6000/predicates.md (restore_world_operation): Adjust op
      	count, remove one USE.
      
      From-SVN: r257472
      Iain Sandoe committed
    • vsxcopy.c: Update scan-assembler stanzas. · 3f636462
      [testsuite]
      
      2018-02-07  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/vsxcopy.c: Update scan-assembler stanzas.
      
      From-SVN: r257471
      Will Schmidt committed
    • re PR target/84154 (PowerPC GCC 7 and 8 have regression in converting fp to… · 4253435e
      re PR target/84154 (PowerPC GCC 7 and 8 have regression in converting fp to short/char and returning it)
      
      [gcc]
      2018-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/84154
      	* config/rs6000/rs6000.md (fix_trunc<SFDF:mode><QHI:mode>2):
      	Convert from define_expand to be define_insn_and_split.  Rework
      	float/double/_Float128 conversions to QI/HI/SImode to work with
      	both ISA 2.07 (power8) or ISA 3.0 (power9).  Fix regression where
      	conversions to QI/HImode types did a store and then a load to
      	truncate the value.  For conversions to VSX registers, don't split
      	the insn, instead emit the code directly.  Use the code iterator
      	any_fix to combine signed and unsigned conversions.
      	(fix<uns>_trunc<SFDF:mode>si2_p8): Likewise.
      	(fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
      	(fix_trunc<IEEE128:mode><QHI:mode>2): Likewise.
      	(fix<uns>_trunc<SFDF:mode><QHI:mode>2): Likewise.
      	(fix_<mode>di2_hw): Likewise.
      	(fixuns_<mode>di2_hw): Likewise.
      	(fix_<mode>si2_hw): Likewise.
      	(fixuns_<mode>si2_hw): Likewise.
      	(fix<uns>_<IEEE128:mode><SDI:mode>2_hw): Likewise.
      	(fix<uns>_trunc<IEEE128:mode><QHI:mode>2): Likewise.
      	(fctiw<u>z_<mode>_smallint): Rename fctiw<u>z_<mode>_smallint to
      	fix<uns>_trunc<SFDF:mode>si2_p8.
      	(fix_trunc<SFDF:mode><QHI:mode>2_internal): Delete, no longer
      	used.
      	(fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
      	(fix<uns>_<mode>_mem): Likewise.
      	(fctiw<u>z_<mode>_mem): Likewise.
      	(fix<uns>_<mode>_mem): Likewise.
      	(fix<uns>_trunc<SFDF:mode><QHSI:mode>2_mem): On ISA 3.0, prevent
      	the register allocator from doing a direct move to the GPRs to do
      	a store, and instead use the ISA 3.0 store byte/half-word from
      	vector register instruction.  For IEEE 128-bit floating point,
      	also optimize stores of 32-bit ints.
      	(fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Likewise.
      
      [gcc/testsuite]
      2018-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/84154
      	* gcc.target/powerpc/pr84154-1.c: New tests.
      	* gcc.target/powerpc/pr84154-2.c: Likewise.
      	* gcc.target/powerpc/pr84154-3.c: Likewise.
      
      From-SVN: r257470
      Michael Meissner committed
    • builtins-mergew-mergeow.c: Update dg-requires. · 54af445d
      [testsuite]
      
      2018-02-07  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/builtins-mergew-mergeow.c:  Update dg-requires.
      
      From-SVN: r257469
      Will Schmidt committed
    • re PR c++/84082 (ICE with broken template function definition) · 8f1f526b
      	PR c++/84082
      	* parser.c (cp_parser_dot_deref_incomplete): New function.
      	(cp_parser_postfix_dot_deref_expression): Use it.
      
      	* g++.dg/template/incomplete11.C: New test.
      	* g++.dg/parse/crash67.C: Expect an incomplete type diagnostics too.
      
      From-SVN: r257466
      Jakub Jelinek committed
    • re PR fortran/82994 (ICE in gfc_match_deallocate, at fortran/match.c:4478) · b35a0ccd
      2018-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/82994
      	* match.c (gfc_match_deallocate): Check for NULL pointer.
      
      2018-02-07  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/82994
      	* gfortran.dg/deallocate_error_3.f90: New test.
      	* gfortran.dg/deallocate_error_4.f90: New test.
      
      From-SVN: r257465
      Steven G. Kargl committed
    • * es.po: Update. · 72267602
      From-SVN: r257464
      Joseph Myers committed
    • runtime: don't call funcPC from a function · f1a2d8b1
          
          The escape analysis support is not yet good enough to avoid escaping
          the argument to funcPC.  This causes unnecessary and often harmful
          memory allocation.  E.g., (*cpuProfile).addExtra can be called from a
          signal handler, and it must not allocate memory.
          
          Move the calls to funcPC to use variables instead.  This was done in
          the original migration to using funcPC, but was not done for newer code.
          
          In one case, in signal handling code, use getSigtramp.
          
          Reviewed-on: https://go-review.googlesource.com/92735
      
      From-SVN: r257463
      Ian Lance Taylor committed
    • re PR fortran/68560 (The test gfortran.dg/shape_8.f90 now fails when compiled with -flto) · 82e259b8
      2018-02-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/68560
      	* trans-intrinsic.c (gfc_conv_intrinsic_shape): New function.
      	(gfc_conv_intrinsic_function): Call it.
      
      2018-02-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/68560
      	* gfortran.dg/shape_9.f90: New test.
      
      From-SVN: r257462
      Thomas Koenig committed
    • re PR fortran/82049 (ICE with character(*),parameter array constructor) · 52b16cb3
      2018-02-06  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/82049
      	* match.c (gfc_match_type_spec): If the charlen is non-NULL, then
      	try to resolve it.  While here return early if possible.
      
      2018-02-06  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/82049
      	* gfortran.dg/assumed_charlen_parameter.f90: New test.
      
      From-SVN: r257459
      Steven G. Kargl committed
    • Fix libgomp.oacc-c-c++-common/pr84217.c for C++ · f320fdfd
      	* testsuite/libgomp.oacc-c-c++-common/pr84217.c (abort)
      	[__cplusplus]: Declare extern "C".
      
      From-SVN: r257457
      Rainer Orth committed
    • C++: avoid most reserved words as misspelling suggestions (PR c++/81610 and PR c++/80567) · 0d7d8e66
      lookup_name_fuzzy can offer some reserved words as suggestions for
      misspelled words, helping with "singed"/"signed" typos.
      
      PR c++/81610 and PR c++/80567 report problems where the C++ frontend
      suggested "if", "for" and "else" as corrections for misspelled variable
      names.
      
      The root cause is that in r247233
        ("Fix spelling suggestions for reserved words (PR c++/80177)")
      I loosened the conditions on these reserved words, adding this condition:
         if (kind == FUZZY_LOOKUP_TYPENAME)
      to the logic for rejecting words that don't start decl-specifiers, to
      allow for "static_assert" to be offered.
      
      This is too loose a condition: we don't want to suggest *any* reserved word
      when we're in a context where we don't know we expect a typename.
      
      For the kinds of error-recover situations where we're suggesting
      spelling corrections we don't have much contextual information, so it
      seems prudent to be stricter about which reserved words we offer
      as spelling suggestions; I don't think it makes sense for us to
      suggest e.g. "for".
      
      This patch implements that by effectively reinstating the old logic,
      but special-casing RID_STATIC_ASSERT, moving the logic to a new
      subroutine (in case we want to allow for other special-cases).
      
      I attempted to add suggestions for the various RID_*CAST, to cope
      with e.g. "reinterptet_cast" (I can never type that correctly on the
      first try), but the following '<' token confuses the error-recovery
      enough that the suggestion code isn't triggered.
      
      gcc/cp/ChangeLog:
      	PR c++/81610
      	PR c++/80567
      	* name-lookup.c (suggest_rid_p): New function.
      	(lookup_name_fuzzy): Replace enum-rid-filtering logic with call to
      	suggest_rid_p.
      
      gcc/testsuite/ChangeLog:
      	PR c++/81610
      	PR c++/80567
      	* g++.dg/spellcheck-reswords.C: New test case.
      	* g++.dg/spellcheck-stdlib.C: Remove xfail from dg-bogus
      	suggestion of "if".
      
      From-SVN: r257456
      David Malcolm committed
    • Support >26 operands in generation code. · 085e8246
      2018-02-07  Alan Hayward  <alan.hayward@arm.com>
      
              * genextract.c (push_pathstr_operand): New function to support [a-zA-Z].
              (walk_rtx): Call push_pathstr_operand.
              (print_path): Support [a-zA-Z].
      
      From-SVN: r257455
      Alan Hayward committed
    • PR c++/84182 - ICE with captured lambda · 828ca2ed
      	PR c++/84181
      	* pt.c (extract_locals_r, extract_local_specs): New.
      	(tsubst_pack_expansion): Use them.
      
      From-SVN: r257454
      Jason Merrill committed
    • re PR tree-optimization/84037 (Speed regression of polyhedron benchmark since r256644) · b210f45f
      2018-02-07  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/84037
      	* tree-vectorizer.h (struct _loop_vec_info): Add ivexpr_map member.
      	(cse_and_gimplify_to_preheader): Declare.
      	(vect_get_place_in_interleaving_chain): Likewise.
      	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
      	ivexpr_map.
      	(_loop_vec_info::~_loop_vec_info): Delete it.
      	(cse_and_gimplify_to_preheader): New function.
      	* tree-vect-slp.c (vect_get_place_in_interleaving_chain): Export.
      	* tree-vect-stmts.c (vectorizable_store): CSE base and steps.
      	(vectorizable_load): Likewise.  For grouped stores always base
      	the IV on the first element.
      	* tree-vect-loop-manip.c (vect_loop_versioning): Unshare versioning
      	condition before gimplifying.
      
      From-SVN: r257453
      Richard Biener committed
    • Revert behavior to r251316. · 43e4df5a
      2018-02-07  Martin Liska  <mliska@suse.cz>
      
      	PR c++/84059.
      	* class.c (add_method): Append argument value.
      	* cp-tree.h (maybe_version_functions): Add new argument.
      	* decl.c (decls_match): Call it if a declaration does not
      	have DECL_FUNCTION_VERSIONED.
      	(maybe_version_functions): record argument is added.
      2018-02-07  Martin Liska  <mliska@suse.cz>
      
      	PR c++/84059.
      	* g++.dg/ext/mv26.C: New test.
      
      From-SVN: r257451
      Martin Liska committed
    • tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for *DIV_EXPR and *MOD_EXPR. · 228868f5
      	* tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for
      	*DIV_EXPR and *MOD_EXPR.
      
      From-SVN: r257450
      Jakub Jelinek committed
    • [testsuite] Require alloca in gcc.dg/pr83844.c · a0486b65
      2018-02-07  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/pr83844.c: Require effective target alloca.
      
      From-SVN: r257447
      Tom de Vries committed
    • [testsuite] Require global_constructor in gcc.dg/torture/pr83055.c · 45224bd0
      2018-02-07  Tom de Vries  <tom@codesourcery.com>
      
      	* gcc.dg/torture/pr83055.c: Require effective target global_constructor.
      
      From-SVN: r257446
      Tom de Vries committed
    • Use -fcf-protection=return in cet-intrin-4.c · 81b58bfd
      Since -fcf-protection requires both -mshstk and -mibt, use
      -fcf-protection=return with -mshstk in cet-intrin-4.c.
      
      	PR target/84243
      	* gcc.target/i386/cet-intrin-4.c (dg-options): Use
      	-fcf-protection=return.
      
      From-SVN: r257445
      H.J. Lu committed
    • i386: Mask out the CF_SET bit for -fcf-protection check · 6ad05bcc
      Since ix86_option_override_internal sets the CF_SET bit in
      flag_cf_protection and it can be called more than once via pragma,
      we need to mask out the CF_SET bit when checking flag_cf_protection.
      
      	PR target/84248
      	* config/i386/i386.c (ix86_option_override_internal): Mask out
      	the CF_SET bit when checking -fcf-protection.
      
      From-SVN: r257444
      H.J. Lu committed
    • [openacc] Fix diff_type in expand_oacc_collapse_init · c31bc4ac
      2018-02-07  Tom de Vries  <tom@codesourcery.com>
      
      	PR libgomp/84217
      	* omp-expand.c (expand_oacc_collapse_init): Ensure diff_type is large
      	enough.
      
      	* c-c++-common/goacc/pr84217.c: New test.
      	* gfortran.dg/goacc/pr84217.f90: New test.
      
      	* testsuite/libgomp.oacc-c-c++-common/pr84217.c: New test.
      
      From-SVN: r257443
      Tom de Vries committed
    • * lto.c (register_resolution): Remove forgotten sanity check. · 26a823f0
      From-SVN: r257442
      Jan Hubicka committed
    • re PR tree-optimization/84204 ([graphite] ICE in set_codegen_error, at… · e4c73066
      re PR tree-optimization/84204 ([graphite] ICE in set_codegen_error, at graphite-isl-ast-to-gimple.c:206)
      
      2018-02-07  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/84204
      	* tree-chrec.c (chrec_fold_plus_1): Remove size limiting in
      	this place.
      
      	* gcc.dg/graphite/pr84204.c: New testcase.
      
      	PR tree-optimization/84205
      	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Also
      	special-case isl_ast_op_zdiv_r.
      
      	* gcc.dg/graphite/pr84205.c: New testcase.
      
      	PR tree-optimization/84223
      	* graphite-scop-detection.c (gather_bbs::before_dom_children):
      	Only add conditions from within the region.
      	(gather_bbs::after_dom_children): Adjust.
      
      	* gfortran.dg/graphite/pr84223.f90: New testcase.
      
      From-SVN: r257441
      Richard Biener committed
    • re PR target/84209 ([avr] Don't split SP in split2) · 3924c9be
      	PR target/84209
      	* config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros.
      	* config/avr/avr.md: Only post-reload split REG-REG moves if
      	either register is REGERAL_REG_P.
      
      From-SVN: r257440
      Georg-Johann Lay committed
    • re PR c++/71662 ([DR 1485] ICE on invalid C++11 code with unqualified name look… · 07a6816e
      re PR c++/71662 ([DR 1485] ICE on invalid C++11 code with unqualified name look up: in tsubst_copy, at cp/pt.c:14010)
      
      2018-02-07  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/71662
      	* g++.dg/cpp0x/scoped_enum7.C: New.
      
      From-SVN: r257439
      Paolo Carlini committed
    • [testsuite] Fix gcc.dg/cse_recip.c for AArch64 after r257181. · f8e54f64
      2018-02-07  Christophe Lyon <christophe.lyon@linaro.org>
      
      	PR tree-optimization/83008
      	* gcc.dg/cse_recip.c: Add -fno-tree-slp-vectorize.
      
      From-SVN: r257438
      Christophe Lyon committed
    • re PR tree-optimization/84235 (Miscompilation of floating point code by dom2) · 40ff1a2d
      	PR tree-optimization/84235
      	* tree-ssa-scopedtables.c
      	(avail_exprs_stack::simplify_binary_operation): Fir MINUS_EXPR, punt
      	if the subtraction is performed in floating point type where NaNs are
      	honored.  For *DIV_EXPR, punt for ALL_FRACT_MODE_Ps where we can't
      	build 1.  Formatting fix.
      
      	* gcc.c-torture/execute/ieee/pr84235.c: New test.
      
      From-SVN: r257437
      Jakub Jelinek committed
    • compiler: make single Btype for methods table of identical interface type · 84c71bb8
          
          Normally we ensure to build a single Btype for identical types.
          We did not do this for methods table of identical interface
          types, however. If there are two identical interface type I, I2,
          they have the same Btype BI, but different Btypes for their
          methods tables, BM and BM2. From the backend's point of view
          only one of them is linked to BI. This can cause inconsitency
          in the backend's type system, like unresolved placeholder. This
          CL ensures we create a single Btype for methods table of
          identical interface type.
          
          Reviewed-on: https://go-review.googlesource.com/92436
      
      From-SVN: r257436
      Ian Lance Taylor committed