gcc.git
8 years agoPR 72847 Prevent double-free in std::vector<bool>
Jonathan Wakely [Tue, 16 Aug 2016 11:33:16 +0000 (12:33 +0100)]
PR 72847 Prevent double-free in std::vector<bool>

PR libstdc++/72847
* include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
pointers to start and end of storage.
* testsuite/23_containers/vector/bool/72847.cc: New test.
* include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
_M_finish after deallocating.
(vector<bool>::_M_fill_insert): Likewise.
(vector<bool>::_M_insert_range): Likewise.
(vector<bool>::_M_insert_aux): Likewise.

From-SVN: r239497

8 years agore PR tree-optimization/76783 (wrong code with conditional vector assignment @ -Og)
Richard Biener [Tue, 16 Aug 2016 11:22:47 +0000 (11:22 +0000)]
re PR tree-optimization/76783 (wrong code with conditional vector assignment @ -Og)

2016-08-16  Richard Biener  <rguenther@suse.de>

PR tree-optimization/76783
* tree-ssa-propagate.c (ssa_prop_init): Use RPO order.  Clear
BB visited flags at start.

* gcc.dg/pr76783.c: New testcase.
* gcc.dg/tree-ssa/pr69270-2.c: Adjust.

From-SVN: r239496

8 years agore PR tree-optimization/72817 (wrong code at -O3 on x86_64-linux-gnu (in both 32...
Bin Cheng [Tue, 16 Aug 2016 09:13:50 +0000 (09:13 +0000)]
re PR tree-optimization/72817 (wrong code at -O3 on x86_64-linux-gnu (in both 32-bit and 64-bit modes))

PR tree-optimization/72817
PR tree-optimization/73450
* tree-ssa-loop-niter.c (number_of_iterations_ne): Check
multiple_of_p for adjusted IV.base.

gcc/testsuite
* gcc.dg/tree-ssa/pr72817.c: New test.
* gcc.dg/tree-ssa/pr73450.c: New test.

From-SVN: r239494

8 years agoDaily bump.
GCC Administrator [Tue, 16 Aug 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239492

8 years agolang.opt, [...]: New flag -finit-derived.
Fritz Reese [Mon, 15 Aug 2016 21:19:09 +0000 (21:19 +0000)]
lang.opt, [...]: New flag -finit-derived.

2016-08-15  Fritz Reese  <fritzoreese@gmail.com>

gcc/fortran/
* lang.opt, invoke.texi: New flag -finit-derived.
* gfortran.h (gfc_build_default_init_expr, gfc_apply_init,
gfc_generate_initializer): New prototypes.
* expr.c (gfc_build_default_init_expr, gfc_apply_init,
component_initializer, gfc_generate_initializer): New functions.
* expr.c (gfc_default_initializer): Wrap gfc_generate_initializer.
* decl.c (build_struct): Move common code to gfc_apply_init.
* resolve.c (can_generate_init): New function.
* resolve.c (build_default_init_expr): Wrap gfc_build_default_init_expr.
* resolve.c (apply_default_init, resolve_fl_variable_derived): Use
gfc_generate_initializer.
* trans-decl.c (gfc_generate_function_code): Use
gfc_generate_initializer.

gcc/testsuite/gfortran.dg/
* init_flag_13.f90: New testcase.
* init_flag_14.f90: Ditto.
* init_flag_15.f03: Ditto.
* dec_init_1.f90: Ditto.
* dec_init_2.f90: Ditto.

From-SVN: r239489

8 years agofrontend-passes.c (create_var): Set ts.deferred for deferred-length character variables.
Thomas Koenig [Mon, 15 Aug 2016 19:34:48 +0000 (19:34 +0000)]
frontend-passes.c (create_var): Set ts.deferred for deferred-length character variables.

2016-08-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

* frontend-passes.c (create_var):  Set ts.deferred for
deferred-length character variables.
* dump-parse-tree.c (show_typespec):  Also dump
is_c_interop, is_iso_c and deferred flags.

From-SVN: r239488

8 years agore PR target/72867 (SSE/AVX/AVX512: incorrect optimization of VMINPS/VMAXPS at compil...
Uros Bizjak [Mon, 15 Aug 2016 18:46:53 +0000 (20:46 +0200)]
re PR target/72867 (SSE/AVX/AVX512: incorrect optimization of VMINPS/VMAXPS at compile time)

PR target/72867
* config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
for !flag_finite_math_only or flag_signed_zeros.
(*<code><mode>3<mask_name><round_saeonly_name>): Rename from
*<code><mode>3_finite<mask_name><round_saeonly_name>.  Do not
depend on flag_finite_math_only.
(ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
New insn pattern.
(*<code><mode>3<mask_name><round_saeonly_name>): Remove.
(*ieee_smin<mode>3): Ditto.
(*ieee_smax<mode>3): Ditto.
* config/i386/mmx.md (mmx_<code>v2sf3): Emit
mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
flag_signed_zeros.
(*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite.  Do not
depend on flag_finite_math_only.
(mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
(*mmx_<code>v2sf3): Remove.
* config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
* config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
flag_signed_zeros instead of !flag_unsafe_math_optimizations.

testsuite/ChangeLog:

PR target/72867
* gcc.target/i386/pr72867.c: New test.

From-SVN: r239487

8 years agocmd/go: ignore errors from go/build for standard packages
Ian Lance Taylor [Mon, 15 Aug 2016 18:05:24 +0000 (18:05 +0000)]
cmd/go: ignore errors from go/build for standard packages

    The go/build package does not know that gccgo's standard packages don't
    have source, and will report an error saying that it can not find them.
    Work around that in the cmd/go sources, since the go/build sources don't
    currently have a list of standard packages.

    This should get a real fix in the master sources, somehow.

    Fixes golang/go#16701.

    Reviewed-on: https://go-review.googlesource.com/27052

From-SVN: r239486

8 years agolra: A multiple_sets is not a simple_move_p (PR73650)
Segher Boessenkool [Mon, 15 Aug 2016 16:17:21 +0000 (18:17 +0200)]
lra: A multiple_sets is not a simple_move_p (PR73650)

In the PR we have a PARALLEL of a move and a compare (a "mr." instruction).
The compare is dead, so single_set on it returns just the move.  Then,
simple_move_p returns true; but the instruction does need reloads in this
case.  This patch solves this by making simple_move_p return false for
every multiple_sets instruction.

PR rtl-optimization/73650
* lra-constraints.c (simple_move_p): If the insn is multiple_sets
it is not a simple move.

From-SVN: r239483

8 years agoImplement LWG 2744 and LWG 2754.
Ville Voutilainen [Mon, 15 Aug 2016 15:06:09 +0000 (18:06 +0300)]
Implement LWG 2744 and LWG 2754.

* include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
(any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
(any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
Likewise.
(emplace(_Args&&...)): Likewise.
(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
* include/std/utility: (__is_in_place_type_impl): New.
(__is_in_place_type): Likewise.
* testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
emplace.
* testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
in_place constructor.
* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
* testsuite/20_util/any/requirements.cc: Add a test for
in_place-constructing a non-default-constructible type.

From-SVN: r239482

8 years agoc-ada-spec.c (dump_number): New function.
Eric Botcazou [Mon, 15 Aug 2016 13:05:37 +0000 (13:05 +0000)]
c-ada-spec.c (dump_number): New function.

* c-ada-spec.c (dump_number): New function.
(handle_escape_character): Likewise.
(print_ada_macros): Add handling of constant integers and strings.

Co-Authored-By: Arnaud Charlet <charlet@adacore.com>
From-SVN: r239481

8 years agoAdd a feature macro for C++17 make_from_tuple.
Ville Voutilainen [Mon, 15 Aug 2016 12:46:47 +0000 (15:46 +0300)]
Add a feature macro for C++17 make_from_tuple.

* include/std/tuple (__cpp_lib_make_from_tuple): New.
* testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.

From-SVN: r239480

8 years agoops.cc: Always include ostream and ext/stdio_filebuf.h.
Uros Bizjak [Mon, 15 Aug 2016 11:40:37 +0000 (13:40 +0200)]
ops.cc: Always include ostream and ext/stdio_filebuf.h.

* src/filesystem/ops.cc: Always include ostream and
ext/stdio_filebuf.h.
(do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
[_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
sendfile fails with ENOSYS or EINVAL.

From-SVN: r239479

8 years agogcov-tool: Do not segfault in merge operation (PR
Gilles Gouaillardet [Mon, 15 Aug 2016 11:23:27 +0000 (11:23 +0000)]
gcov-tool: Do not segfault in merge operation (PR

PR gcov-profile/67097
* libgcov-util.c (gcov_profile_merge): Skip missing files.

From-SVN: r239478

8 years agoFix invalid memory access in gcc.c (driver/72765)
Martin Liska [Mon, 15 Aug 2016 11:16:50 +0000 (13:16 +0200)]
Fix invalid memory access in gcc.c (driver/72765)

PR driver/72765
* gcc.c (do_spec_1): Call save_string with the right size.
(save_string): Do an assert about string we copy.

From-SVN: r239475

8 years agoree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
Richard Biener [Mon, 15 Aug 2016 11:07:52 +0000 (11:07 +0000)]
ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.

2016-08-15  Richard Biener  <rguenther@suse.de>

* ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
* config/i386/i386.c (pass_data_insert_vzeroupper): Account to
TV_MACH_DEP.
(pass_data_stv): Likewise.

From-SVN: r239474

8 years agore PR tree-optimization/73434 (Wrong code with casting, branches and aliasing)
Richard Biener [Mon, 15 Aug 2016 09:56:00 +0000 (09:56 +0000)]
re PR tree-optimization/73434 (Wrong code with casting, branches and aliasing)

2016-08-15  Richard Biener  <rguenther@suse.de>

PR tree-optimization/73434
* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
TBAA info on the base when forwarding a non-invariant address.

* gcc.dg/torture/pr73434.c: New testcase.

From-SVN: r239471

8 years agodwarf2.def (DW_AT_string_length_bit_size, [...]): New attributes.
Jakub Jelinek [Mon, 15 Aug 2016 09:51:44 +0000 (11:51 +0200)]
dwarf2.def (DW_AT_string_length_bit_size, [...]): New attributes.

* dwarf2.def (DW_AT_string_length_bit_size,
DW_AT_string_length_byte_size): New attributes.

* dwarf2out.c (struct checksum_attributes): Add
at_string_length_bit_size and at_string_length_byte_size fields.
(collect_checksum_attributes): Handle DW_AT_string_length_bit_size
and DW_AT_string_length_byte_size.
(die_checksum_ordered): Handle at_string_length_bit_size and
at_string_length_byte_size.
(gen_array_type_die): For dwarf_version >= 5 emit
DW_AT_string_length_byte_size instead of DW_AT_byte_size.
(adjust_string_types): For dwarf_version >= 5 remove
DW_AT_string_length_byte_size instead of DW_AT_byte_size.
(resolve_addr): Likewise.

From-SVN: r239470

8 years agore PR debug/71906 (Fortran allocatable strings debug info type size regression)
Jakub Jelinek [Mon, 15 Aug 2016 09:50:33 +0000 (11:50 +0200)]
re PR debug/71906 (Fortran allocatable strings debug info type size regression)

PR debug/71906
* dwarf2out.c (string_types): New variable.
(gen_array_type_die): Change early_dwarf handling of
DW_AT_string_length, create DW_OP_call4 referencing the
length var temporarily.  Handle parameters that are pointers
to string length.
(adjust_string_types): New function.
(gen_subprogram_die): Temporarily set string_types to local var,
call adjust_string_types if needed.
(non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
New functions.
(resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.

* trans-decl.c (gfc_get_symbol_decl): Call gfc_finish_var_decl
for decl's character length before gfc_finish_var_decl on the
decl itself.

From-SVN: r239469

8 years agoEnhance mark_spam.py script
Martin Liska [Mon, 15 Aug 2016 09:30:44 +0000 (11:30 +0200)]
Enhance mark_spam.py script

* mark_spam.py: Add error handling and reset
another properties of attachments and bugs.

From-SVN: r239467

8 years agoinstall.texi (*-*-solaris2*): Fix version number and document requirement on GNU...
Eric Botcazou [Mon, 15 Aug 2016 09:16:17 +0000 (09:16 +0000)]
install.texi (*-*-solaris2*): Fix version number and document requirement on GNU make for building libjava...

* doc/install.texi (*-*-solaris2*): Fix version number and document
requirement on GNU make for building libjava with the Solaris linker.

From-SVN: r239464

8 years agore PR testsuite/72840 (PASS->NA: 20_util/ratio/cons/cons_overflow_neg.cc)
Thomas Preud'homme [Mon, 15 Aug 2016 09:14:15 +0000 (09:14 +0000)]
re PR testsuite/72840 (PASS->NA: 20_util/ratio/cons/cons_overflow_neg.cc)

2016-08-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    PR libstdc++/72840
    * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Fix dg-error
    syntax.

From-SVN: r239463

8 years agore PR tree-optimization/72824 (Signed floating point zero semantics broken at optimiz...
Jakub Jelinek [Mon, 15 Aug 2016 08:31:05 +0000 (10:31 +0200)]
re PR tree-optimization/72824 (Signed floating point zero semantics broken at optimization level -O3 (tree-loop-distribute-patterns))

PR tree-optimization/72824
* tree-loop-distribution.c (const_with_all_bytes_same)
<case VECTOR_CST>: Fix a typo.

* gcc.c-torture/execute/ieee/pr72824-2.c: New test.

From-SVN: r239461

8 years agoDaily bump.
GCC Administrator [Mon, 15 Aug 2016 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239460

8 years agore PR fortran/70598 (Fortran OpenACC host_data construct ICE)
Chung-Lin Tang [Sun, 14 Aug 2016 18:19:10 +0000 (18:19 +0000)]
re PR fortran/70598 (Fortran OpenACC host_data construct ICE)

2016-08-14  Chung-Lin Tang  <cltang@codesourcery.com>

PR fortran/70598

gcc/fortran/
* openmp.c (resolve_omp_clauses): Adjust use_device clause
handling to only allow pointers and arrays.

gcc/testsuite/
* gfortran.dg/goacc/host_data-tree.f95: Adjust to use pointers
in use_device clause.
* gfortran.dg/goacc/uninit-use-device-clause.f95: Likewise.
* gfortran.dg/goacc/list.f95: Adjust to catch
"neither a POINTER nor an array" error messages.

libgomp/
* testsuite/libgomp.oacc-fortran/host_data-1.f90: New test.

From-SVN: r239457

8 years agoavx512ifmaintrin.h: Fix whitespace.
Uros Bizjak [Sun, 14 Aug 2016 12:37:49 +0000 (14:37 +0200)]
avx512ifmaintrin.h: Fix whitespace.

* config/i386/avx512ifmaintrin.h: Fix whitespace.
* config/i386/avx512ifmavlintrin.h: Ditto.
* config/i386/avx512vbmiintrin.h: Ditto.
* config/i386/avx512vbmivlintrin.h: Ditto.
* config/i386/avx512vlbwintrin.h: Ditto.
* config/i386/avx512vldqintrin.h: Ditto.
* config/i386/avx512vlintrin.h: Ditto.

From-SVN: r239455

8 years agoavx512bwintrin.h: Whitespace fixes.
Uros Bizjak [Sun, 14 Aug 2016 11:48:36 +0000 (13:48 +0200)]
avx512bwintrin.h: Whitespace fixes.

* config/i386/avx512bwintrin.h: Whitespace fixes.
* config/i386/avx512dqintrin.h: Ditto.

From-SVN: r239454

8 years agore PR target/76342 (AVX512: _mm512_undefined_epi32() intrinsic missing (incorrectly...
Uros Bizjak [Sun, 14 Aug 2016 11:24:18 +0000 (13:24 +0200)]
re PR target/76342 (AVX512: _mm512_undefined_epi32() intrinsic missing (incorrectly named _mm512_undefined_si512))

PR target/76342
* config/i386/avx512fintrin.h (_mm512_undefined_epi32):
Renamed from _mm512_undefined_si512.
(_mm_undefined_si512): New definition.

testsuite/ChangeLog:

PR target/76342
* gcc.target/i386/pr76342.c: New test.

From-SVN: r239453

8 years agoDaily bump.
GCC Administrator [Sun, 14 Aug 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239452

8 years agoinclhack.def (hpux_longjmp): New fix.
John David Anglin [Sat, 13 Aug 2016 18:08:15 +0000 (18:08 +0000)]
inclhack.def (hpux_longjmp): New fix.

* inclhack.def (hpux_longjmp): New fix.
* fixincl.x: Regenerate.
* tests/base/setjmp.h: New test file.

From-SVN: r239446

8 years agotree-ssa-forwprop.c (pass_forwprop::execute): Propagate into PHIs and update the...
Richard Biener [Sat, 13 Aug 2016 08:04:46 +0000 (08:04 +0000)]
tree-ssa-forwprop.c (pass_forwprop::execute): Propagate into PHIs and update the lattice for its def.

2016-08-13  Richard Biener  <rguenther@suse.de>

* tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
into PHIs and update the lattice for its def.

From-SVN: r239444

8 years agolibgo: don't unset in shell script
Ian Lance Taylor [Sat, 13 Aug 2016 02:52:42 +0000 (02:52 +0000)]
libgo: don't unset in shell script

    Reportedly ksh fails to unset a variable that was not previously set.
    Change match.sh and gotest to not unset LANG, but instead set LANG=C.
    Also don't combine exporting and setting variable in a single statement.

    Reviewed-on: https://go-review.googlesource.com/26999

From-SVN: r239443

8 years agocrypto/aes, hash/crc32: ignore s390x specific files for now
Ian Lance Taylor [Sat, 13 Aug 2016 00:19:56 +0000 (00:19 +0000)]
crypto/aes, hash/crc32: ignore s390x specific files for now

    These files are used to select s390x assembler support in the gc
    toolchain.  We don't currently have that support, as it is written in
    the cmd/asm syntax rather than gas syntax.  Mark the files to be ignored
    for now, falling back to the default implementations.

    Patch by Andreas Krebbel.

    Reviewed-on: https://go-review.googlesource.com/26994

From-SVN: r239442

8 years agoDaily bump.
GCC Administrator [Sat, 13 Aug 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239441

8 years agosyscall: remove exec_solaris_test.go
Ian Lance Taylor [Sat, 13 Aug 2016 00:14:19 +0000 (00:14 +0000)]
syscall: remove exec_solaris_test.go

    It is testing functionality that gccgo does not need and does not
    support.

    Reviewed-on: https://go-review.googlesource.com/26992

From-SVN: r239438

8 years agore PR c/71512 (ICE: verify_gimple failed with UBSAN)
Jakub Jelinek [Fri, 12 Aug 2016 19:56:26 +0000 (21:56 +0200)]
re PR c/71512 (ICE: verify_gimple failed with UBSAN)

PR c/71512
* ubsan.c (instrument_si_overflow): Pass true instead of false
to gsi_replace.
(pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
of bbs.  Return TODO_cleanup_cfg if any returned true.

* g++.dg/ubsan/pr71512.C: New test.
* c-c++-common/ubsan/pr71512-1.c: New test.
* c-c++-common/ubsan/pr71512-2.c: New test.

From-SVN: r239430

8 years agovsx.md (vsx_concat_<mode>): Add support for the ISA 3.0 MTVSRDD instruction.
Michael Meissner [Fri, 12 Aug 2016 19:40:37 +0000 (19:40 +0000)]
vsx.md (vsx_concat_<mode>): Add support for the ISA 3.0 MTVSRDD instruction.

[gcc]
2016-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
ISA 3.0 MTVSRDD instruction.
(vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
vecperm.

[gcc/testsuite]
2016-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/vec-init-1.c: New tests to test various
vector initialization options.
* gcc.target/powerpc/vec-init-2.c: Likewise.
* gcc.target/powerpc/vec-init-3.c: New test to make sure MTVSRDD
is generated on ISA 3.0.

From-SVN: r239428

8 years agore PR tree-optimization/71083 (Unaligned bit-field address when predictive commoning)
Bernd Edlinger [Fri, 12 Aug 2016 19:30:39 +0000 (19:30 +0000)]
re PR tree-optimization/71083 (Unaligned bit-field address when predictive commoning)

2016-08-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR tree-optimization/71083
        * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
        bitfield access when possible.

From-SVN: r239426

8 years agoFix PR middle-end/71654 (missed shortening of a compare)
Patrick Palka [Fri, 12 Aug 2016 16:07:40 +0000 (16:07 +0000)]
Fix PR middle-end/71654 (missed shortening of a compare)

gcc/ChangeLog:

PR middle-end/71654
* match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
sign-changing cast from a shorter unsigned type to a wider
signed type.

gcc/testsuite/ChangeLog:

PR middle-end/71654
* gcc.dg/c-c++-common/pr71654.c: New test.
* gcc.dg/tree-ssa/vrp23: Add -fno-tree-forwprop to
dg-options.
* gcc.dg/tree-ssa/vrp24: Likewise.

From-SVN: r239421

8 years agore PR c/67410 (c/c-typeck.c references out of bounds array)
Jakub Jelinek [Fri, 12 Aug 2016 16:04:33 +0000 (18:04 +0200)]
re PR c/67410 (c/c-typeck.c references out of bounds array)

PR c/67410
* c-typeck.c (set_nonincremental_init_from_string): Use / instead of
% to determine val element to change.  Assert that
wchar_bytes * charwidth fits into val array.

* gcc.dg/pr67410.c: New test.

Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r239419

8 years agosse.md (avx512dq_vextract<shuffletype>64x2_1_maskm, [...]): Use Yk constraint instead...
Jakub Jelinek [Fri, 12 Aug 2016 15:52:03 +0000 (17:52 +0200)]
sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm, [...]): Use Yk constraint instead of k.

* config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.

From-SVN: r239418

8 years agors6000.c (rs6000_builtin_vectorization_cost): Correct costs for vec_construct.
Bill Schmidt [Fri, 12 Aug 2016 15:23:34 +0000 (15:23 +0000)]
rs6000.c (rs6000_builtin_vectorization_cost): Correct costs for vec_construct.

2016-08-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
Correct costs for vec_construct.

From-SVN: r239417

8 years agore PR tree-optimization/69848 (poor vectorization of a loop from SPEC2006 464.h264ref)
Bin Cheng [Fri, 12 Aug 2016 14:58:20 +0000 (14:58 +0000)]
re PR tree-optimization/69848 (poor vectorization of a loop from SPEC2006 464.h264ref)

PR tree-optimization/69848
* tree-vectorizer.h (enum vect_def_type): New condition reduction
type CONST_COND_REDUCTION.
* tree-vect-loop.c (vectorizable_reduction): Support new condition
reudction type CONST_COND_REDUCTION.

gcc/testsuite
PR tree-optimization/69848
* gcc.dg/vect/vect-pr69848.c: New test.

From-SVN: r239416

8 years agore PR testsuite/71008 (FAIL: gcc.target/i386/avx512f-vprord-1.c scan-assembler-times...
Uros Bizjak [Fri, 12 Aug 2016 13:44:13 +0000 (15:44 +0200)]
re PR testsuite/71008 (FAIL: gcc.target/i386/avx512f-vprord-1.c scan-assembler-times vprord)

PR testsuite/71008
* gcc.target/i386/avx512f-vprord-1.c: Scan also for vprold.
* gcc.target/i386/avx512f-vprorq-1.c: Scan also for vprolq.
* gcc.target/i386/avx512vl-vprord-1.c: Scan also for vprold.
* gcc.target/i386/avx512vl-vprorq-1.c: Scan also for vprolq.

From-SVN: r239415

8 years agore PR tree-optimization/57326 (Piecewise folding of operations on PHI nodes)
Richard Biener [Fri, 12 Aug 2016 12:58:15 +0000 (12:58 +0000)]
re PR tree-optimization/57326 (Piecewise folding of operations on PHI nodes)

2016-08-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/57326
* tree-ssa-pre.c (fully_constant_expression): Handle simplification
returning an SSA name.
(phi_translate_1): When fully_constant_expression returns a NAME
make sure we have a leader for it.

* gcc.dg/tree-ssa/ssa-pre-32.c: New testcase.
* gcc.dg/tree-ssa/loadpre14.c: Adjust.
* gcc.dg/tree-ssa/pr35287.c: Likewise.
* gcc.target/i386/pr45685.c: Likewise.
* gcc.dg/tree-ssa/predcom-1.c: Disable PRE.
* gcc.dg/tree-ssa/predcom-2.c: Likewise.
* gcc.dg/tree-ssa/predcom-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-sink-10.c: Likewise.
* gfortran.dg/pr34163.f90: Likewise.

From-SVN: r239414

8 years agoCreate x.gcov file for binary w/o x.gcda file (PR
Martin Liska [Fri, 12 Aug 2016 12:23:32 +0000 (14:23 +0200)]
Create x.gcov file for binary w/o x.gcda file (PR

* g++.dg/gcov/gcov-16.C: New test.
* lib/gcov.exp: Support new argument for run-gcov function.
    Adam Fineman  <afineman@afineman.com>

* gcov.c (process_file): Create .gcov file when .gcda
file is missing.

From-SVN: r239413

8 years agoAdd test coverage for PR gcov-profile/35590
Martin Liska [Fri, 12 Aug 2016 12:12:51 +0000 (14:12 +0200)]
Add test coverage for PR gcov-profile/35590

PR gcov-profile/35590
* gcc.dg/tree-prof/val-prof-7.c: Improve test coverage.

From-SVN: r239412

8 years agore PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
Marek Polacek [Fri, 12 Aug 2016 10:30:47 +0000 (10:30 +0000)]
re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)

PR c/7652
gcc/
* alias.c (find_base_value): Adjust fall through comment.
* cfgexpand.c (expand_debug_expr): Likewise.
* combine.c (find_split_point): Likewise.
(expand_compound_operation): Likewise.  Add FALLTHRU.
(make_compound_operation): Adjust fall through comment.
(canon_reg_for_combine): Add FALLTHRU.
(force_to_mode): Adjust fall through comment.
(simplify_shift_const_1): Likewise.
(simplify_comparison): Likewise.
* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
FALLTHRU.
* config/aarch64/predicates.md: Likewise.
* config/i386/i386.c (function_arg_advance_32): Likewise.
(ix86_gimplify_va_arg): Likewise.
(print_reg): Likewise.
(ix86_print_operand): Likewise.
(ix86_build_const_vector): Likewise.
(ix86_expand_branch): Likewise.
(ix86_sched_init_global): Adjust fall through comment.
(ix86_expand_args_builtin): Add FALLTHRU.
(ix86_expand_builtin): Likewise.
(ix86_expand_vector_init_one_var): Likewise.
* config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
(rs6000_adjust_cost): Likewise.
(insn_must_be_first_in_group): Likewise.
* config/rs6000/rs6000.md: Likewise.  Adjust fall through comment.
* dbxout.c (dbxout_symbol): Adjust fall through comment.
* df-scan.c (df_uses_record): Likewise.
* dojump.c (do_jump): Add FALLTHRU.
* dwarf2out.c (mem_loc_descriptor): Likewise.  Adjust fall through
comment.
(resolve_args_picking_1): Adjust fall through comment.
(loc_list_from_tree_1): Likewise.
* expmed.c (make_tree): Likewise.
* expr.c (expand_expr_real_2): Add FALLTHRU.
(expand_expr_real_1): Likewise.  Adjust fall through comment.
* fold-const.c (const_binop): Adjust fall through comment.
(fold_truth_not_expr): Likewise.
(fold_cond_expr_with_comparison): Add FALLTHRU.
(fold_binary_loc): Likewise.
(contains_label_1): Adjust fall through comment.
(multiple_of_p): Likewise.
* gcov-tool.c (process_args): Add FALLTHRU.
* genattrtab.c (check_attr_test): Likewise.
(write_test_expr): Likewise.
* genconfig.c (walk_insn_part): Likewise.
* genpreds.c (validate_exp): Adjust fall through comment.
(needs_variable): Likewise.
* gensupport.c (get_alternatives_number): Add FALLTHRU.
(subst_dup): Likewise.
* gimple-pretty-print.c (dump_gimple_assign): Likewise.
* gimplify.c (gimplify_addr_expr): Adjust fall through comment.
(gimplify_scan_omp_clauses): Add FALLTHRU.
(goa_stabilize_expr): Likewise.
* graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
through comment.
* hsa-gen.c (get_address_from_value): Likewise.
* ipa-icf.c (sem_function::hash_stmt): Likewise.
* ira.c (ira_setup_alts): Add FALLTHRU.
* lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
comment.
* lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
* opts.c (common_handle_option): Likewise.
* read-rtl.c (read_rtx_code): Likewise.
* real.c (round_for_format): Likewise.
* recog.c (asm_operand_ok): Likewise.
* reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
* reload1.c (set_label_offsets): Likewise.
(eliminate_regs_1): Likewise.
(reload_reg_reaches_end_p): Likewise.
* rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
(rtx_cost): Likewise.
* sched-rgn.c (is_exception_free): Likewise.
* simplify-rtx.c (simplify_rtx): Adjust fall through comment.
* stor-layout.c (int_mode_for_mode): Likewise.
* toplev.c (print_to_asm_out_file): Likewise.
(print_to_stderr): Likewise.
* tree-cfg.c (gimple_verify_flow_info): Likewise.
* tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
(chrec_fold_multiply): Likewise.
(evolution_function_is_invariant_rec_p): Likewise.
(for_each_scev_op): Likewise.
* tree-data-ref.c (siv_subscript_p): Likewise.
(get_references_in_stmt): Likewise.
* tree.c (find_placeholder_in_expr): Adjust fall through comment.
(substitute_in_expr): Likewise.
(type_cache_hasher::equal): Likewise.
(walk_type_fields): Likewise.
* var-tracking.c (adjust_mems): Add FALLTHRU.
(set_dv_changed): Adjust fall through comment.
* varasm.c (default_function_section): Add FALLTHRU.
gcc/c-family/
* c-common.c (scalar_to_vector): Adjust fall through comment.
* c-opts.c (c_common_handle_option): Likewise.
* c-pragma.c (handle_pragma_pack): Add FALLTHRU.
* c-pretty-print.c (c_pretty_printer::postfix_expression): Adjust
fall through comment.
* cilk.c (extract_free_variables): Add FALLTHRU.
gcc/c/
* c-parser.c (c_parser_external_declaration): Add FALLTHRU.
(c_parser_postfix_expression): Likewise.
* c-typeck.c (build_unary_op): Adjust fall through comment.
(c_mark_addressable): Likewise.
gcc/cp/
* call.c (add_builtin_candidate): Add FALLTHRU.
(build_integral_nontype_arg_conv): Adjust fall through comment.
(build_new_op_1): Add FALLTHRU.
(convert_like_real): Adjust fall through comment.
* class.c (fixed_type_or_null): Likewise.
* constexpr.c (cxx_eval_constant_expression): Likewise.
(potential_constant_expression_1): Likewise.  Add FALLTHRU.
* cp-gimplify.c (cp_gimplify_expr): Adjust fall through comment.
(cp_fold): Add FALLTHRU.
* cvt.c (build_expr_type_conversion): Adjust fall through comment.
* cxx-pretty-print.c (pp_cxx_unqualified_id): Add FALLTHRU.
(pp_cxx_qualified_id): Likewise.
(cxx_pretty_printer::constant): Adjust fall through comment.
(cxx_pretty_printer::primary_expression): Add FALLTHRU.
(pp_cxx_pm_expression): Adjust fall through comment.
(cxx_pretty_printer::expression): Add FALLTHRU.
(cxx_pretty_printer::declaration_specifiers): Reformat code.
(pp_cxx_type_specifier_seq): Adjust fall through comment.
(pp_cxx_ptr_operator): Likewise.  Add FALLTHRU.
* error.c (dump_type): Adjust fall through comment.
(dump_decl): Likewise.
* mangle.c (write_type): Likewise.
* method.c (synthesized_method_walk): Add FALLTHRU.
* name-lookup.c (arg_assoc_type): Likewise.
* parser.c (cp_lexer_print_token): Adjust fall through comment.
(cp_parser_primary_expression): Add FALLTHRU.
(cp_parser_operator): Likewise.
* pt.c (find_parameter_packs_r): Likewise.
(tsubst_aggr_type): Adjust fall through comment.
* semantics.c (finish_omp_clauses): Add FALLTHRU.
* tree.c (lvalue_kind): Likewise.
gcc/fortran/
* decl.c (match_attr_spec): Add FALLTHRU.
* primary.c (match_arg_list_function): Likewise.
* resolve.c (resolve_operator): Adjust fall through comment.
(fixup_charlen): Add FALLTHRU.
(resolve_allocate_expr): Adjust fall through comment.
* trans-array.c (gfc_conv_ss_startstride): Add FALLTHRU.
* trans-intrinsic.c (gfc_conv_intrinsic_len): Adjust fall through
comment.
gcc/java/
* expr.c (java_truthvalue_conversion): Adjust fall through comment.
* jcf-io.c (verify_constant_pool): Likewise.
* typeck.c (promote_type): Likewise.
gcc/objc/
* objc-encoding.c (encode_type): Add FALLTHRU.
libcpp/
* lex.c (search_line_fast): Add FALLTHRU.
(_cpp_lex_direct): Likewise.
(cpp_token_val_index): Adjust fall through comment.
* macro.c (parse_params): Add FALLTHRU.
* pch.c (count_defs): Adjust fall through comment.
(write_defs): Likewise.
libiberty/
* cp-demangle.c (d_print_mod): Add FALLTHRU.

From-SVN: r239410

8 years agore PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
Marek Polacek [Fri, 12 Aug 2016 10:15:57 +0000 (10:15 +0000)]
re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)

PR c/7652
* tree-complex.c (expand_complex_division): Add missing break.

From-SVN: r239409

8 years agore PR sanitizer/71042 (libtsan requires __pointer_chk_guard@GLIBC_PRIVATE (6))
Jakub Jelinek [Fri, 12 Aug 2016 08:53:07 +0000 (10:53 +0200)]
re PR sanitizer/71042 (libtsan requires __pointer_chk_guard@GLIBC_PRIVATE (6))

PR sanitizer/71042
* tsan/tsan_platform_linux.cc: Cherry-pick upstream r278292.
* tsan/tsan_rtl_aarch64.S: Likewise.

From-SVN: r239407

8 years agopasses.c (execute_todo): Do not push/pop TV_TODO.
Richard Biener [Fri, 12 Aug 2016 07:38:24 +0000 (07:38 +0000)]
passes.c (execute_todo): Do not push/pop TV_TODO.

2016-08-12  Richard Biener  <rguenther@suse.de>

* passes.c (execute_todo): Do not push/pop TV_TODO.
(execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
(execute_one_pass): Likewise.
* common.opt (ftime-report-details): New switch.
* doc/invoke.texi (ftime-report-details): Document.
* timevar.h (timer::print_row): Adjust signature.
(timer::all_zero): New static helper.
(timer::child_map_t): New typedef.
(timer::time_var_def): Add children field.
* timevar.c (timer::named_items::print): Adjust.
(timer::~timer): Free timevar recorded children.
(timer::pop_internal): When -ftime-report-details record
time spent in sub-timevars.
(timer::print_row): Adjust.
(timer::print): Print sub-timevar stats, use all_zero.
* timevar.def (TV_TODO): Remove.

From-SVN: r239406

8 years agore PR target/72851 (memory hog with -O3 on s390x-linux-gnu)
Richard Biener [Fri, 12 Aug 2016 07:34:40 +0000 (07:34 +0000)]
re PR target/72851 (memory hog with -O3 on s390x-linux-gnu)

2016-08-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/72851
* tree-ssa-propagate.c: Include cfganal.h.  Rewrite block and stmt
worklists to use bitmaps indexed in execution order.
(executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
(cfg_blocks): Make a bitmap.
(bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
New globals.
(cfg_blocks_empty_p): Adjust.
(cfg_blocks_add): Likewise.
(cfg_blocks_get): Likewise.
(add_ssa_edge): Likewise.
(add_control_edge): Likewise.
(simulate_stmt): Likewise.
(process_ssa_edge_worklist): Likewise.
(simulate_block): Likewise.
(ssa_prop_init): Compute PRE order and stmt UIDs.
(ssa_prop_fini): Adjust.
(ssa_propagate): Adjust.

* gcc.dg/torture/pr72851.c: New testcase.

From-SVN: r239405

8 years agotree-vrp.c (vrp_visit_phi_node): Allow a last iteration if the currently executable...
Richard Biener [Fri, 12 Aug 2016 07:29:10 +0000 (07:29 +0000)]
tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if the currently executable edges have fixed ranges.

2016-08-12  Richard Biener  <rguenther@suse.de>

* tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
the currently executable edges have fixed ranges.  Always
go through update_value_range.

From-SVN: r239404

8 years ago[PR63240] generate debug info for defaulted member functions
Alexandre Oliva [Fri, 12 Aug 2016 07:11:50 +0000 (07:11 +0000)]
[PR63240] generate debug info for defaulted member functions

This implements <http://dwarfstd.org/ShowIssue.php?issue=141215.3>, a
proposal already accepted for inclusion in DWARF-5, but using
DW_AT_GNU_defaulted instead of DW_AT_defaulted as the attribute name,
because the attribute id for DW_AT_defaulted is not yet publicly
available.

for  include/ChangeLog

PR debug/63240
* dwarf2.def (DW_AT_deleted, DW_AT_defaulted): New.
* dwarf2.h (enu dwarf_defaulted_attribute): New.

for  gcc/ChangeLog

PR debug/63240
* langhooks-def.h
(LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
(LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
(LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
(LANG_HOOKS_DECLS): Add it.
* langhooks.h (struct lang_hooks_for_decls): Add
function_decl_defaulted.  Const_tree-ify
function_decl_explicit_p and function_decl_deleted_p.
* dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
attribute.  Add DW_AT_deleted instead of DW_AT_GNU_deleted,
also at strict DWARF v5.

for  gcc/cp/ChangeLog

PR debug/63240
* cp-objcp-common.c (cp_function_decl_defaulted): New.
(cp_function_decl_explicit_p): Const_tree-ify.
(cp_function_decl_deleted_p): Likewise.
* cp-objcp-common.h (cp_function_decl_defaulted): Declare.
(cp_function_decl_explicit_p): Const_tree-ify.
(cp_function_decl_deleted_p): Likewise.
(LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Redefine.

for  gcc/testsuite/ChangeLog

PR debug/63240
* g++.dg/debug/dwarf2/defaulted-member-function-1.C: New.
* g++.dg/debug/dwarf2/defaulted-member-function-2.C: New.
* g++.dg/debug/dwarf2/defaulted-member-function-3.C: New.
* g++.dg/debug/dwarf2/deleted-member-function.C: Expect
DW_AT_deleted.

From-SVN: r239403

8 years ago[PR55641] drop spurious const_type from reference_type variables
Alexandre Oliva [Fri, 12 Aug 2016 07:11:36 +0000 (07:11 +0000)]
[PR55641] drop spurious const_type from reference_type variables

Although C++ reference types, denoted by DW_TAG_reference_type in
DWARFv2+ debug info, are unchangeable, we output names of reference type
with DW_TAG_const_type, because internally we mark such variables as
TREE_READONLY.  That's an internal implementation detail that shouldn't
leak to debug information.  This patch fixes this.

for  gcc/ChangeLog

PR debug/55641
* dwarf2out.c (decl_quals): Don't map TREE_READONLY to
TYPE_QUAL_CONST in reference-typed decls.

for  gcc/testsuite/ChangeLog

PR debug/55641
* g++.dg/debug/dwarf2/ref-1.C: New.

From-SVN: r239402

8 years ago[PR49366] emit loc exprs for C++ non-virtual pmf template value parms
Alexandre Oliva [Fri, 12 Aug 2016 07:11:23 +0000 (07:11 +0000)]
[PR49366] emit loc exprs for C++ non-virtual pmf template value parms

We used to emit, in debug information, the values bound to pointer to
member function template parameters only when they were NULL or
virtual member functions, because those can be represented with
DW_AT_const_value.

In order to represent the symbolic pointer to member function
constants for non-virtual member functions, we'd need to be able to
emit relocations for part of DW_AT_const_value, which we don't.  The
more viable alternative is to use DW_AT_location to represent such
values, as slated for inclusion in DWARFv5, according to
<URL:http://www.dwarfstd.org/ShowIssue.php?issue=130412.1>.

With this patch, when we can't emit a DW_AT_const_value, we emit each
"member" of the pointer to member function "record" as a
DW_OP_stack_value DW_OP_piece, as long as the referenced member
function is output in the same translation unit, otherwise we'd get
relocations to external symbols, something to avoid in debug sections.

for  gcc/ChangeLog

PR debug/49366
* dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
in DW_OP_pieces, just enough to handle pointers to member
functions.
(gen_remaining_tmpl_value_param_die_attribute): Use a location
expression on DWARFv5 if a constant value doesn't work.

for  gcc/testsuite/ChangeLog

PR debug/49366
* g++.dg/debug/dwarf2/template-params-12.H: New.
* g++.dg/debug/dwarf2/template-params-12f.C: New.
* g++.dg/debug/dwarf2/template-params-12g.C: New.
* g++.dg/debug/dwarf2/template-params-12n.C: New.
* g++.dg/debug/dwarf2/template-params-12s.C: New.
* g++.dg/debug/dwarf2/template-params-12u.C: New.
* g++.dg/debug/dwarf2/template-params-12v.C: New.
* g++.dg/debug/dwarf2/template-params-12w.C: New.

From-SVN: r239401

8 years agoDaily bump.
GCC Administrator [Fri, 12 Aug 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239400

8 years agoAdd selftests to selftest.c
David Malcolm [Thu, 11 Aug 2016 23:36:46 +0000 (23:36 +0000)]
Add selftests to selftest.c

gcc/ChangeLog:
* selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
* selftest.c (selftest::test_assertions): New function.
(selftest::selftest_c_tests): New function.
* selftest.h (selftest::selftest_c_tests): New declaration.

From-SVN: r239397

8 years agore PR rtl-optimization/72855 (Long compile time due to integrity checking during...
Richard Biener [Thu, 11 Aug 2016 22:20:41 +0000 (22:20 +0000)]
re PR rtl-optimization/72855 (Long compile time due to integrity checking during dataflow analysis per loop)

2016-08-11  Richard Biener  <rguenther@suse.de>
    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR rtl-optimization/72855
* df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.

Co-Authored-By: Bill Schmidt <wschmidt@linux.vnet.ibm.com>
From-SVN: r239395

8 years agore PR target/72863 (Powerpc64le: redundant swaps when using vec_vsx_ld/st)
Bill Schmidt [Thu, 11 Aug 2016 21:39:49 +0000 (21:39 +0000)]
re PR target/72863 (Powerpc64le: redundant swaps when using vec_vsx_ld/st)

[gcc]

2016-08-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/72863
* vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
(vsx_store_<mode>): Likewise.

[gcc/testsuite]

2016-08-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/72863
* gcc.target/powerpc/pr72863.c: New test.

From-SVN: r239394

8 years agoos: fix build tags for dir_regfile.go
Ian Lance Taylor [Thu, 11 Aug 2016 21:36:13 +0000 (21:36 +0000)]
os: fix build tags for dir_regfile.go

    We want to build dir_regfile.go if not GNU/linux, and not solaris/386,
    and not solaris/sparc.  The latter two conditions were incorrect.  To
    write ! solaris/386 we have to write !solaris !386.  I forgot De
    Morgan's Law.

    Reviewed-on: https://go-review.googlesource.com/26870

From-SVN: r239393

8 years agoconstexpr-lambda6.C: Remove dg-do run.
Uros Bizjak [Thu, 11 Aug 2016 21:30:35 +0000 (23:30 +0200)]
constexpr-lambda6.C: Remove dg-do run.

* g++.dg/cpp1z/constexpr-lambda6.C: Remove dg-do run.

From-SVN: r239392

8 years ago* testsuite/ChangeLog: Remove merge marker.
Uros Bizjak [Thu, 11 Aug 2016 19:07:43 +0000 (21:07 +0200)]
* testsuite/ChangeLog: Remove merge marker.

From-SVN: r239385

8 years agoSupport TImode CONST_WIDE_INT store in 64-bit STV
H.J. Lu [Thu, 11 Aug 2016 17:36:52 +0000 (17:36 +0000)]
Support TImode CONST_WIDE_INT store in 64-bit STV

Support TImode CONST_WIDE_INT store generated from piecewise store.
Need to verify performance impact before enabling TImode CONST_INT
store for __int128.

gcc/

* config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
TImode CONST_WIDE_INT store.
(timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.

gcc/testsuite/

* gcc.target/i386/pieces-strcpy-1.c: New test.
* gcc.target/i386/pieces-strcpy-2.c: Likewise.

From-SVN: r239383

8 years agore PR c++/72868 (Constexpr expressions mistreat case ranges)
Jakub Jelinek [Thu, 11 Aug 2016 15:59:53 +0000 (17:59 +0200)]
re PR c++/72868 (Constexpr expressions mistreat case ranges)

PR c++/72868
* constexpr.c (label_matches): Handle case range expressions.

* g++.dg/cpp1y/constexpr-switch4.C: New test.

From-SVN: r239379

8 years agoUse TImode for piecewise move in 64-bit mode
H.J. Lu [Thu, 11 Aug 2016 15:51:01 +0000 (15:51 +0000)]
Use TImode for piecewise move in 64-bit mode

Use TImode for piecewise move in 64-bit mode.  We should use TImode in
32-bit mode and use OImode or XImode if they are available.  But since
by_pieces_ninsns determines the widest mode with MAX_FIXED_MODE_SIZE,
we can only use TImode in 64-bit mode.

gcc/

* config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
mode if unaligned SSE load and store are optimal.

gcc/testsuite/

* gcc.target/i386/pieces-memcpy-1.c: New test.
* gcc.target/i386/pieces-memcpy-2.c: Likewise.
* gcc.target/i386/pieces-memcpy-3.c: Likewise.
* gcc.target/i386/pieces-memcpy-4.c: Likewise.
* gcc.target/i386/pieces-memcpy-5.c: Likewise.
* gcc.target/i386/pieces-memcpy-6.c: Likewise.

From-SVN: r239378

8 years agoPR c++/73456 - ICE with constrained parameter pack.
Jason Merrill [Thu, 11 Aug 2016 15:43:12 +0000 (11:43 -0400)]
PR c++/73456 - ICE with constrained parameter pack.

* logic.cc (non_atomic_constraint_p): Handle EXPR_PACK_EXPANSION.

From-SVN: r239376

8 years agoInclude <stdlib.h> in intrinsics/random.c
Rainer Orth [Thu, 11 Aug 2016 15:26:07 +0000 (15:26 +0000)]
Include <stdlib.h> in intrinsics/random.c

* intrinsics/random.c: Include <stdlib.h>.

From-SVN: r239375

8 years agoFix up ChangeLog entry.
Jakub Jelinek [Thu, 11 Aug 2016 15:09:16 +0000 (17:09 +0200)]
Fix up ChangeLog entry.

From-SVN: r239373

8 years agoImplement C++17 make_from_tuple.
Ville Voutilainen [Thu, 11 Aug 2016 14:51:47 +0000 (17:51 +0300)]
Implement C++17 make_from_tuple.

* include/std/tuple (__make_from_tuple_impl, make_from_tuple): New.
* testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.

From-SVN: r239372

8 years agore PR c/72816 (ICE on x86_64-linux-gnu (tree check: expected tree that contains ...
Jakub Jelinek [Thu, 11 Aug 2016 14:50:09 +0000 (16:50 +0200)]
re PR c/72816 (ICE on x86_64-linux-gnu (tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1282))

PR c/72816
* c-decl.c (grokdeclarator): When adding TYPE_DOMAIN for flexible
array member through typedef, for orig_qual_indirect == 0 clear
orig_qual_type.

* gcc.dg/pr72816.c: New test.

From-SVN: r239371

8 years agoImplement LWG 2758.
Ville Voutilainen [Thu, 11 Aug 2016 14:45:23 +0000 (17:45 +0300)]
Implement LWG 2758.

* include/bits/basic_string.h
(append(__sv_type, size_type, size_type)): Turn into a template,
change parameter type, constrain, add a conversion to __sv_type
from the dependent parameter type.
(assign(__sv_type, size_type, size_type)): Likewise.
(insert(size_type, __sv_type, size_type, size_type)): Likewise.
(replace(size_type, size_type, __sv_type, size_type, size_type)):
Likewise.
(compare(size_type, size_type,__sv_type, size_type, size_type)):
Likewise.
* testsuite/21_strings/basic_string/lwg2758.cc: New.

From-SVN: r239370

8 years agomark_spam.py: mark attachments as obsolete and rename them
Martin Liska [Thu, 11 Aug 2016 13:40:37 +0000 (15:40 +0200)]
mark_spam.py: mark attachments as obsolete and rename them

* mark_spam.py: Mark attachments as obsolete and rename them.

From-SVN: r239368

8 years agore PR tree-optimization/71083 (Unaligned bit-field address when predictive commoning)
Bernd Edlinger [Thu, 11 Aug 2016 13:07:29 +0000 (13:07 +0000)]
re PR tree-optimization/71083 (Unaligned bit-field address when predictive commoning)

2016-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR tree-optimization/71083
        * tree-predcom.c (ref_at_iteration): Correctly align the
        reference type.

testsuite:
2016-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR tree-optimization/71083
        * gcc.c-torture/execute/pr71083.c: New test.
        * gnat.dg/loop_optimization23.adb: New test.
        * gnat.dg/loop_optimization23_pkg.ads: New test.
        * gnat.dg/loop_optimization23_pkg.adb: New test.

From-SVN: r239362

8 years agoS/390: Provide low-level builtins with __int128 ops.
Andreas Krebbel [Thu, 11 Aug 2016 11:15:50 +0000 (11:15 +0000)]
S/390: Provide low-level builtins with __int128 ops.

gcc/ChangeLog:

2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-builtin-types.def: Add INT128 types.
* config/s390/s390-builtins.def: Add INT128 variants for the add
sub low-level builtins dealing with TImode.
* config/s390/s390.c (s390_expand_builtin): Allow mode conversions
via subreg when expanding a builtin.
* config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
Fix comment.
* config/s390/vecintrin.h: Adjust builtin names accordingly.
* config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
("vec_addc<mode>", "vec_addc_u128"): Merge to
"vacc<bhfgq>_<mode>".
("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
("vec_subc<mode>", "vec_subc_u128"): Merge to
"vscbi<bhfgq>_<mode>".
("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.

From-SVN: r239361

8 years agoS/390: Fix vlvg vlgv low-level builtins.
Andreas Krebbel [Thu, 11 Aug 2016 11:14:12 +0000 (11:14 +0000)]
S/390: Fix vlvg vlgv low-level builtins.

gcc/ChangeLog:

2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
and s390_vlgv* builtins as element selector.

From-SVN: r239360

8 years agoaarch64-simd.md (vcond<mode><mode>): Delete unused declaration.
Bin Cheng [Thu, 11 Aug 2016 10:29:51 +0000 (10:29 +0000)]
aarch64-simd.md (vcond<mode><mode>): Delete unused declaration.

* config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
unused declaration.
(vcond<v_cmp_mixed><mode>): Ditto.
(vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.

From-SVN: r239359

8 years agoaarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init variable explicitly, also assert...
Bin Cheng [Thu, 11 Aug 2016 10:01:03 +0000 (10:01 +0000)]
aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init variable explicitly, also assert on it before use.

* config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>: Init
variable explicitly, also assert on it before use.

From-SVN: r239358

8 years agore PR tree-optimization/72772 (Missed SCEV after pass reordering@236440)
Richard Biener [Thu, 11 Aug 2016 09:02:04 +0000 (09:02 +0000)]
re PR tree-optimization/72772 (Missed SCEV after pass reordering@236440)

2016-08-11  Richard Biener  <rguenther@suse.de>

PR tree-optimization/72772
* cfgloopmanip.c (create_preheader): Use split_edge if there
is a single loop entry, avoiding degenerate PHIs.

* gcc.dg/graphite/pr35356-1.c: Adjust.
* gcc.dg/tree-ssa/pr59597.c: Likewise.

From-SVN: r239357

8 years agoReplace KISS PRNG with xorshift1024* using per-thread state.
Janne Blomqvist [Thu, 11 Aug 2016 08:58:55 +0000 (11:58 +0300)]
Replace KISS PRNG with xorshift1024* using per-thread state.

frontend:

2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>

* check.c (gfc_check_random_seed): Use new seed size in check.
* intrinsic.texi (RANDOM_NUMBER): Updated documentation.
(RANDOM_SEED): Likewise.

testsuite:

2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>

* gfortran.dg/random_7.f90: Take into account that the last seed
value is the special p value.
* gfortran.dg/random_seed_1.f90: Seed size is now constant.

libgfortran:
2016-08-11  Janne Blomqvist  <jb@gcc.gnu.org>

* intrinsics/random.c: Replace KISS with xorshift1024* using
per-thread state.
* runtime/main.c (init): Don't call random_seed_i4.

From-SVN: r239356

8 years agotree-ssa-threadbackward.c (pass_data_thread_jumps): Remove unconditional TODO_cleanup...
Richard Biener [Thu, 11 Aug 2016 08:49:56 +0000 (08:49 +0000)]
tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove unconditional TODO_cleanup_cfg.

2016-08-11  Richard Biener  <rguenther@suse.de>

* tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
unconditional TODO_cleanup_cfg.
(pass_thread_jumps::execute): Initialize loops, perform a CFG
cleanup only if we threaded a jump.

* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust.

From-SVN: r239355

8 years agoDaily bump.
GCC Administrator [Thu, 11 Aug 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239351

8 years agomissed from last commit
Alan Modra [Wed, 10 Aug 2016 23:12:56 +0000 (08:42 +0930)]
missed from last commit

From-SVN: r239343

8 years ago[LRA] Reload of slow mems
Alan Modra [Wed, 10 Aug 2016 23:12:11 +0000 (08:42 +0930)]
[LRA] Reload of slow mems

pr71680.c -m64 -O1 -mlra, ira output showing two problem insns.
(insn 7 5 26 3 (set (reg:SI 159 [ a ])
        (mem/c:SI (reg/f:DI 158) [1 a+0 S4 A8])) pr71680.c:13 464 {*movsi_internal1}
     (expr_list:REG_EQUIV (mem/c:SI (reg/f:DI 158) [1 a+0 S4 A8])
        (nil)))
(insn 26 7 27 3 (set (reg:DI 162)
        (unspec:DI [
                (fix:SI (subreg:SF (reg:SI 159 [ a ]) 0))
            ] UNSPEC_FCTIWZ)) pr71680.c:13 372 {fctiwz_sf}
     (expr_list:REG_DEAD (reg:SI 159 [ a ])
        (nil)))
Insn 26 requires that reg 159 be of class FLOAT_REGS.

first lra action:
deleting insn with uid = 7.
Changing pseudo 159 in operand 1 of insn 26 on equiv [r158:DI]
      Creating newreg=164, assigning class ALL_REGS to subreg reg r164
   26: r162:DI=unspec[fix(r164:SI#0)] 7
      REG_DEAD r159:SI
    Inserting subreg reload before:
   30: r164:SI=[r158:DI]
[snip]
      Change to class FLOAT_REGS for r164

Well, that didn't do much.  lra tried the equiv mem, found that didn't
work, and had to reload.  Effectively getting back to the two original
insns but r159 replaced with r164.  simplify_operand_subreg did not do
anything in this case because SLOW_UNALIGNED_ACCESS was true (wrongly
for power8, but that's beside the point).  So now we have, using
abbreviated rtl notation:
r164:SI=[r158:DI]
r162:DI=unspec[fix(r164:SI)]
The problem here is that the first insn isn't valid, due to the rs6000
backend not supporting SImode in fprs, and r164 must be an fpr to make
the second insn valid.

next lra action:
      Creating newreg=165 from oldreg=164, assigning class GENERAL_REGS to r165
   30: r165:SI=[r158:DI]
    Inserting insn reload after:
   31: r164:SI=r165:SI
so now we have
r165:SI=[r158:DI]
r164:SI=r165:SI
r162:DI=unspec[fix(r164:SI)]

This ought to be good on power8, except for one little thing.
r165 is GENERAL_REGS so the first insn is good, a gpr load from mem.
r164 is FLOAT_REGS, making the last insn good, a fctiwz.
The second insn ought to be a sldi, mtvsrd, xscvspdpn combination, but
that is only supported for SFmode.  So lra continue on reloading the
second insn, but in vain because it never tries anything other than
SImode and as noted above, SImode is not valid in fprs.

What this patch does is arrange to emit the two reloads needed for the
SLOW_UNALIGNED_ACCESS case at once, moving the subreg to the second
insn in order to switch modes, producing:

r164:SI=[r158:DI]
r165:SF=r164:SI#0
r162:DI=unspec[fix(r165:SF)]

I've also tidied a couple of other things:
1) "old" is unnecessary as it duplicated "operand".
2) Rejecting mem subregs due to SLOW_UNALIGNED_ACCESS only makes sense
if the original mode was not slow.

PR target/71680
* lra-constraints.c (simplify_operand_subreg): Allow subreg
mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
slow.  Emit two reloads for slow mem case, first loading in
fast innermode, then converting to required mode.
testsuite/
* gcc.target/powerpc/pr71680.c: New.

From-SVN: r239342

8 years ago* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.
Jason Merrill [Wed, 10 Aug 2016 22:38:34 +0000 (18:38 -0400)]
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.

From-SVN: r239340

8 years agoImplement C++17 constexpr if.
Jason Merrill [Wed, 10 Aug 2016 21:58:23 +0000 (17:58 -0400)]
Implement C++17 constexpr if.

* cp-tree.h (IF_STMT_CONSTEXPR_P): New.
* name-lookup.c (push_to_top_level, pop_from_top_level_1): Handle it.
* parser.h (struct cp_parser): Add in_discarded_stmt field.
* parser.c (cp_parser_selection_statement): Handle 'if constexpr'.
(cp_parser_jump_statement): Avoid deducing from a discarded return.
* pt.c (tsubst_expr): Only instantiate taken branch of constexpr if.
* semantics.c (begin_if_stmt): Set the binding level this_entity.
(finish_if_stmt_cond): Require the condition of a
constexpr if to be constant.
* decl.c (level_for_constexpr_if): New.
(named_label_entry): Add in_constexpr_if field.
(poplevel_named_label_1): Set it.
(check_goto): Check it.
(check_previous_goto_1): Check level_for_constexpr_if.

From-SVN: r239338

8 years agoaltivec.h (vec_extract_exp): New macro.
Kelvin Nilsen [Wed, 10 Aug 2016 19:04:13 +0000 (19:04 +0000)]
altivec.h (vec_extract_exp): New macro.

gcc/ChangeLog:

2016-08-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/altivec.h (vec_extract_exp): New macro.
(vec_extract_sig): New macro.
(vec_insert_exp): New macro.
(vec_test_data_class): New macro.
(scalar_extract_exp): New macro.
(scalar_extract_sig): New macro.
(scalar_insert_exp): New macro.
(scalar_test_data_class): New macro.
(scalar_test_neg): New macro.
(scalar_cmp_exp_gt): New macro.
(scalar_cmp_exp_lt): New macro.
(scalar_cmp_exp_eq): New macro.
(scalar_cmp_exp_unordered): New macro.
* config/rs6000/predicates.md (u7bit_cint_operand): New predicate
to enforce constraint that operand is a 7-bit unsigned literal.
* config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
for power9 built-ins.
(BU_P9V_VSX_2): Likewise.
(BU_P9V_64BIT_VSX_2): Likewise.
(VSEEDP): Add scalar extract exponent support.
(VSEESP): Add scalar extract signature support.
(VSTDCNDP): Add scalar test negative support.
(VSTDCNSP): Likewise.
(VSIEDP): Add scalar insert exponent support.
(VSCEDPGT): Add scalar compare exponent greater than support.
(VSCEDPLT): Add scalar compare exponent less than support.
(VSCEDPEQ): Add scalar compare exponent test-for-equality support.
(VSCEDPUO): Add scalar compare exponent test-for-unordered support.
(VSTDCDP): Add scalar test data class support.
(VSTDCSP): Likewise.
(VSEEDP): Add overload support for scalar extract exponent
operation.
(VSESDP): Add overload support for scalar extract signature
operation.
(VSTDCN): Add overload support for scalar test negative
operation.
(VSTDCNDP): Add overload support for scalar test negative
operation.
(VSTDCNSP): Add overload support for scalar test negative
operation.
(VSIEDP): Add overload support for scalar insert exponent
operation.
(VSTDC): Add overload support for scalar test data class
operation.
(VSTDCDP): Add overload support for scalar test data class
operation.
(VSTDCSP): Add overload support for scalar test data class
opreation.
(VSCEDPGT): Add overload support for scalar compare exponent
greater than operation.
(VSCEDPLT): Add overload support for scalar compare exponent
less than operation.
(VSCEDPEQ): Add overload support for scalar compare exponent
test-for-equality operation.
(VSCEDPUO): Add overload support for scalar compare exponent
test-for-unordered operation.
(VEEDP): Add vector extract exponent support.
(VEESP): Likewise.
(VESDP): Add vector extract significand support.
(VESSP): Likewise.
(VIEDP): Add vector insert exponent support.
(VIESP): Likewise.
(VTDCDP): Add vector test data class support.
(VTDCSP): Likewise.
(VES): Add overload support for vector extract significand operation.
(VESDP): Likewise.
(VESSP): Likewise
(VEE): Add overload support for vector extract exponent operation.
(VEEDP): Likewise.
(VEESP): Likewise.
(VTDC): Add overload support for vector test data class operation.
(VTDCDP): Likewise.
(VTDCSP): Likewise.
(VIE): Add overload support for vector insert exponent operation.
(VIEDP): Likewise.
(VIESP): Likewise.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
overloaded binary floating point functions.
(altivec_resolve_overloaded_builtin): Improve error messages to
distinguish between functions not supported in the current
compiler configuration and functions that were invoked with an
invalid parameter combination, and include the built-in function
name in both error messages.
* config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
New prototype.
* config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
function.
(rs6000_expand_binop_builtin): Add check to enforce that argument
2 of the test data class operations is a 7-bit unsigned literal.
(rs6000_invalid_builtin): Add code to issue an error message if a
built-in function that requires the power9_vector and -m32
command-line options is compiled without these options.
* config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
(UNSPEC_VSX_SXSIGDP): New value.
(UNSPEC_VSX_SXSIGPDP): New value.
(UNSPEC_VSX_SIEXPDP): New value.
(UNSPEC_VSX_SCMPEXPDP): New value.
(UNSPEC_VSX_STSTDC): New value.
(UNSPEC_VSX_VXEXP): New value.
(UNSPEC_VSX_VXSIG): New value.
(UNSPEC_VSX_VIEXP): New value.
(UNSPEC_VSX_VTSTDC): New value.
(xsxexpdp): New insn for scalar extract exponent.
(xsxsigdp): New insn for scalar extract significand.
(xsiexpdp): New insn for scalar insert exponent.
(xscmpexpdp_<code>): New expansion for scalar compare exponents.
(*xscmpexpdp): New insn for scalar compare exponents.
(xststdc<Fvsx): New expansion for both single- and
double-precision scalar test data class operations.
(xststdcneg<Fvsx>): New expansion for both single- and
double-precision scalar test for negative value operations.
(*xststdc<Fvsx>): New insn for scalar test data class
operation.
(xvxexp<VSs>): New insn for single- and double-precision
vector extract exponent operation.
(xvxsig<VSs>): New insn for single- and double-precision
vector extract significand operation.
(xviexp<VSs>): New insn for single- and double-precision
vector insert exponent operation.
(xvtstdc<VSs>): New insn for single- and double-precision
vector test data class operation.
* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
built-in functions to represent the Power9 binary floating-point
support instructions.

gcc/testsuite/ChangeLog:

2016-08-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/bfp/bfp.exp: New file.
* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-0.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-1.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-2.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-0.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-1.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-2.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-0.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-1.c: New test.
* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-2.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-exp-0.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-exp-1.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-exp-2.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-sig-0.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-sig-1.c: New test.
* gcc.target/powerpc/bfp/scalar-extract-sig-2.c: New test.
* gcc.target/powerpc/bfp/scalar-insert-exp-0.c: New test.
* gcc.target/powerpc/bfp/scalar-insert-exp-1.c: New test.
* gcc.target/powerpc/bfp/scalar-insert-exp-2.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-0.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-1.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-2.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-3.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-4.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-5.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-6.c: New test.
* gcc.target/powerpc/bfp/scalar-test-data-class-7.c: New test.
* gcc.target/powerpc/bfp/scalar-test-neg-0.c: New test.
* gcc.target/powerpc/bfp/scalar-test-neg-1.c: New test.
* gcc.target/powerpc/bfp/scalar-test-neg-2.c: New test.
* gcc.target/powerpc/bfp/scalar-test-neg-3.c: New test.
* gcc.target/powerpc/bfp/vec-extract-exp-0.c: New test.
* gcc.target/powerpc/bfp/vec-extract-exp-1.c: New test.
* gcc.target/powerpc/bfp/vec-extract-exp-2.c: New test.
* gcc.target/powerpc/bfp/vec-extract-exp-3.c: New test.
* gcc.target/powerpc/bfp/vec-extract-sig-0.c: New test.
* gcc.target/powerpc/bfp/vec-extract-sig-1.c: New test.
* gcc.target/powerpc/bfp/vec-extract-sig-2.c: New test.
* gcc.target/powerpc/bfp/vec-extract-sig-3.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-0.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-1.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-2.c: New test.
* gcc.target/powerpc/bfp/vec-insert-exp-3.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-0.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-1.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-2.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-3.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-4.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-5.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-6.c: New test.
* gcc.target/powerpc/bfp/vec-test-data-class-7.c: New test.

From-SVN: r239334

8 years agocompiler: annotate or fix fall through cases in switch statements
Ian Lance Taylor [Wed, 10 Aug 2016 18:56:35 +0000 (18:56 +0000)]
compiler: annotate or fix fall through cases in switch statements

    A new GCC warning, -Wimplicit-fallthrough, detected these three cases
    where a switch case falls through to another.  One of them looks like
    a bug, so I fixed it; the two other look like intended fall throughs
    so I just added a "fall through" comment to suppress the GCC warning.

    Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.

    Reviewed-on: https://go-review.googlesource.com/26695

From-SVN: r239332

8 years ago* doc/sourcebuild.texi (@item vect_cond_mixed): New item.
Bin Cheng [Wed, 10 Aug 2016 15:47:58 +0000 (15:47 +0000)]
* doc/sourcebuild.texi (@item vect_cond_mixed): New item.

From-SVN: r239330

8 years agotarget-supports.exp (check_effective_target_vect_cond_mixed): Add aarch64*-*-*.
Bin Cheng [Wed, 10 Aug 2016 15:45:25 +0000 (15:45 +0000)]
target-supports.exp (check_effective_target_vect_cond_mixed): Add aarch64*-*-*.

gcc/testsuite
* lib/target-supports.exp (check_effective_target_vect_cond_mixed):
Add aarch64*-*-*.

From-SVN: r239329

8 years agoiterators.md (V_cmp_mixed, [...]): New.
Bin Cheng [Wed, 10 Aug 2016 15:34:23 +0000 (15:34 +0000)]
iterators.md (V_cmp_mixed, [...]): New.

* config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
* config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
(aarch64_vcond_internal<mode><mode>): Delete pattern.
(aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
(vcond<v_cmp_result><mode>): Ditto.
(vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
(vcondu<mode><mode>): Ditto.
(vcond<v_cmp_mixed><mode>): New pattern.
(vcondu<mode><v_cmp_mixed>): New pattern.
(aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
of aarch64_vcond_internal.

gcc/testsuite
* gcc.target/aarch64/simd/vcond-ne.c: New test.

From-SVN: r239328

8 years agoaarch64-simd.md (vec_cmp<mode><mode>): New pattern.
Alan Lawrence [Wed, 10 Aug 2016 15:26:14 +0000 (15:26 +0000)]
aarch64-simd.md (vec_cmp<mode><mode>): New pattern.

* config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
(vec_cmp<mode><v_cmp_result>): New pattern.
(vec_cmpu<mode><mode>): New pattern.
(vcond_mask_<mode><v_cmp_result>): New pattern.

Co-Authored-By: Bin Cheng <bin.cheng@arm.com>
Co-Authored-By: Renlin Li <renlin.li@arm.com>
From-SVN: r239327

8 years agore PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90 -O3 -g execution test)
Yuri Rumyantsev [Wed, 10 Aug 2016 15:03:02 +0000 (15:03 +0000)]
re PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90   -O3 -g  execution test)

Fix PR tree-optimization/71734

2016-08-10  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR tree-optimization/71734
* tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
REF_LOOP, invoke ref_indep_loop_p_1.
(outermost_indep_loop): Pass LOOP argumnet where REF was defined
to ref_indep_loop_p.
(ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
is inside LOOP, do not cache dpendence value for loops with
non-zero SAFELEN.
(ref_indep_loop_p_2): Delete function.
(can_sm_ref_p): Pass LOOP as additional argument to
ref_indep_loop_p.

From-SVN: r239326

8 years agore PR target/72853 (gcc/testsuite/gcc.c-torture/execute/20021120-1.c generates incorr...
Michael Meissner [Wed, 10 Aug 2016 13:49:12 +0000 (13:49 +0000)]
re PR target/72853 (gcc/testsuite/gcc.c-torture/execute/20021120-1.c generates incorrect stxssp op with -mcpu=power9)

[gcc]
2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/72853
* config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
being an offsettable address.

[gcc/testsuite]
2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/72853
* gcc.target/powerpc/pr72853.c: New test.

From-SVN: r239325

8 years agoAdd new *_atomic counter update function
Martin Liska [Wed, 10 Aug 2016 13:14:56 +0000 (15:14 +0200)]
Add new *_atomic counter update function

PR gcov-profile/58306
* Makefile.in: New functions (modules) are added.
* libgcov-profiler.c (__gcov_interval_profiler_atomic): New
function.
(__gcov_pow2_profiler_atomic): New function.
(__gcov_one_value_profiler_body): New argument is instroduced.
(__gcov_one_value_profiler): Call with the new argument.
(__gcov_one_value_profiler_atomic): Likewise.
(__gcov_indirect_call_profiler_v2): Likewise.
(__gcov_time_profiler_atomic): New function.
(__gcov_average_profiler_atomic): Likewise.
(__gcov_ior_profiler_atomic): Likewise.
* libgcov.h: Declare the aforementioned functions.
PR gcov-profile/58306
* gcc.dg/tree-prof/val-profiler-threads-1.c: New test.
PR gcov-profile/58306
* tree-profile.c (gimple_init_edge_profiler): Create conditionally
atomic variants of profile update functions.

From-SVN: r239324

8 years agoCherry-pick fprofile-generate-atomic from google/gcc-4_9
Martin Liska [Wed, 10 Aug 2016 13:11:42 +0000 (15:11 +0200)]
Cherry-pick fprofile-generate-atomic from google/gcc-4_9

Cherry picked (and modified) from google-4_7 branch
2012-12-26  Rong Xu  <xur@google.com>
* common.opt (fprofile-update): Add new flag.
* coretypes.h: Define enum profile_update.
* doc/invoke.texi: Document -fprofile-update.
* gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
* tree-profile.c (gimple_init_edge_profiler): Generate
also atomic profiler update.
(gimple_gen_edge_profiler): Likewise.
* g++.dg/gcov/gcov-threads-1.C: New test.

From-SVN: r239323

8 years agotoplev.c: set FILE * globals to NULL after fclose
David Malcolm [Wed, 10 Aug 2016 13:08:13 +0000 (13:08 +0000)]
toplev.c: set FILE * globals to NULL after fclose

gcc/ChangeLog:
* toplev.c (finalize): Set aux_info_file, asm_out_file, and
stack_usage_file to NULL after fclose calls.

From-SVN: r239322

8 years agoFix PR 71873 - ICE in push_reload
Senthil Kumar Selvaraj [Wed, 10 Aug 2016 12:35:57 +0000 (12:35 +0000)]
Fix PR 71873 - ICE in push_reload

Extend computation of subreg_in_class to constants and plus expressions
inside SUBREGs, before recursively calling push_reload. SYMBOL_REFs are
also CONSTANT_P, so remove explicit handling of SYMBOL_REFs.

gcc/ChangeLog

PR target/71873
* reload.c (push_reload): Compute subreg_in_class for
subregs of constants and plus expressions. Remove special
handling of SYMBOL_REFs.

gcc/testsuite/ChangeLog

PR target/71873
* gcc.target/avr/pr71873.c: New test.

From-SVN: r239321

8 years ago[RS6000] e500 part of pr71680
Alan Modra [Wed, 10 Aug 2016 05:43:36 +0000 (15:13 +0930)]
[RS6000] e500 part of pr71680

The fallback part of HARD_REGNO_CALLER_SAVE_MODE, choose_hard_reg_mode,
returns DFmode for SImode when TARGET_E500_DOUBLE.  This confuses
lra when attempting to save ctr around a call.

PR target/71680
* config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
SImode for TARGET_E500_DOUBLE when given SImode.

From-SVN: r239317

8 years agogccgo.texi (Invoking gccgo): Document -fgo-optimize-allocs and -fgo-debug-escae.
Ian Lance Taylor [Wed, 10 Aug 2016 05:19:23 +0000 (05:19 +0000)]
gccgo.texi (Invoking gccgo): Document -fgo-optimize-allocs and -fgo-debug-escae.

* gccgo.texi (Invoking gccgo): Document -fgo-optimize-allocs and
-fgo-debug-escae.
(Compiler Directives): New chapter.
(Function Names): Describe using //go:linkname.  Suggest using
-fgo-pkgpath rather than -fgo-prefix.

From-SVN: r239316