1. 27 Apr, 2018 15 commits
  2. 26 Apr, 2018 22 commits
    • MIPS/GCC/testsuite: Fix data-sym-pool.c for n64 code · b4d62b40
      With the soft-float n64 ABI and the data-sym-pool.c test case code like 
      below is produced:
      
      	.file	1 "data-sym-pool.c"
      	.section .mdebug.abi64
      	.previous
      	.nan	legacy
      	.module	softfloat
      	.module	oddspreg
      	.abicalls
      	.option	pic0
      	.text
      	.align	2
      	.globl	frob
      	.set	mips16
      	.set	nomicromips
      	.ent	frob
      	.type	frob, @function
      frob:
      	.frame	$17,16,$31		# vars= 0, regs= 1/0, args= 0, gp= 0
      	.mask	0x00020000,-8
      	.fmask	0x00000000,0
      	daddiu	$sp,-16
      	sd	$17,8($sp)
      	move	$17,$sp
      	ld	$2,.L3
      	move	$sp,$17
      	ld	$17,8($sp)
      	daddiu	$sp,16
      	jr	$31
      	.type	__pool_frob_3, @object
      __pool_frob_3:
      	.align	3
      .L3:
      	.dword	305419896
      	.type	__pend_frob_3, @function
      __pend_frob_3:
      	.insn
      	.end	frob
      	.size	frob, .-frob
      	.ident	"GCC: (GNU) 8.0.1 20180410 (experimental)"
      
      (we have no support for hard-float n64 MIPS16 code generation), which 
      means that the test case will fail, as the regular expression pattern 
      expects `lw' and `.word' rather than `ld' and `.dword' respectively to 
      appear in assembly code generation.  Correct the pattern in an obvious 
      way then making it accept both intructions and pseudo-ops.
      
      	gcc/testsuite/
      	* gcc.target/mips/data-sym-pool.c (dg-options): Match `ld' and
      	`.dword' in addition to `lw' and `.word'.
      
      From-SVN: r259691
      Maciej W. Rozycki committed
    • MIPS/GCC/testsuite: Fix data-sym-pool.c for SVR4 model at -O0 · 7dc5410a
      With GCC configurations using the SVR4 rather than the PLT dynamic 
      executable model and the o32 ABI with the data-sym-pool.c test case code 
      like below is produced:
      
      	.file	1 "data-sym-pool.c"
      	.section .mdebug.abi32
      	.previous
      	.nan	legacy
      	.module	fp=xx
      	.module	nooddspreg
      	.abicalls
      	.text
      	.align	2
      	.globl	frob
      	.set	mips16
      	.set	nomicromips
      	.ent	frob
      	.type	frob, @function
      frob:
      	.frame	$17,8,$31		# vars= 0, regs= 1/0, args= 0, gp= 0
      	.mask	0x00020000,-4
      	.fmask	0x00000000,0
      	save	8,$17
      	move	$17,$sp
      	lw	$2,$L4
      	move	$sp,$17
      	restore	8,$17
      	jr	$31
      	.type	__pool_frob_3, @object
      __pool_frob_3:
      	.align	2
      $L3:
      	.word	__gnu_local_gp
      $L4:
      	.word	305419896
      	.type	__pend_frob_3, @function
      __pend_frob_3:
      	.insn
      	.end	frob
      	.size	frob, .-frob
      	.ident	"GCC: (GNU) 8.0.1 20180410 (experimental)"
      
      causing a failure due to the unexpected `__gnu_local_gp' entry in the 
      constant pool, even though there is nothing wrong with it as far as the 
      annotation being examined is concerned.
      
      Given that the SVR4 vs PLT code model consideration is irrelevant for 
      this test case rather than rewriting the regular expression to match 
      this variant of code just enforce the PLT model by using the `-mplt' 
      option.  It is safe to use this option unconditionally as it is silently 
      ignored with configurations that do not support this model, e.g. bare 
      metal ELF.
      
      	gcc/testsuite/
      	* gcc.target/mips/data-sym-pool.c (dg-options): Add `-mplt'.
      
      From-SVN: r259690
      Maciej W. Rozycki committed
    • PR c++/85545 - ICE with noexcept PMF conversion. · 128d29a5
      	* cvt.c (cp_fold_convert): Handle PMF CONSTRUCTORs directly.
      
      From-SVN: r259689
      Jason Merrill committed
    • cgraph.h (symbol_table): Just declare debug method here. · e94497fb
      	* cgraph.h (symbol_table): Just declare debug method here.
      	* symtab.c (symbol_table::debug): Define.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r259685
      Richard Biener committed
    • i386.md ("isa" attribute): Add x64_sse2. · b1ea8387
      	* config/i386/i386.md ("isa" attribute): Add x64_sse2.
      	("enabled" attribute): Handle "isa" attribute.
      	(*movdi_internal): Substitute Yi and Yj constraint with x
      	and Ym and Yn constraint with y constraint.  Update "isa"
      	attribute and set "preferred_for_speed" attribute from
      	TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for updated alternatives.
      	(*movsi_internal): Ditto.
      	(*movdf_internal): Ditto.
      	(*movsf_internal): Ditto.
      	(*zero_extendsidi2): Ditto.
      	* config/i386/sse.md (vec_set<mode>_0): Ditto.
      	(sse2_loadld): Ditto.
      	(*vec_extract<ssevecmodelower>_0): Ditto.
      	(*vec_extractv4si_0_zext_sse4): Ditto.
      	(vec_concatv2di): Ditto.
      	(*vec_dup<mode>): Ditto.
      	* config/i386/mmx.md (*mov<mode>_internal): Ditto.
      	* config/i386/constraints.md (Yi): Remove.
      	(Yj): Remove.
      	(Ym): Remove.
      	(Yn): Remove.
      
      From-SVN: r259682
      Uros Bizjak committed
    • dumpfile cleanup · 5d8b352a
      https://gcc.gnu.org/ml/gcc-patches/2018-04/msg01173.html
      	* dumpfile.c (dump_open): New.
      	(dump_open_alternate_stream, dump_start, dump_begin): Call it.
      	(dump_finish): Detect stdio/stderr by value not name.
      
      From-SVN: r259681
      Nathan Sidwell committed
    • Document that -Wreturn-type is enabled by default for C++ · 030b3bdd
      	* doc/invoke.texi (-Wreturn-type): Document default status for C++.
      
      From-SVN: r259679
      Jonathan Wakely committed
    • [nvptx, libgomp] Add GOMP_NVPTX_JIT=-O[0-4] in nvptx libgomp plugin · df36a3d3
      2018-04-26  Tom de Vries  <tom@codesourcery.com>
      
      	PR libgomp/84020
      	* plugin/cuda/cuda.h (CUjit_option): Add CU_JIT_OPTIMIZATION_LEVEL.
      	* plugin/plugin-nvptx.c (_GNU_SOURCE): Define.
      	(process_GOMP_NVPTX_JIT): New function.
      	(link_ptx): Use process_GOMP_NVPTX_JIT.
      
      From-SVN: r259678
      Tom de Vries committed
    • [nvptx] Verify bar.sync position · a874808c
      2018-04-26  Tom de Vries  <tom@codesourcery.com>
      
      	PR target/84952
      	* config/nvptx/nvptx.c (verify_neutering_jumps)
      	(verify_neutering_labels): New function
      	(nvptx_single): Use verify_neutering_jumps and verify_neutering_labels.
      
      From-SVN: r259677
      Tom de Vries committed
    • [nvptx] Fix branch-around-nothing · 6beefdbd
      2018-04-26  Tom de Vries  <tom@codesourcery.com>
      
      	PR target/84025
      	* config/nvptx/nvptx.c (needs_neutering_p): New function.
      	(nvptx_single): Use needs_neutering_p to skip over insns that do not
      	need neutering.
      
      From-SVN: r259676
      Tom de Vries committed
    • [lto] Fixup loops before lto write-out · d160ae78
      2018-04-26  Richard Biener <rguenther@suse.de>
      	    Tom de Vries  <tom@codesourcery.com>
      
      	PR lto/85422
      	* lto-streamer-out.c (output_function): Fixup loops if required to match
      	discovery done in the reader.
      
      	* testsuite/libgomp.oacc-c-c++-common/pr85422.c: New test.
      
      Co-Authored-By: Tom de Vries <tom@codesourcery.com>
      
      From-SVN: r259675
      Richard Biener committed
    • [nvptx, libgomp, testsuite] Reduce recursion depth in declare_target-{1,2}.f90 · ca9dc642
      2018-04-26  Tom de Vries  <tom@codesourcery.com>
      
      	PR target/85519
      	* testsuite/libgomp.fortran/examples-4/declare_target-1.f90: Reduce
      	recursion depth from 25 to 23.
      	* testsuite/libgomp.fortran/examples-4/declare_target-2.f90: Same.
      
      From-SVN: r259674
      Tom de Vries committed
    • re PR libstdc++/85116 (std::min_element does not optimize well with inlined predicate) · 1c53fa8c
      2018-04-26  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/85116
      	* tree-ssa-loop-ch.c (do_while_loop_p): A do-while loop should
      	have a loop exit from the single latch predecessor.  Remove
      	case of header with just condition.
      	(ch_base::copy_headers): Exclude infinite loops from any
      	processing.
      	(pass_ch::execute): Record exits.
      
      	* gcc.dg/tree-ssa/copy-headers-2.c: New testcase.
      	* gcc.dg/tree-ssa/copy-headers-3.c: Likewise.
      	* gcc.dg/tree-ssa/copy-headers-4.c: Likewise.
      	* gcc.dg/tree-ssa/loadpre6.c: Adjust.
      
      From-SVN: r259672
      Richard Biener committed
    • Makefile.tpl (STAGE1_TFLAGS): Add -fno-checking. · ae05281f
      2018-04-26  Richard Biener  <rguenther@suse.de>
      
      	* Makefile.tpl (STAGE1_TFLAGS): Add -fno-checking.
      	(STAGE2_CFLAGS): Likewise.
      	(STAGE2_TFLAGS): Likewise.
      	(STAGE3_CFLAGS): Add -fchecking.
      	(STAGE3_TFLAGS): Likewise.
      	(STAGEtrain_CFLAGS): Filter out -fchecking.
      	(STAGEtrain_TFLAGS): Likewise.
      	* Makefile.in: Re-generate.
      
      From-SVN: r259669
      Richard Biener committed
    • tree-vect-data-refs.c (vect_get_data_access_cost): Get prologue cost vector and… · c76d9edb
      tree-vect-data-refs.c (vect_get_data_access_cost): Get prologue cost vector and pass it to vect_get_load_cost.
      
      2018-04-26  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-data-refs.c (vect_get_data_access_cost): Get
      	prologue cost vector and pass it to vect_get_load_cost.
      	(vect_get_peeling_costs_all_drs): Likewise.
      	(vect_peeling_hash_get_lowest_cost): Likewise.
      	(vect_enhance_data_refs_alignment): Likewise.
      
      From-SVN: r259668
      Richard Biener committed
    • re PR middle-end/85450 (ICE: invalid types in nop conversion during GIMPLE pass: ompexp) · bde84d51
      2018-04-26  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/85450
      	* tree-cfg.c (verify_gimple_assign_unary): Restore proper
      	checking of integer<->pointer conversions.
      	* omp-expand.c (expand_omp_for_static_nochunk): Avoid
      	sign-/zero-extending pointer types.
      	(expand_omp_for_static_chunk): Likewise.
      
      From-SVN: r259667
      Richard Biener committed
    • mips.c (mips_asan_shadow_offset): New function. · e9230659
      	* config/mips/mips.c (mips_asan_shadow_offset): New function.
      	(TARGET_ASAN_SHADOW_OFFSET): Define.
      	* config/mips/mips.h (FRAME_GROWS_DOWNWARD): Augment to also be
      	true for -fsanitize=address.
      
      Co-Authored-By: Jean Lee <xiaoyur347@gmail.com>
      
      From-SVN: r259666
      Hans-Peter Nilsson committed
    • If someone has access to a 64-bit mips-linux system to test this (with the… · 752361c9
      If someone has access to a 64-bit mips-linux system to test this (with the obvious edit), that'd be really nice.
      
      If someone has access to a 64-bit mips-linux system to test
      this (with the obvious edit), that'd be really nice.  Until
      then, best to not introduce possible build failures.
      
      	* configure.tgt <mips*-*-linux*>: Enable build, excluding
      	mips*64*-*-linux*.
      
      From-SVN: r259665
      Hans-Peter Nilsson committed
    • As mentioned in <http://gcc.gnu.org/ml/gcc/2018-03/msg00133.html> the bogus… · 9f943b24
      As mentioned in <http://gcc.gnu.org/ml/gcc/2018-03/msg00133.html> the bogus adjustment to 160 from 144 (which is reverted here)...
      
      As mentioned in <http://gcc.gnu.org/ml/gcc/2018-03/msg00133.html>
      the bogus adjustment to 160 from 144 (which is reverted here),
      is a single-token commit in upstream r301307, an attempt to
      correct a failed build due to an upstream change to compile the
      runtime with D_FILE_OFFSET_BITS=64.  The correct fix is here:
      just use the right include.  Yes, user-struct-stat64-as-stat is
      actually 160 for MIPS o32 and I hear user-struct-stat is also
      160 for n32.  There are additional fields appended for
      user-struct-stat!  I guess for MIPS it's as bad as it gets for
      mixing up kernel and user struct stat.  The context of the patch
      doesn't show that in the #else there's the correct include, the
      one for <asm/stat.h> to get the kernel-struct-stat.  If you
      can't compile it, IMHO the kernel headers are just too old; 3.2
      is fine for example.
      
      	* sanitizer_common/sanitizer_platform_limits_linux.cc: Do not
      	take the shortcut to #include <sys/stat.h> for MIPS instead of
      	the kernel <asm/stat.h>.  Explain why sys/stat.h is misleading
      	or wrong to get the kernel struct stat.
      	* sanitizer_common/sanitizer_platform_limits_posix.h [__mips__]:
      	Correct the value for 32-bit non-android struct_kernel_stat_sz.
      
      From-SVN: r259664
      Hans-Peter Nilsson committed
    • This appears to be present in compiler-rt upstream, but as part of more intrusive changes. · bc40f166
      This appears to be present in compiler-rt upstream, but as part
      of more intrusive changes.  For gcc, the lack of this results in
      a fatal warning (-Werror) at build-time.
      
      	* sanitizer_common/sanitizer_atomic_clang_other.h [_MIPS_SIM
      	&& _MIPS_SIM == _ABIO32] (lock): Add initializer for .pad member.
      
      From-SVN: r259663
      Hans-Peter Nilsson committed
    • Daily bump. · 3ce4730b
      From-SVN: r259662
      GCC Administrator committed
  3. 25 Apr, 2018 3 commits
    • MAINTAINERS (mips): Remove myself as MIPS maintainer. · c6e34a9b
      2018-04-25  Catherine Moore <clm@codesourcery.com>
      
              * MAINTAINERS (mips): Remove myself as MIPS maintainer.
      
      From-SVN: r259658
      Catherine Moore committed
    • DWARF sort longer dirs before shorter ones in directory table. · 1b08ada6
      When gcc dwarf2out generates the .debug_line table itself (for example
      when generating one for a split DWARF .dwo) it uses natural sorting for
      the directory table. Shorter directory paths come before longer directory
      paths with the same prefix. This causes the files in the line table to
      pick the shorter dir. Creating slightly ineffecient line tables because
      the longer directory paths will never be used.
      
      Fix this by changing file_info_cmp () to pick longer directory prefixes
      before shorter ones. We still sort files (the compilation unit) without
      any directory path before all entries with a directory path, so they
      will still use dir entry 0 (the working directory).
      
      A hello.c program would get the following dir and line table before:
      
      Directory table:
       /opt/local/install/gcc/lib/gcc/x86_64-pc-linux-gnu/8.0.1/include
       /usr/include
       /usr/include/bits
      
      File name table:
       Entry Dir   Time      Size      Name
       1     0     0         0         hello.c
       2     1     0         0         stddef.h
       3     2     0         0         bits/types.h
       4     2     0         0         libio.h
       5     2     0         0         stdio.h
       6     2     0         0         bits/sys_errlist.h
      
      Note that the last directory table entry is never used.
      After this patch it looks as follows:
      
      Directory table:
       /opt/local/install/gcc/lib/gcc/x86_64-pc-linux-gnu/8.0.1/include
       /usr/include/bits
       /usr/include
      
      File name table:
       Entry Dir   Time      Size      Name
       1     0     0         0         hello.c
       2     1     0         0         stddef.h
       3     2     0         0         types.h
       4     3     0         0         libio.h
       5     3     0         0         stdio.h
       6     2     0         0         sys_errlist.h
      
      Which is similar to what gas would output.
      
      gcc/ChangeLog:
      
      	* dwarf2out.c (file_info_cmp): Sort longer dir prefixes before
      	shorter ones.
      
      From-SVN: r259655
      Mark Wielaard committed
    • i386.md (*x86_mov<mode>cc_0_m1): Use type "alu1" rather than "alu"... · 971424e4
      	* config/i386/i386.md (*x86_mov<mode>cc_0_m1): Use type "alu1" rather
      	than "alu", remove explicit "memory" and "imm_disp" attributes.
      	(*x86_mov<mode>cc_0_m1_se, *x86_mov<mode>cc_0_m1_neg): Likewise.
      
      From-SVN: r259650
      Jakub Jelinek committed