Jason Merrill [Fri, 27 Apr 2018 17:09:17 +0000 (13:09 -0400)]
cvt.c (cp_fold_convert): Use convert_ptrmem.
* cvt.c (cp_fold_convert): Use convert_ptrmem.
* typeck.c (convert_ptrmem): Add a NOP even if no adjustment.
From-SVN: r259717
Paolo Carlini [Fri, 27 Apr 2018 16:56:55 +0000 (16:56 +0000)]
re PR c++/84691 (internal compiler error: in poplevel_class, at cp/name-lookup.c:4430)
/cp
2018-04-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84691
* decl.c (grokdeclarator): Clear friendp upon definition in local
class definition error.
/testsuite
2018-04-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84691
* g++.dg/cpp0x/friend3.C: New.
From-SVN: r259716
Jason Merrill [Fri, 27 Apr 2018 15:00:53 +0000 (11:00 -0400)]
PR c++/85545 - ICE with noexcept PMF conversion.
* cvt.c (cp_fold_convert): Pass PMF CONSTRUCTORs to
build_ptrmemfunc.
* typeck.c (build_ptrmemfunc): Don't build a NOP_EXPR for zero
adjustment.
(build_ptrmemfunc_access_expr): Special-case CONSTRUCTORs.
From-SVN: r259712
Richard Biener [Fri, 27 Apr 2018 14:32:09 +0000 (14:32 +0000)]
Fix aarch64 ILP32 ICE with vaarg gimplified code
2018-04-27 Richard Biener <rguenther@suse.de>
* config/aarch64/aarch64.c: Simplify ap.__stack advance and
fix for ILP32.
From-SVN: r259711
Nathan Sidwell [Fri, 27 Apr 2018 14:01:09 +0000 (14:01 +0000)]
[C++ PATCH] cleanup 2
https://gcc.gnu.org/ml/gcc-patches/2018-04/msg01231.html
* typeck.c (convert_ptrmem): Move local var decls to initialization.
From-SVN: r259710
Richard Biener [Fri, 27 Apr 2018 12:53:40 +0000 (12:53 +0000)]
tree-cfg.c (verify_expr): Make dead code hit gcc_unreachable.
2018-04-27 Richard Biener <rguenther@suse.de>
* tree-cfg.c (verify_expr): Make dead code hit gcc_unreachable.
From-SVN: r259705
Nathan Sidwell [Fri, 27 Apr 2018 11:55:38 +0000 (11:55 +0000)]
[C++ PATCH] some cleanups
https://gcc.gnu.org/ml/gcc-patches/2018-04/msg01227.html
* cp-tree.h (TEMPLATE_INFO): Fix comments.
(TI_PENDING_TEMPLATE_FLAG): Check TEMPLATE_INFO.
(NON_DEFAULT_TEMPLATE_ARG_COUNT): Wrap line.
(dump, print_other_binding_stacks): Remove declarations.
* name-lookup.c (print_other_binding_stack): Make static.
* pt.c (build_template_decl): Make static.
From-SVN: r259704
Alan Modra [Fri, 27 Apr 2018 09:06:39 +0000 (18:36 +0930)]
PR85532, crtend.o built without --enable-initfini-array has bad .eh_frame
PR libgcc/85532
* config/rs6000/t-crtstuff (CRTSTUFF_T_CFLAGS): Add
-fno-asynchronous-unwind-tables.
From-SVN: r259702
Uros Bizjak [Fri, 27 Apr 2018 09:00:27 +0000 (11:00 +0200)]
i386.md (*movti_internal): Substitute Ye constraint with Yd constraint.
* config/i386/i386.md (*movti_internal): Substitute Ye constraint
with Yd constraint. Set "preferred_for_speed" attribute from
TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for alternatives
with Yd constraint.
(*movdi_internal): Ditto.
(movti_interunit splitters): Remove
TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC from insn condition.
(movdi_interunit splitters): Ditto.
* config/i386/constraints.md (Ye): Remove.
(Yd): Do not depend on TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC.
From-SVN: r259701
Kyrylo Tkachov [Fri, 27 Apr 2018 08:56:02 +0000 (08:56 +0000)]
[arm] PR target/82518: Return false in ARRAY_MODE_SUPPORTED_P for BYTES_BIG_ENDIAN followup
PR target/82518
* lib/target-supports.exp (check_effective_target_vect_load_lanes):
Use check_effective_target_arm_little_endian.
From-SVN: r259700
Kyrylo Tkachov [Fri, 27 Apr 2018 08:48:49 +0000 (08:48 +0000)]
[AArch64] PR target/85512: Tighten SIMD right shift immediate constraints pt2
PR target/85512
* config/aarch64/constraints.md (Usg): Limit to 31.
(Usj): Limit to 63.
From-SVN: r259699
Eric Botcazou [Fri, 27 Apr 2018 08:05:44 +0000 (08:05 +0000)]
re PR ada/85540 (gcc/ada/init.c:1282: suspicious expression ?)
PR ada/85540
* init.c (__gnat_handle_vms_condition): Add missing parentheses.
From-SVN: r259698
Jakub Jelinek [Fri, 27 Apr 2018 07:09:51 +0000 (09:09 +0200)]
re PR tree-optimization/85529 (wrong code at -O2 and -O3 on x86_64-linux-gnu)
PR tree-optimization/85529
* tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB
argument. Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE,
rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious
zero extension or masking of the MSB bit.
(optimize_range_tests): Add FIRST_BB argument, pass it through
to optimize_range_tests_var_bound.
(maybe_optimize_range_tests, reassociate_bb): Adjust
optimize_range_tests callers.
* gcc.c-torture/execute/pr85529-1.c: New test.
* gcc.c-torture/execute/pr85529-2.c: New test.
* gcc.dg/pr85529.c: New test.
From-SVN: r259696
GCC Administrator [Fri, 27 Apr 2018 00:16:25 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r259695
Maciej W. Rozycki [Thu, 26 Apr 2018 21:03:11 +0000 (21:03 +0000)]
MIPS/GCC/testsuite: Fix data-sym-pool.c for n64 code
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 [Thu, 26 Apr 2018 21:01:31 +0000 (21:01 +0000)]
MIPS/GCC/testsuite: Fix data-sym-pool.c for SVR4 model at -O0
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
Jason Merrill [Thu, 26 Apr 2018 20:32:32 +0000 (16:32 -0400)]
PR c++/85545 - ICE with noexcept PMF conversion.
* cvt.c (cp_fold_convert): Handle PMF CONSTRUCTORs directly.
From-SVN: r259689
Richard Biener [Thu, 26 Apr 2018 20:04:15 +0000 (20:04 +0000)]
cgraph.h (symbol_table): Just declare debug method here.
* 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
Eric Botcazou [Thu, 26 Apr 2018 15:21:09 +0000 (15:21 +0000)]
* loop-invariant.c (may_assign_reg_p): Return false for frame pointer.
From-SVN: r259683
Uros Bizjak [Thu, 26 Apr 2018 14:49:32 +0000 (16:49 +0200)]
i386.md ("isa" attribute): Add x64_sse2.
* 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
Nathan Sidwell [Thu, 26 Apr 2018 14:15:58 +0000 (14:15 +0000)]
dumpfile cleanup
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
Jonathan Wakely [Thu, 26 Apr 2018 13:52:15 +0000 (14:52 +0100)]
Document that -Wreturn-type is enabled by default for C++
* doc/invoke.texi (-Wreturn-type): Document default status for C++.
From-SVN: r259679
Tom de Vries [Thu, 26 Apr 2018 13:27:04 +0000 (13:27 +0000)]
[nvptx, libgomp] Add GOMP_NVPTX_JIT=-O[0-4] in nvptx libgomp plugin
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 [Thu, 26 Apr 2018 13:26:48 +0000 (13:26 +0000)]
[nvptx] Verify bar.sync position
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 [Thu, 26 Apr 2018 13:26:38 +0000 (13:26 +0000)]
[nvptx] Fix branch-around-nothing
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
Richard Biener [Thu, 26 Apr 2018 13:26:25 +0000 (13:26 +0000)]
[lto] Fixup loops before lto write-out
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
Tom de Vries [Thu, 26 Apr 2018 13:26:09 +0000 (13:26 +0000)]
[nvptx, libgomp, testsuite] Reduce recursion depth in declare_target-{1,2}.f90
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
Richard Biener [Thu, 26 Apr 2018 12:18:58 +0000 (12:18 +0000)]
re PR libstdc++/85116 (std::min_element does not optimize well with inlined predicate)
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 [Thu, 26 Apr 2018 08:47:31 +0000 (08:47 +0000)]
Makefile.tpl (STAGE1_TFLAGS): Add -fno-checking.
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 [Thu, 26 Apr 2018 07:30:55 +0000 (07:30 +0000)]
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 [Thu, 26 Apr 2018 07:21:42 +0000 (07:21 +0000)]
re PR middle-end/85450 (ICE: invalid types in nop conversion during GIMPLE pass: ompexp)
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
Hans-Peter Nilsson [Thu, 26 Apr 2018 01:21:32 +0000 (01:21 +0000)]
mips.c (mips_asan_shadow_offset): New function.
* 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 [Thu, 26 Apr 2018 01:16:47 +0000 (01:16 +0000)]
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 [Thu, 26 Apr 2018 01:12:56 +0000 (01:12 +0000)]
As mentioned in <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 [Thu, 26 Apr 2018 01:09:27 +0000 (01:09 +0000)]
This appears to be present in compiler-rt upstream, but as part of more intrusive changes.
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
GCC Administrator [Thu, 26 Apr 2018 00:16:35 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r259662
Catherine Moore [Wed, 25 Apr 2018 22:40:04 +0000 (18:40 -0400)]
MAINTAINERS (mips): Remove myself as MIPS maintainer.
2018-04-25 Catherine Moore <clm@codesourcery.com>
* MAINTAINERS (mips): Remove myself as MIPS maintainer.
From-SVN: r259658
Mark Wielaard [Wed, 25 Apr 2018 17:34:00 +0000 (17:34 +0000)]
DWARF sort longer dirs before shorter ones in directory table.
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
Jakub Jelinek [Wed, 25 Apr 2018 13:11:03 +0000 (15:11 +0200)]
i386.md (*x86_mov<mode>cc_0_m1): Use type "alu1" rather than "alu"...
* 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 [Wed, 25 Apr 2018 13:10:01 +0000 (15:10 +0200)]
re PR middle-end/85414 (ICE: in ix86_expand_prologue, at config/i386/i386.c:13810 with -Og -fgcse)
PR middle-end/85414
* simplify-rtx.c (simplify_unary_operation_1) <case SIGN_EXTEND,
case ZERO_EXTEND>: Pass SUBREG_REG (op) rather than op to
gen_lowpart_no_emit.
From-SVN: r259649
Sebastian Peryt [Wed, 25 Apr 2018 12:39:57 +0000 (14:39 +0200)]
re PR target/85473 (internal compiler error: in emit_move_insn, at expr.c:3722)
2018-04-25 Sebastian Peryt <sebastian.peryt@intel.com>
gcc/ChangeLog:
PR target/85473
* config/i386/i386.c (ix86_expand_builtin): Change memory
operand to XI, extend p0 to Pmode.
* config/i386/i386.md: Change unspec volatile and operand
1 mode to XI, change operand 0 mode to P.
gcc/testsuite/ChangeLog:
PR target/85473
* gcc.target/i386/pr85473-1.c: New test.
* gcc.target/i386/pr85473-2.c: New test.
From-SVN: r259648
Chung-Ju Wu [Wed, 25 Apr 2018 12:32:19 +0000 (12:32 +0000)]
[NDS32] Fix bug in bit-instruction checking functions.
gcc/
* config/nds32/nds32-predicates.c (nds32_can_use_bclr_p): Mask with
GET_MODE_MASK before any checking.
(nds32_can_use_bset_p): Likewise.
(nds32_can_use_btgl_p): Likewise.
From-SVN: r259647
Chung-Ju Wu [Wed, 25 Apr 2018 12:17:29 +0000 (12:17 +0000)]
[NDS32] Split movdi/df if reigster number is illegal.
gcc/
* config/nds32/nds32-doubleword.md: New define_split pattern for
illegal register number.
From-SVN: r259646
Chung-Ju Wu [Wed, 25 Apr 2018 12:08:14 +0000 (12:08 +0000)]
[NDS32] Fix incorrect settings in sfp-machine.h and t-nds32-newlib for hard fp.
libgcc/
* config/nds32/sfp-machine.h: Fix settings for NDS32_ABI_2FP_PLUS.
* config/nds32/t-nds32-newlib (HOST_LIBGCC2_CFLAGS): Use -fwrapv.
From-SVN: r259645
Chung-Ju Wu [Wed, 25 Apr 2018 11:22:55 +0000 (11:22 +0000)]
[NDS32] Fix print operand for cctl register.
gcc/
* config/nds32/nds32.c (nds32_print_operand): Set op_value ealier.
From-SVN: r259643
Chung-Ju Wu [Wed, 25 Apr 2018 10:24:49 +0000 (10:24 +0000)]
[NDS32] Add missing newline character into ASM_APP_ON macro.
gcc/
* config/nds32/nds32.h (ASM_APP_ON): Add missing newline character.
From-SVN: r259642
Jakub Jelinek [Wed, 25 Apr 2018 10:02:24 +0000 (12:02 +0200)]
re PR sanitizer/84307 (asan blocks dead-store elimination)
PR sanitizer/84307
* c-decl.c (build_compound_literal): Call pushdecl (decl) even when
it is not TREE_STATIC.
* c-typeck.c (c_mark_addressable) <case COMPOUND_LITERAL_EXPR>: Mark
not just the COMPOUND_LITERAL_EXPR node itself addressable, but also
its COMPOUND_LITERAL_EXPR_DECL.
From-SVN: r259641
Eric Botcazou [Wed, 25 Apr 2018 10:01:13 +0000 (10:01 +0000)]
re PR ada/85007 (-b flag to gnatlink not recognized)
PR ada/85007
* gnat_ugn.texi: Regenerate.
From-SVN: r259639
Richard Biener [Wed, 25 Apr 2018 08:14:36 +0000 (08:14 +0000)]
lto-streamer.h (LTO_major_version): Bump to 8.
2018-04-25 Richard Biener <rguenther@suse.de>
* lto-streamer.h (LTO_major_version): Bump to 8.
From-SVN: r259638
Jakub Jelinek [Wed, 25 Apr 2018 07:46:31 +0000 (09:46 +0200)]
* crontab: Enable snapshots from gcc-8-branch.
From-SVN: r259637
Jakub Jelinek [Wed, 25 Apr 2018 07:42:00 +0000 (09:42 +0200)]
* BASE-VER: Set to 9.0.0.
From-SVN: r259635
Jakub Jelinek [Wed, 25 Apr 2018 07:10:16 +0000 (09:10 +0200)]
re PR c++/85437 (member pointer static upcast rejected in a constexpr context)
PR c++/85437
PR c++/49171
* cp-tree.h (REINTERPRET_CAST_P): New.
* constexpr.c (cxx_eval_constant_expression) <case NOP_EXPR>:
Reject REINTERPET_CAST_P conversions. Use cplus_expand_constant
for non-trivial PTRMEM_CST cases.
* typeck.c (build_nop_reinterpret): New.
(build_reinterpret_cast_1): Use it. Set REINTERPRET_CAST_P on
NOP_EXPRs returned by cp_convert.
* g++.dg/cpp0x/addressof1.C: Make reinterpret cases runtime checks.
* g++.dg/cpp0x/constexpr-cast.C: Remove xfails
* g++.dg/cpp0x/constexpr-nullptr-2.C: Likewise.
* g++.dg/cpp0x/constexpr-pmf1.C: Check when optimized.
* g++.dg/cpp0x/pr85437-1.C: New.
* g++.dg/cpp0x/pr85437-2.C: New.
* g++.dg/cpp0x/pr85437-3.C: New.
* g++.dg/cpp0x/pr85437-4.C: New.
From-SVN: r259629
GCC Administrator [Wed, 25 Apr 2018 00:16:37 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r259628
Steven G. Kargl [Tue, 24 Apr 2018 23:17:29 +0000 (23:17 +0000)]
re PR fortran/85520 (Out of memory when declaring a character with len << 0)
2018-04-24 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/85520
* decl.c (gfc_match_char_spec): Check for negative length and set to 0.
2018-04-24 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/85520
* gfortran.dg/pr85520.f90: New test.
From-SVN: r259623
Segher Boessenkool [Tue, 24 Apr 2018 22:49:41 +0000 (00:49 +0200)]
rs6000: Fix __powikf2 and __abskf2 spelling
Both of these libfuncs had a "tkf" misspelling, which caused
gcc.target/powerpc/pr85456.c to fail (there is no test for __abskf2).
* config/rs6000/rs6000.c (init_float128_ieee): Fix spelling mistakes
in __abskf2 and __powikf2.
From-SVN: r259622
H.J. Lu [Tue, 24 Apr 2018 22:15:51 +0000 (22:15 +0000)]
x86: Update __CET__ check
__CET__ has been changed by revision 259522:
commit
d59cfa9a4064339cf2bd2da828c4c133f13e57f0
Author: hjl <hjl@
138bc75d-0d04-0410-961f-
82ee72b054a4>
Date: Fri Apr 20 13:30:13 2018 +0000
Define __CET__ for -fcf-protection and remove -mibt
to
(__CET__ & 1) != 0: -fcf-protection=branch or -fcf-protection=full
(__CET__ & 2) != 0: -fcf-protection=return or -fcf-protection=full
We should check (__CET__ & 2) != 0 for shadow stack.
libgcc/
* config/i386/linux-unwind.h: Add (__CET__ & 2) != 0 check
when including "config/i386/shadow-stack-unwind.h".
libitm/
* config/x86/sjlj.S (_ITM_beginTransaction): Add
(__CET__ & 2) != 0 check for shadow stack.
(GTM_longjmp): Likewise.
From-SVN: r259621
H.J. Lu [Tue, 24 Apr 2018 22:12:46 +0000 (22:12 +0000)]
x86/CET: Add -fcf-protection to STAGE4_CFLAGS
Since profiledbootstrap uses
STAGEfeedback_CFLAGS = $(STAGE4_CFLAGS) -fprofile-use
add
STAGE4_CFLAGS += -fcf-protection -mcet
to bootstrap-cet.mk to support profiledbootstrap with CET.
PR bootstrap/85490
* bootstrap-cet.mk (STAGE4_CFLAGS): New.
From-SVN: r259620
Kyrylo Tkachov [Tue, 24 Apr 2018 16:58:49 +0000 (16:58 +0000)]
[AArch64] PR target/85512: Tighten SIMD right shift immediate constraints
In this testcase it is possible to generate an invalid SISD shift of zero:
Error: immediate value out of range 1 to 64 at operand 3 -- `sshr v9.2s,v0.2s,0'
The SSHR and USHR instructions require a shift from 1 up to the element size.
However our constraints on the scalar shifts that generate these patterns
allow a shift amount of zero as well. The pure GP-reg ASR and LSR instructions allow a shift amount of zero.
It is unlikely that a shift of zero will survive till the end of compilation, but it's not impossible, as this PR shows.
The patch tightens up the constraints in the offending patterns by adding two new constraints
that allow shift amounts [1,32] and [1,64] and using them in *aarch64_ashr_sisd_or_int_<mode>3
and *aarch64_lshr_sisd_or_int_<mode>3.
The left-shift SISD instructions SHL and USHL allow a shift amount of zero so don't need adjustment
The vector shift patterns that map down to SSHR and USHR already enforce the correct immediate range.
PR target/85512
* config/aarch64/constraints.md (Usg, Usj): New constraints.
* config/aarch64/iterators.md (cmode_simd): New mode attribute.
* config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
Use the above on operand 2. Reindent.
(*aarch64_lshr_sisd_or_int_<mode>3): Likewise.
* gcc.dg/pr85512.c: New test.
From-SVN: r259614
H.J. Lu [Tue, 24 Apr 2018 16:56:04 +0000 (16:56 +0000)]
x86/CET: Remove the -mcet command-lint option
With revision 259496:
commit
b1384095a7c1d06a44b70853372ebe037b2f7867
Author: hjl <hjl@
138bc75d-0d04-0410-961f-
82ee72b054a4>
Date: Thu Apr 19 15:15:04 2018 +0000
x86: Enable -fcf-protection with multi-byte NOPs
-fcf-protection no longer depens on -mcet and with revision 259522:
commit
d59cfa9a4064339cf2bd2da828c4c133f13e57f0
Author: hjl <hjl@
138bc75d-0d04-0410-961f-
82ee72b054a4>
Date: Fri Apr 20 13:30:13 2018 +0000
Define __CET__ for -fcf-protection and remove -mibt
-mcet becomes an alias for -mshstk. Since all usages of -mcet and
-mno-cet have either been removed or replaced, we can remove the -mcet
command-lint option.
PR target/85485
* common/config/i386/i386-common.c (ix86_handle_option): Don't
handle OPT_mcet.
* config/i386/i386.opt (mcet): Removed.
* doc/install.texi: Remove -mcet documentation.
* doc/invoke.texi: Likewise.
From-SVN: r259613
H.J. Lu [Tue, 24 Apr 2018 16:54:35 +0000 (09:54 -0700)]
x86/CET tests: Remove -mcet/-mno-cet or replace -mcet with -mshstk
With revision 259496:
commit
b1384095a7c1d06a44b70853372ebe037b2f7867
Author: hjl <hjl@
138bc75d-0d04-0410-961f-
82ee72b054a4>
Date: Thu Apr 19 15:15:04 2018 +0000
x86: Enable -fcf-protection with multi-byte NOPs
-fcf-protection no longer depens on -mcet and with revision 259522:
commit
d59cfa9a4064339cf2bd2da828c4c133f13e57f0
Author: hjl <hjl@
138bc75d-0d04-0410-961f-
82ee72b054a4>
Date: Fri Apr 20 13:30:13 2018 +0000
Define __CET__ for -fcf-protection and remove -mibt
-mcet becomes an alias for -mshstk.
We can remove -mcet/-mno-cet where they are unused and replace -mcet
with -mshstk where -mcet is used as an alias for -mshstk.
PR target/85485
* g++.dg/cet-notrack-1.C (dg-options): Remove -mcet.
* g++.dg/torture/pr85334.C (dg-additional-options): Likwise.
* gcc.dg/pr85388-1.c (dg-options): Likwise.
* gcc.dg/pr85388-2.c (dg-options): Likwise.
* gcc.dg/pr85388-3.c (dg-options): Likwise.
* gcc.dg/pr85388-4.c (dg-options): Likwise.
* gcc.dg/pr85388-5.c (dg-options): Likwise.
* gcc.dg/pr85388-6.c (dg-options): Likwise.
* gcc.dg/torture/pr85397-1.c (dg-additional-options): Likwise.
* gcc.target/i386/attr-nocf-check-1a.c (dg-options): Likwise.
* gcc.target/i386/attr-nocf-check-3a.c (dg-options): Likwise.
* gcc.target/i386/cet-label.c (dg-options): Likwise.
* gcc.target/i386/cet-label-2.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-1b.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-2a.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-2b.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-3.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-4b.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-5a.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-5b.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-6a.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-6b.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-7.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-icf-2.c (dg-options): Likwise.
* gcc.target/i386/cet-notrack-icf-4.c (dg-options): Likwise.
* gcc.target/i386/cet-property-1.c (dg-options): Likwise.
* gcc.target/i386/cet-property-2.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-1.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-2.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-3.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-4.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-5.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-6a.c (dg-options): Likwise.
* gcc.target/i386/cet-sjlj-6b.c (dg-options): Likwise.
* gcc.target/i386/cet-switch-1.c (dg-options): Likwise.
* gcc.target/i386/cet-switch-2.c (dg-options): Likwise.
* gcc.target/i386/cet-switch-3.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-11.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-12.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-attr-12.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-attr-13.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-attr-14.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-attr-15.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-attr-16.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-extern-8.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-extern-9.c (dg-options): Likwise.
* gcc.target/i386/indirect-thunk-extern-10.c (dg-options): Likwise.
* gcc.target/i386/pr82659-1.c (dg-options): Likwise.
* gcc.target/i386/pr82659-2.c (dg-options): Likwise.
* gcc.target/i386/pr82659-3.c (dg-options): Likwise.
* gcc.target/i386/pr82659-4.c (dg-options): Likwise.
* gcc.target/i386/pr82659-5.c (dg-options): Likwise.
* gcc.target/i386/pr82659-6.c (dg-options): Likwise.
* gcc.target/i386/pr84146.c (dg-options): Likwise.
* gcc.target/i386/pr85403.c (dg-options): Likwise.
* gcc.target/i386/pr85404.c (dg-options): Likwise.
* gcc.target/i386/cet-intrin-3.c (dg-options): Replace -mcet
with -mshstk.
* gcc.target/i386/cet-intrin-5.c (dg-options): Likwise.
* gcc.target/i386/cet-intrin-6.c (dg-options): Likwise.
* gcc.target/i386/cet-intrin-7.c (dg-options): Likwise.
* gcc.target/i386/cet-intrin-8.c (dg-options): Likwise.
* gcc.target/i386/cet-intrin-9.c (dg-options): Likwise.
* gcc.target/i386/cet-intrin-10.c (dg-options): Likwise.
* gcc.target/i386/cet-rdssp-1.c (dg-options): Likwise.
* (dg-options): Likwise.
* gcc.target/i386/cet-notrack-1a.c (dg-options): Remove
-mno-cet.
* gcc.target/i386/cet-notrack-4a.c (dg-options): Likwise.
* gcc.target/i386/cet-label-3.c: Removed.
* gcc.target/i386/cet-property-3.c: Likwise.
* gcc.target/i386/cet-sjlj-7.c: Likwise.
From-SVN: r259612
H.J. Lu [Tue, 24 Apr 2018 16:47:24 +0000 (16:47 +0000)]
Don't bootstrap GCC with -mcet
With revision 259496:
commit
b1384095a7c1d06a44b70853372ebe037b2f7867
Author: hjl <hjl@
138bc75d-0d04-0410-961f-
82ee72b054a4>
Date: Thu Apr 19 15:15:04 2018 +0000
x86: Enable -fcf-protection with multi-byte NOPs
-fcf-protection no longer requires -mcet.
config/
PR target/85485
* bootstrap-cet.mk (STAGE2_CFLAGS): Remove -mcet.
(STAGE3_CFLAGS): Likewise.
gcc/
PR target/85485
* doc/install.texi: Remove -mcet from bootstrap-cet.
From-SVN: r259611
H.J. Lu [Tue, 24 Apr 2018 16:45:26 +0000 (16:45 +0000)]
Regenerate configure of target libraries
* configure: Regenerated.
From-SVN: r259610
Jakub Jelinek [Tue, 24 Apr 2018 16:42:59 +0000 (18:42 +0200)]
re PR target/85511 ([X86] Using __builtin_ia32_writeeflags_u32 in 64-bit mode causes internal compiler error)
PR target/85511
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Don't define
__builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32
if TARGET_64BIT.
* gcc.target/i386/pr85511.c: New test.
From-SVN: r259609
H.J. Lu [Tue, 24 Apr 2018 16:41:01 +0000 (09:41 -0700)]
x86/CET: Build target libraries with -mshstk
With revision 259522:
commit
d59cfa9a4064339cf2bd2da828c4c133f13e57f0
Author: hjl <hjl@
138bc75d-0d04-0410-961f-
82ee72b054a4>
Date: Fri Apr 20 13:30:13 2018 +0000
Define __CET__ for -fcf-protection and remove -mibt
-mcet becomes an alias for -mshstk.
PR target/85485
* cet.m4 (GCC_CET_FLAGS): Replace -mcet with -mshstk.
From-SVN: r259608
Jakub Jelinek [Tue, 24 Apr 2018 16:05:19 +0000 (18:05 +0200)]
re PR target/85503 (ICE in replace_swapped_load_constant, at config/rs6000/rs6000-p8swap.c:1853 on powerpc64le-linux-gnu)
PR target/85503
* config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Punt if
const_vector is not CONST_VECTOR or SYMBOL_REF for a constant pool
containing a CONST_VECTOR.
* g++.dg/ext/pr85503.C: New test.
From-SVN: r259607
Jason Merrill [Tue, 24 Apr 2018 15:54:56 +0000 (11:54 -0400)]
Testsuite fixes for C++11 alignof change.
gcc/testsuite:
* c-c++-common/attr-aligned-1.c: Use __alignof__ in C++11.
* g++.dg/cpp0x/alignas4.C: Expect 4-byte alignment on x86.
From-SVN: r259606
Cesar Philippidis [Tue, 24 Apr 2018 14:36:15 +0000 (07:36 -0700)]
[nvptx] Update newlib dependency.
gcc/
* doc/install.texi: Update newlib dependency for nvptx.
From-SVN: r259596
Jakub Jelinek [Tue, 24 Apr 2018 13:20:20 +0000 (15:20 +0200)]
re PR target/85508 (runtime error in config/i386/i386.c)
PR target/85508
* config/i386/i386.c (ix86_expand_vector_init_one_var): Use UINTVAL
instead of INTVAL when shifting x left.
* gcc.target/i386/pr85508.c: New test.
From-SVN: r259594
Andreas Krebbel [Tue, 24 Apr 2018 12:18:26 +0000 (12:18 +0000)]
re PR tree-optimization/85478 (ICE with single element vector)
Fix PR85478
gcc/ChangeLog:
2018-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
PR tree-optimization/85478
* tree-vect-loop.c (vect_analyze_loop_2): Do not call
vect_grouped_store_supported for single element vectors.
gcc/testsuite/ChangeLog:
2018-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
PR tree-optimization/85478
* g++.dg/pr85478.C: New test.
From-SVN: r259593
Richard Biener [Tue, 24 Apr 2018 08:46:55 +0000 (08:46 +0000)]
re PR target/85491 (nbench LU Decomposition test 15% slower than GCC 7, 30% slower than peak)
2018-04-24 Richard Biener <rguenther@suse.de>
PR target/85491
* config/i386/i386.c (ix86_add_stmt_cost): Restrict strided
load cost increase to the case of non-constant step.
From-SVN: r259592
Jakub Jelinek [Tue, 24 Apr 2018 07:40:04 +0000 (09:40 +0200)]
re PR target/84828 (ICE in verify_flow_info at gcc/cfghooks.c:265)
PR target/84828
* reg-stack.c (move_for_stack_reg): Don't fail assertion about dead
destination if any_malformed_asm.
From-SVN: r259591
GCC Administrator [Tue, 24 Apr 2018 00:16:27 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r259589
Jason Merrill [Mon, 23 Apr 2018 20:49:38 +0000 (16:49 -0400)]
PR c++/69560 - wrong alignof(double) on x86.
CWG 1879 - Inadequate definition of alignment requirement.
* cp-tree.h (ALIGNOF_EXPR_STD_P): New.
* typeck.c (cxx_sizeof_or_alignof_type): Add std_alignof parm.
(cxx_sizeof_expr, cxx_sizeof_nowarn, cxx_alignas_expr)
(cxx_alignof_expr): Pass it.
* parser.c (cp_parser_unary_expression): Pass it.
* pt.c (tsubst_copy): Copy it.
(tsubst_copy_and_build): Pass it.
* decl.c (fold_sizeof_expr): Pass it.
From-SVN: r259578
Joseph Myers [Mon, 23 Apr 2018 20:27:02 +0000 (21:27 +0100)]
Regenerate .pot files.
gcc/po:
* gcc.pot: Regenerate.
libcpp/po:
* cpplib.pot: Regenerate.
From-SVN: r259575
Eric Botcazou [Mon, 23 Apr 2018 20:19:39 +0000 (20:19 +0000)]
re PR middle-end/85496 (internal compiler error: in emit_move_insn, at expr.c:3722)
PR middle-end/85496
* expr.c (store_field): In the bitfield case, if the value comes from
a function call and is returned in registers by means of a PARALLEL,
do not change the mode of the temporary unless BLKmode and VOIDmode.
From-SVN: r259574
Jakub Jelinek [Mon, 23 Apr 2018 19:11:22 +0000 (21:11 +0200)]
PR c++/85470 - wrong error with static data member.
* decl.c (check_initializer): Check DECL_INITIALIZED_IN_CLASS_P.
* typeck2.c (store_init_value): Likewise.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r259571
Paul Clarke [Mon, 23 Apr 2018 18:53:34 +0000 (18:53 +0000)]
Add myself to MAINTAINERS.
* MAINTAINERS (write after approval): Add myself.
From-SVN: r259570
Andrey Belevantsev [Mon, 23 Apr 2018 15:19:06 +0000 (18:19 +0300)]
re PR rtl-optimization/85423 (ICE in code_motion_process_successors, at sel-sched.c:6403)
PR rtl-optimization/85423
* sel-sched-ir.c (has_dependence_note_mem_dep): Only discard
dependencies to debug insns when the previous insn is non-debug.
* gcc.dg/pr85423.c: New test.
From-SVN: r259563
H.J. Lu [Mon, 23 Apr 2018 12:29:00 +0000 (12:29 +0000)]
x86/cet: Use unsigned integer to unwind shadow stack
Use unsigned integer to unwind shadow stack by replacing jle with jbe and
jg with ja.
PR target/85489
* config/x86/sjlj.S (GTM_longjmp): Replace jle/jg with jbe/ja.
From-SVN: r259559
Claudiu Zissulescu [Mon, 23 Apr 2018 09:55:14 +0000 (11:55 +0200)]
[ARC] Fix FLS, SETI patterns.
Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.md ("vunspec"): Delete it, unify all the unspec
enums into a single definition.
(fls): Fix predicates and printing.
(seti): Likewise.
From-SVN: r259558
Claudiu Zissulescu [Mon, 23 Apr 2018 09:54:59 +0000 (11:54 +0200)]
[ARC] Update sleep builtin.
gcc/
2018-04-23 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc-protos.h (check_if_valid_sleep_operand): Remove.
* config/arc/arc.c (arc_expand_builtin): Sleep accepts registers
and short u6 immediate.
(check_if_valid_sleep_operand): Remove.
* config/arc/arc.md (Sleep): Accepts registers and u6 immediates.
changelog
From-SVN: r259557
GCC Administrator [Mon, 23 Apr 2018 00:16:27 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r259556
Chung-Ju Wu [Sun, 22 Apr 2018 10:10:00 +0000 (10:10 +0000)]
[NDS32] Add new option -malways-save-lp.
gcc/
* config/nds32/nds32.c (nds32_compute_stack_frame): Consider
flag_always_save_lp condition.
* config/nds32/nds32.opt (malways-save-lp): New option.
From-SVN: r259553
Shiva Chen [Sun, 22 Apr 2018 09:05:10 +0000 (09:05 +0000)]
[NDS32] Implment USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT, USE_STORE_POST_DECREMENT and USE_STORE_POST_INCREMENT.
gcc/
* config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare.
* config/nds32/nds32.c (nds32_use_load_post_increment): New.
* config/nds32/nds32.h
(USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT): Define.
(USE_STORE_POST_INCREMENT, USE_STORE_POST_DECREMENT): Define.
From-SVN: r259552
Shiva Chen [Sun, 22 Apr 2018 08:51:26 +0000 (08:51 +0000)]
[NDS32] Remove unused function: nds32_ls_333_p().
gcc/
* config/nds32/nds32-protos.h (nds32_ls_333_p): Remove.
* config/nds32/nds32.c (nds32_ls_333_p): Remove.
From-SVN: r259551
Shiva Chen [Sun, 22 Apr 2018 08:42:18 +0000 (08:42 +0000)]
[NDS32] Refine CASE_VECTOR_SHORTEN_MODE to function.
gcc/
* config/nds32/nds32-protos.h (nds32_case_vector_shorten_mode):
Declare.
* config/nds32/nds32.c (nds32_case_vector_shorten_mode): New function.
* config/nds32/nds32.h (CASE_VECTOR_SHORTEN_MODE): Modify.
Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
From-SVN: r259550
Chung-Ju Wu [Sun, 22 Apr 2018 08:25:47 +0000 (08:25 +0000)]
[NDS32] Fix wrong input value of parameter from stack for variable-length function.
gcc/
* config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value.
From-SVN: r259549
Chung-Ju Wu [Sun, 22 Apr 2018 08:19:38 +0000 (08:19 +0000)]
[NDS32] Implement DATA_ALIGNMENT, LOCAL_ALIGNMENT and TARGET_CONSTANT_ALIGNMENT.
gcc/
* config/nds32/nds32-protos.h (nds32_data_alignment,
nds32_local_alignment): Declare.
* config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment,
nds32_local_alignment): New functions.
(TARGET_CONSTANT_ALIGNMENT): Define.
* config/nds32/nds32.h (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
From-SVN: r259548
Chung-Ju Wu [Sun, 22 Apr 2018 08:07:08 +0000 (08:07 +0000)]
[NDS32] Move some target hooks to the bottom of nds32.c file.
gcc/
* config/nds32/nds32.c
(TARGET_HARD_REGNO_MODE_OK): Move to the bottom of file.
(TARGET_MODES_TIEABLE_P): Likewise.
From-SVN: r259547
Chung-Ju Wu [Sun, 22 Apr 2018 07:57:06 +0000 (07:57 +0000)]
[NDS32] Consider -Ofast and -Og in nds32_asm_file_start function.
gcc/
* config/nds32/nds32.c (nds32_asm_file_start): Display optimization
level Ofast and Og.
From-SVN: r259546
Monk Chiang [Sun, 22 Apr 2018 07:46:39 +0000 (07:46 +0000)]
[NDS32] Add unaligned access support.
gcc/
* config/nds32/constants.md (unspec_volatile_element): Add enum values
for unaligned access.
* config/nds32/nds32-intrinsic.c: Implementation of expanding
unaligned access.
* config/nds32/nds32-intrinsic.md: Likewise.
* config/nds32/nds32_intrinsic.h: Likewise.
* config/nds32/nds32.h (nds32_builtins): Likewise.
* config/nds32/nds32.opt (munaligned-access): New option.
* config/nds32/nds32.c (nds32_asm_file_start): Display
flag_unaligned_access status.
Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
From-SVN: r259545
GCC Administrator [Sun, 22 Apr 2018 00:16:24 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r259544
Kito Cheng [Sat, 21 Apr 2018 01:03:30 +0000 (01:03 +0000)]
RISC-V: Pass --no-relax to linker if -mno-relax is present.
gcc/
2018-04-20 Kito Cheng <kito.cheng@gmail.com>
* config/riscv/elf.h (LINK_SPEC): Pass --no-relax if
-mno-relax is present.
* config/riscv/linux.h (LINK_SPEC): Ditto.
From-SVN: r259540
GCC Administrator [Sat, 21 Apr 2018 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r259539
Martin Sebor [Fri, 20 Apr 2018 23:43:51 +0000 (23:43 +0000)]
PR c/85365 - -Wrestrict false positives with -fsanitize=undefined
gcc/ChangeLog:
PR c/85365
* gimple-fold.c (gimple_fold_builtin_strcpy): Suppress -Wrestrict
for null pointers.
(gimple_fold_builtin_stxcpy_chk): Same.
* gimple-ssa-warn-restrict.c (check_bounds_or_overlap): Same.
gcc/testsuite/ChangeLog:
PR c/85365
* gcc.dg/Wrestrict-15.c: New test.
From-SVN: r259535
Michael Meissner [Fri, 20 Apr 2018 21:27:08 +0000 (21:27 +0000)]
re PR target/85456 (PowerPC: Using -mabi=ieeelongdouble calls wrong function for __builtin_powi.)
[libgcc]
2018-04-20 Michael Meissner <meissner@linux.ibm.com>
PR target/85456
* config/rs6000/_powikf2.c: New file. Add support for the
__builtin_powil function when long double is IEEE 128-bit floating
point.
* config/rs6000/float128-ifunc.c (__powikf2_resolve): Add
__powikf2 support.
(__powikf2): Likewise.
* config/rs6000/quad-float128.h (__powikf2_sw): Likewise.
(__powikf2_hw): Likewise.
(__powikf2): Likewise.
* config/rs6000/t-float128 (fp128_ppc_funcs): Likewise.
* config/rs6000/t-float128-hw (fp128_hw_func): Likewise.
(_powikf2-hw.c): Likewise.
[gcc]
2018-04-20 Michael Meissner <meissner@linux.ibm.com>
PR target/85456
* config/rs6000/rs6000.c (init_float128_ieee): Add support to call
__powikf2 when long double is IEEE 128-bit.
[gcc/testsuite]
2018-04-20 Michael Meissner <meissner@linux.ibm.com>
PR target/85456
* gcc.target/powerpc/pr85456.c: New test.
From-SVN: r259533
Bill Schmidt [Fri, 20 Apr 2018 21:00:41 +0000 (21:00 +0000)]
undef-bool-1.C: Require lp64.
[gcc/testsuite]
2018-04-20 Bill Schmidt <wschmidt@linux.ibm.com>
* g++.dg/ext/undef-bool-1.C: Require lp64.
* gcc.target/powerpc/undef-bool-2.c: Likewise.
From-SVN: r259532
Ian Lance Taylor [Fri, 20 Apr 2018 20:40:27 +0000 (20:40 +0000)]
gotest: only use [TD] on big-endian PPC64 non-AIX systems
Reviewed-on: https://go-review.googlesource.com/108457
From-SVN: r259531
Kito Cheng [Fri, 20 Apr 2018 19:03:19 +0000 (19:03 +0000)]
RISC-V: Make sure stack is always aligned during adjusting stack.
gcc/
2018-04-20 Kito Cheng <kito.cheng@gmail.com>
* config/riscv/riscv.c (riscv_first_stack_step): Round up min
step to make sure stack always aligned.
From-SVN: r259530
Jeff Law [Fri, 20 Apr 2018 17:20:46 +0000 (11:20 -0600)]
stack-check-5.c: Improve dg-skip-if selector for the stack protector.
* gcc.dg/stack-check-5.c: Improve dg-skip-if selector for the
stack protector.
* gcc.dg/stack-check-6.c: Likewise.
* gcc.dg/stack-check-6a.c: Likewise.
* gcc.target/i386/stack-check-17.c: Add dg-skip-if selector.
* gcc.target/i386/stack-check-18.c: Likewise.
* gcc.target/i386/stack-check-19.c: Likewise.
From-SVN: r259528