1. 22 Jan, 2019 31 commits
    • Fix -fsplit-paths documentation · 37e87712
      It is enabled at -O3, but the doc currently says -O2.  This fixes it.
      
      
      	* doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
      
      From-SVN: r268170
      Segher Boessenkool committed
    • c-c++-common/gomp/pr60823-1.c: Change aarch64-*-* target to aarch64*-*-* target. · 1b20e079
      2018-01-22  Steve Ellcey  <sellcey@marvell.com>
      
      	c-c++-common/gomp/pr60823-1.c: Change aarch64-*-* target
      	to aarch64*-*-* target.
      	c-c++-common/gomp/pr60823-3.c: Ditto.
      	g++.dg/gomp/declare-simd-1.C: Ditto.
      	g++.dg/gomp/declare-simd-3.C: Ditto.
      	g++.dg/gomp/declare-simd-4.C: Ditto.
      	g++.dg/gomp/declare-simd-7.C: Ditto.
      	g++.dg/gomp/pr88182.C: Ditto.
      	gcc.dg/gomp/declare-simd-1.c: Ditto.
      	gcc.dg/gomp/declare-simd-3.c: Ditto.
      	gcc.dg/gomp/pr59669-2.c: Ditto.
      	gcc.dg/gomp/pr87895-1.c: Ditto.
      	gcc.dg/gomp/simd-clones-2.c: Ditto.
      	gfortran.dg/gomp/declare-simd-2.f90: Ditto.
      	gfortran.dg/gomp/pr79154-1.f90: Ditto.
      	gfortran.dg/gomp/pr83977.f90: Ditto.
      
      From-SVN: r268168
      Steve Ellcey committed
    • d/dmd: Merge dmd upstream e21c07e84 · c21af61d
      Fixes bootstrap regression introduced by the previous merge.
      
      Reviewed-on: https://github.com/dlang/dmd/pull/9283
      
      From-SVN: r268167
      Iain Buclaw committed
    • re PR target/88965 (powerpc64le vector builtin hits ICE in verify_gimple) · 8b5d2c55
      	PR target/88965
      	* config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
      	(rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
      	is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
      
      	* gcc.target/powerpc/pr88965.c: New test.
      
      From-SVN: r268166
      Jakub Jelinek committed
    • re PR middle-end/88968 (Stack overflow in gimplify_expr) · 18a23298
      	PR middle-end/88968
      	* gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
      	non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
      
      	* c-omp.c (c_finish_omp_atomic): For bitfield atomics, update type
      	variable after using BIT_FIELD_REF.
      
      	* c-c++-common/gomp/atomic-23.c: New test.
      
      From-SVN: r268165
      Jakub Jelinek committed
    • re PR target/87064 (libgomp.oacc-fortran/reduction-3.f90 fails starting with r263751) · fbf3df55
      	PR target/87064
      	* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
      	Disable for little endian.
      
      From-SVN: r268164
      Jakub Jelinek committed
    • re PR fortran/88579 (Calculating power of powers of two) · 358ebd8f
      2019-01-22  Harald Anlauf  <anlauf@gmx.de>
      
      	PR fortran/88579
      	* trans-expr.c (gfc_conv_power_op): Handle cases of (2**e) ** integer
      	and (- 2**e) ** integer.
      
      2019-01-22  Harald Anlauf  <anlauf@gmx.de>
      
      	PR fortran/88579
      	* gfortran.dg/power_8.f90: New test.
      
      From-SVN: r268163
      Harald Anlauf committed
    • pr87906_0.C: Add dg-require-effective-target fpic. · 7a8c906c
      2019-01-22  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/testsuite/
      	* g++.dg/lto/pr87906_0.C: Add dg-require-effective-target fpic.
      	* g++.dg/vec-init-1.C: Likewise.
      	* gcc.dg/pr87793.c: Likewise.
      
      From-SVN: r268162
      Sandra Loosemore committed
    • pr86397-1.C: Add -fdelete-null-pointer-checks. · 7c426d1f
      2019-01-22  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/testsuite/
      	* g++.dg/cpp0x/pr86397-1.C: Add -fdelete-null-pointer-checks.
      	* g++.dg/cpp0x/pr86397-2.C: Likewise.
      
      From-SVN: r268161
      Sandra Loosemore committed
    • [arm] Further fixes for PR88469 · 43646ce3
      A bitfield that is exactly the same size as an integral type and
      naturally aligned will have DECL_BIT_FIELD cleared.  So we need to
      check DECL_BIT_FIELD_TYPE to be sure whether or not the underlying
      type was declared with a bitfield declaration.
      
      I've also added a test for bitfields that are based on overaligned types.
      
      	PR target/88469
      gcc:
      	* config/arm/arm.c (arm_needs_double_word_align): Check
      	DECL_BIT_FIELD_TYPE.
      
      gcc/testsuite:
      	* gcc.target/arm/aapcs/bitfield2.c: New test.
      	* gcc.target/arm/aapcs/bitfield3.c: New test.
      
      From-SVN: r268160
      Richard Earnshaw committed
    • Fix vect-nop-move.c test · df69e824
      Fix a failing test - changes in Combine mean the test now fails
      eventhough the generated code is the same.  Given there are several
      AArch64-specific tests for vec-select, remove the scanning of Combine
      output.  Committed as trivial fix.
      
          testsuite/
      	PR rtl-optimization/87763
      	* gcc.dg/vect/vect-nop-move.c: Fix testcase on AArch64.
      
      From-SVN: r268159
      Wilco Dijkstra committed
    • i386: Add mask2 to builtin_description · 83f6f4e5
      There are
      
      struct builtin_description
      {
        const HOST_WIDE_INT mask;
        const enum insn_code icode;
        const char *const name;
        const enum ix86_builtins code;
        const enum rtx_code comparison;
        const int flag;
      };
      
      Since "mask" is used for both ix86_isa_flags and ix86_isa_flags2, buitins
      with both flags can't be handled easily.  This patch adds mask2 to
      builtin_description to handle it properly.
      
      2019-01-22  Hongtao Liu  <hongtao.liu@intel.com>
      	    H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR target/88909
      	* config/i386/i386-builtin.def: Add mask2 to all builtin
      	initializations.  Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
      	SPECIAL_ARGS.
      	* config/i386/i386.c (BDESC): Add mask2 to the definition.
      	(BDESC_FIRST): Likewise.
      	(define_builtin): Add an argument for mask2.  Updated to handle
      	both ix86_isa_flags and ix86_isa_flags2.
      	(define_builtin_const): Likewise.
      	(define_builtin_pure): Likewise.
      	(define_builtin2): Deleted.
      	(define_builtin_const2): Likewise.
      	(builtin_description): Add a member, mask2.
      	(bdesc_*): Add mask2 to builtin initializations.
      	(ix86_init_mmx_sse_builtins): Update calls to def_builtin,
      	def_builtin_const and def_builtin_pure.  Remove SPECIAL_ARGS2
      	support.
      	(ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
      
      Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
      
      From-SVN: r268155
      Hongtao Liu committed
    • PR libstdc++/88740 Print assertion messages to stderr · 4c6b0981
      	PR libstdc++/88740
      	* testsuite/util/testsuite_hooks.h [stderr] (VERIFY): Use fprintf to
      	write to stderr instead of using printf.
      
      From-SVN: r268154
      Jonathan Wakely committed
    • golang.org/x/tools/go/analysis: pass "gccgo" to types.SizesFor · 494df875
          
          For the gofrontend copy, change calls to types.SizesFor to pass
          "gccgo" rather than "gc".  Leave the asmdecl pass unchanged since that
          pass is gc-specific anyhow.
          
          This has been fixed in a better way in the external repo by
          https://golang.org/cl/158317 and friends, but that is not in 1.12, so
          use this approach for now.
          
          Reviewed-on: https://go-review.googlesource.com/c/158842
      
      From-SVN: r268153
      Ian Lance Taylor committed
    • i386: Load external function address via GOT slot · 12f15468
      With noplt attribute, we load the external function address via the GOT
      slot so that linker won't create an PLT entry for extern function address.
      
      gcc/
      
      	PR target/88954
      	* config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
      	noplt attribute.
      
      gcc/testsuite/
      
      	PR target/88954
      	* gcc.target/i386/pr88954-1.c: New test.
      	* gcc.target/i386/pr88954-2.c: Likewise.
      
      From-SVN: r268152
      H.J. Lu committed
    • [arm] PR target/88469 fix incorrect argument passing with 64-bit bitfields · 44a7251e
      Unfortunately another PCS bug has come to light with the layout of
      structs whose alignment is dominated by a 64-bit bitfield element.
      Such fields in the type list appear to have alignment 1, but in
      reality, for the purposes of alignment of the underlying structure,
      the alignment is derived from the underlying bitfield's type.  We've
      been getting this wrong since support for over-aligned record types
      was added several releases back.  Worse still, the existing code may
      generate unaligned memory accesses that may fault on some versions of
      the architecture.
      
      I've taken the opportunity to add a few more tests that check the
      passing arguments with overalignment in the PCS.  Looking through the
      existing tests it looked like they were really only checking
      self-consistency and not the precise location of the arguments.
      
      PR target/88469
      
      gcc:
      	* config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
      	alignment is dominated by a bitfield with 64-bit aligned base type.
      	(arm_function_arg): Emit a warning if the alignment has changed since
      	earlier GCC releases.
      	(arm_function_arg_boundary): Likewise.
      	(arm_setup_incoming_varargs): Likewise.
      
      gcc/testsuite:
      	* gcc.target/arm/aapcs/bitfield1.c: New test.
      	* gcc.target/arm/aapcs/overalign_rec1.c: New test.
      	* gcc.target/arm/aapcs/overalign_rec2.c: New test.
      	* gcc.target/arm/aapcs/overalign_rec3.c: New test.
      
      From-SVN: r268151
      Richard Earnshaw committed
    • array_function_5.f90: Fix a dg directive. · 50d6ec8c
      2019-01-22  Manfred Schwarb  <manfred99@gmx.ch>
      
      	* gfortran.dg/array_function_5.f90: Fix a dg directive.
      	* gfortran.dg/block_16.f08: Likewise.
      	* gfortran.dg/dec_structure_14.f90: Likewise.
      	* gfortran.dg/namelist_96.f90: Likewise.
      	* gfortran.dg/newunit_5.f90.f90: Moved to
      	* gfortran.dg/newunit_5.f90: here.
      	* gfortran.dg/pdt_28.f03: Likewise.
      	* gfortran.dg/spread_simplify_1.f90: Likewise.
      
      From-SVN: r268148
      Manfred Schwarb committed
    • re PR tree-optimization/88862 (ICE in extract_affine, at graphite-sese-to-poly.c:313) · 4c82aa3b
      2019-01-22  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/88862
      	* graphite-scop-detection.c
      	(scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
      
      From-SVN: r268147
      Richard Biener committed
    • Document AMD GCN. · 1b7ee8b4
      2019-01-22  Andrew Stubbs  <ams@codesourcery.com>
      
      	* doc/extend.tex (AMD GCN Function Attributes): New section.
      	* doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
      	* doc/invoke.texi (AMD GCN Options): New section.
      	* doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
      
      From-SVN: r268146
      Andrew Stubbs committed
    • sparc.c (parc_delegitimize_address): Recognize the GOT register and decoded… · d0b042c6
      sparc.c (parc_delegitimize_address): Recognize the GOT register and decoded HIGH/LO_SUM combinations for labels in...
      
      	* config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
      	register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
      
      From-SVN: r268145
      Eric Botcazou committed
    • Fix overwide shifts in PR/88903 testcase · a14e3083
      
      gcc/testsuite/ChangeLog:
      
      	PR/tree-optimization 88903
      	* gcc.dg/vect/pr88903-1.c: Add explicit &.
      
      From-SVN: r268144
      Tamar Christina committed
    • re PR tree-optimization/88044 (gfortran.dg/transfer_intrinsic_3.f90 hangs after r266171) · 9a658585
      	PR tree-optimization/88044
      	* tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
      	is false in the first iteration, but !every_iteration, return false
      	instead of true with niter->niter zero.
      
      From-SVN: r268143
      Jakub Jelinek committed
    • re PR lto/88422 (collect2.exe: fatal error: lto-wrapper returned 1 exit status:… · 4293cd6e
      re PR lto/88422 (collect2.exe: fatal error: lto-wrapper returned 1 exit status: file not recognized: file truncated)
      
      2019-01-22  Nidal Faour  <nidal.faour@wdc.com>
      
      	PR lto/88422
      	* simple-object.c (O_BINARY): Define if not already defined.
      	(simple_object_copy_lto_debug_sections): Create file in binary
      	mode.
      
      From-SVN: r268141
      Nidal Faour committed
    • re PR rtl-optimization/88904 (Basic block incorrectly skipped in jump threading.) · becba8a7
      	PR rtl-optimization/88904
      	* cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
      	any nonequal registers before processing BB_END (b).
      
      	* gcc.c-torture/execute/pr88904.c: New test.
      
      From-SVN: r268140
      Jakub Jelinek committed
    • re PR target/88905 (ICE: in decompose, at rtl.h:2253 with -mabm and __builtin_popcountll) · c875d46f
      	PR target/88905
      	* optabs.c (add_equal_note): Add op0_mode argument, use it instead of
      	GET_MODE (op0).
      	(expand_binop_directly, expand_doubleword_clz,
      	expand_doubleword_popcount, expand_ctz, expand_ffs,
      	expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
      
      	* gcc.dg/pr88905.c: New test.
      
      From-SVN: r268139
      Jakub Jelinek committed
    • re PR rtl-optimization/49429 (dse.c change (r175063) causes execution failures) · c4814f99
      	PR rtl-optimization/49429
      	PR target/49454
      	PR rtl-optimization/86334
      	PR target/88906
      	* expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
      	addressable from here...
      	(emit_block_op_via_libcall): ... to here.
      
      	* gcc.target/i386/pr86334.c: New test.
      	* gcc.target/i386/pr88906.c: New test.
      
      From-SVN: r268138
      Jakub Jelinek committed
    • tree-vect-loop.c (vect_analyze_loop_operations): Use auto_vec for cost vector to fix memleak. · c4d825b5
      2019-01-22  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-loop.c (vect_analyze_loop_operations): Use
      	auto_vec for cost vector to fix memleak.
      	(vectorize_fold_left_reduction): Properly gather SLP defs.
      	(vectorizable_comparison): Do not swap operands to properly
      	gather SLP defs.
      
      From-SVN: r268137
      Richard Biener committed
    • MAINTAINERS: add myself. · 8fcc3599
      ChangLog:
      
      2019-01-21  Jiufu Guo  <guojiufu@linux.ibm.com>
      
              * MAINTAINERS (Write After Approval): Add myself.
      
      From-SVN: r268136
      Jiufu Guo committed
    • [RS6000] PR88614, output_operand: invalid %z value · 61ee0966
      The direct cause of this PR is the fact that tls_gdld_nomark didn't
      handle indirect calls.  Also, most indirect calls were being optimised
      back to direct calls anyway, due to tls_gdld_nomark not checking any
      of the parallel elements except the first (plus the extra element that
      distinguishes this call from normal calls).  There were other unwanted
      substitutions too.
      
      So this patch attacks the problem of handling special calls in a
      different way.  Rather than adding another element to the call insn
      parallel to distinguish -mno-tls-markers __tls_get_addr calls from any
      other calls, we now inspect the second CALL arg.  Each
      call_value_nonlocal and call_value_indirect insn now checks for the
      tlsgd/ld unspecs when !TARGET_TLS_MARKERS and emits the arg setup
      insns.  I disallow the local call patterns since we'll only see local
      calls to __tls_get_addr in testcases, and it doesn't seem a good idea
      to complicate the patterns just for a minor optimisation.  Sibling
      call insns aren't used for libcalls, so none of these insns need to
      change.
      
      The patch also fixes a minor problem with -mno-tls-markers
      __tls_get_addr calls causing a "li 3,0" instruction to be emitted
      prior to the arg setup instructions, due to using a libcall with one
      arg.  That isn't correct when the call insn itself sets up its arg.
      Also, I've tidied the V4 secure-plt calls, generating them in
      rs6000_call_sysv rather than by splitting in rs6000.md.  The
      CALL_INSN_FUNCTION_USAGE added in edit_tls_call_insn is no longer
      needed (since git commit 0a4b5c66df9).
      
      On the subject of unwanted substitutions, I also saw a
      _GLOBAL_OFFSET_TABLE_ symbol_ref being substituted for the GOT reg,
      resulting in code like "addi 3,_GLOBAL_OFFSET_TABLE_,tls_ld@got@tlsld".
      Fixed by the unspec_tls change.
      
      	PR target/88614
      	* config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
      	stays a reg.  Allow a const_int.
      	* config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
      	* config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
      	(IS_NOMARK_TLSGETADDR): Define.
      	* config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
      	(rs6000_output_tlsargs): New function.
      	(rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
      	__tls_get_addr call takes an arg.
      	(rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
      	* config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
      	delete split..
      	(call_value_nonlocal_sysv): ..or here, delete split.
      	(tls_gdld_nomark): Delete.
      	(call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
      	predicate.  Call rs6000_output_tlsargs.  Adjust length to suit.
      	(call_value_nonlocal_sysv): Likewise.
      	(call_value_nonlocal_sysv_secure): Likewise.
      	(call_value_nonlocal_aix): Likewise.
      	(call_value_indirect_aix): Likewise.
      	(call_value_indirect_elfv2): Likewise.
      	(call_value_local32, call_value_local64): Disable for no-mark tls.
      	(call_value_local_aix): Likewise.
      
      From-SVN: r268135
      Alan Modra committed
    • Daily bump. · 106fc1fc
      From-SVN: r268134
      GCC Administrator committed
    • re PR go/88927 (Bootstrap failure on arm in libgo starting with r268084) · 3d338229
      	PR go/88927
          runtime, internal/cpu: fix build for ARM GNU/Linux
          
          Was failing with
          
          ../../../libgo/go/internal/cpu/cpu.go:138:2: error: reference to undefined name 'doinit'
            138 |  doinit()
                |  ^
          
          Fix it by adding in Go 1.12 internal/cpu/cpu_arm.go, and the code in
          runtime that initializes the values.
          
          Fixes https://gcc.gnu.org/PR88927.
          
          Reviewed-on: https://go-review.googlesource.com/c/158717
      
      From-SVN: r268131
      Ian Lance Taylor committed
  2. 21 Jan, 2019 9 commits