Nathan Sidwell [Wed, 25 May 2016 12:25:01 +0000 (12:25 +0000)]
crt0.s: Delete.
libgcc/
* config/nvptx/crt0.s: Delete.
* config/nvptx/crt0.c: New.
* t-nvptx: Update.
gcc/testsuite/
* gcc.c-torture/execute/921110-1.c: Fix abort decl.
add missing 2016-05-20 Nathan Sidwell <nathan@acm.org> entry
From-SVN: r236702
Richard Biener [Wed, 25 May 2016 11:49:03 +0000 (11:49 +0000)]
re PR tree-optimization/71261 (Trunk GCC hangs on knl and broadwell targets)
2016-05-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/71261
* tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
interesting stmt instead of immediate uses when looking
for the use operand to replace.
* c-c++-common/torture/pr71261.c: New testcase.
From-SVN: r236701
Martin Liska [Wed, 25 May 2016 11:17:23 +0000 (13:17 +0200)]
Fix dump output typo
* ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
From-SVN: r236700
Richard Biener [Wed, 25 May 2016 10:57:53 +0000 (10:57 +0000)]
re PR tree-optimization/71264 (ICE in convert_move)
2016-05-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/71264
* tree-vect-stmts.c (vect_init_vector): Properly deal with
vector type val.
* gcc.dg/vect/pr71264.c: New testcase.
From-SVN: r236699
Paolo Carlini [Wed, 25 May 2016 09:50:46 +0000 (09:50 +0000)]
re PR c++/55992 (constexpr static member function not recognised in templated using statement)
2016-05-25 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/55992
* g++.dg/cpp0x/alias-decl-53.C: New.
* g++.dg/cpp0x/alias-decl-54.C: Likewise.
From-SVN: r236698
Jonathan Wakely [Wed, 25 May 2016 09:36:28 +0000 (10:36 +0100)]
Remove _GLIBCXX14_USE_CONSTEXPR
* include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): Remove it.
* include/bits/hashtable_policy.h (_Power2_rehash_policy::_M_next_bkt):
Remove const qualification on function. Replace
_GLIBCXX14_USE_CONSTEXPR on automatic variables with const.
(_Power2_rehash_policy::_M_need_rehash): Remove const qualification.
(_Power2_rehash_policy::_M_next_bkt): Remove mutable specifier.
From-SVN: r236697
Martin Liska [Wed, 25 May 2016 09:10:16 +0000 (11:10 +0200)]
re PR tree-optimization/71239 (ICE in operand_equal_p (fold-const.c:2769))
Fix PR tree-optimization/71239.
* g++.dg/pr71239.C: New test.
PR tree-optimization/71239
* tree.c (array_at_struct_end_p): Do not call operand_equal_p
if DECL_SIZE is NULL.
From-SVN: r236696
Richard Biener [Wed, 25 May 2016 08:52:22 +0000 (08:52 +0000)]
timevar.def (TV_TREE_LOOP_IFCVT): Add.
2016-05-25 Richard Biener <rguenther@suse.de>
* timevar.def (TV_TREE_LOOP_IFCVT): Add.
* tree-if-conv.c (pass_data_if_conversion): Use it.
From-SVN: r236695
Paolo Carlini [Wed, 25 May 2016 08:49:22 +0000 (08:49 +0000)]
lambda-generic-static1.C: Use target c++14.
2016-05-24 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/cpp1y/lambda-generic-static1.C: Use target c++14.
* g++.dg/cpp1y/lambda-generic-static2.C: Likewise.
From-SVN: r236694
Richard Biener [Wed, 25 May 2016 08:21:35 +0000 (08:21 +0000)]
pr58135.c: Rename to ...
2016-05-25 Richard Biener <rguenther@suse.de>
* gcc/testsuite/gcc.dg/vect/pr58135.c: Rename to ...
* gcc/testsuite/gcc.dg/vect/bb-slp-pr58135.c: ... this.
From-SVN: r236693
Bernd Edlinger [Wed, 25 May 2016 07:38:32 +0000 (07:38 +0000)]
cgraph.c (cgraph_node::get_availability): Fix typo in comment.
* cgraph.c (cgraph_node::get_availability): Fix typo in comment.
* symtab.c (symtab_node::binds_to_current_def_p): Likewise.
* varpool.c (varpool_node::get_availability): Likewise.
From-SVN: r236690
GCC Administrator [Wed, 25 May 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r236689
Marek Polacek [Tue, 24 May 2016 23:41:06 +0000 (23:41 +0000)]
* g++.dg/pr65295.C: Use target c++14.
From-SVN: r236683
Michael Meissner [Tue, 24 May 2016 23:19:08 +0000 (23:19 +0000)]
altivec.md (VNEG iterator): New iterator for VNEGW/VNEGD instructions.
[gcc]
2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/altivec.md (VNEG iterator): New iterator for
VNEGW/VNEGD instructions.
(p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
(neg<mode>2): Add expander for V2DImode added in ISA 2.06, and
support for ISA 3.0 VNEGW/VNEGD instructions.
[gcc/testsuite]
2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
* gcc.target/powerpc/p9-vneg.c: New test for ISA 3.0 VNEGW/VNEGD
instructions.
From-SVN: r236679
Cesar Philippidis [Tue, 24 May 2016 22:54:21 +0000 (15:54 -0700)]
c-parser.c (c_parser_oacc_declare): Add support for GOMP_MAP_FIRSTPRIVATE_POINTER.
gcc/c/
* c-parser.c (c_parser_oacc_declare): Add support for
GOMP_MAP_FIRSTPRIVATE_POINTER.
* c-typeck.c (handle_omp_array_sections_1): Replace bool is_omp
argument with enum c_omp_region_type ort.
(handle_omp_array_sections): Likewise. Update call to
handle_omp_array_sections_1.
(c_finish_omp_clauses): Add specific errors and warning messages for
OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update
call to handle_omp_array_sections.
gcc/cp/
* parser.c (cp_parser_oacc_declare): Add support for
GOMP_MAP_FIRSTPRIVATE_POINTER.
* semantics.c (handle_omp_array_sections_1): Replace bool is_omp
argument with enum c_omp_region_type ort. Don't privatize OpenACC
non-static members.
(handle_omp_array_sections): Replace bool is_omp argument with enum
c_omp_region_type ort. Update call to handle_omp_array_sections_1.
(finish_omp_clauses): Add specific errors and warning messages for
OpenACC. Use firsrtprivate pointers for OpenACC subarrays. Update
call to handle_omp_array_sections.
gcc/
* gimplify.c (omp_notice_variable): Use zero-length arrays for data
pointers inside OACC_DATA regions.
(gimplify_scan_omp_clauses): Prune firstprivate clause associated
with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
(gimplify_adjust_omp_clauses): Fix typo in comment.
gcc/testsuite/
* c-c++-common/goacc/data-clause-duplicate-1.c: Adjust test.
* c-c++-common/goacc/deviceptr-1.c: Likewise.
* c-c++-common/goacc/kernels-alias-3.c: Likewise.
* c-c++-common/goacc/kernels-alias-4.c: Likewise.
* c-c++-common/goacc/kernels-alias-5.c: Likewise.
* c-c++-common/goacc/kernels-alias-8.c: Likewise.
* c-c++-common/goacc/kernels-alias-ipa-pta-3.c: Likewise.
* c-c++-common/goacc/pcopy.c: Likewise.
* c-c++-common/goacc/pcopyin.c: Likewise.
* c-c++-common/goacc/pcopyout.c: Likewise.
* c-c++-common/goacc/pcreate.c: Likewise.
* c-c++-common/goacc/pr70688.c: New test.
* c-c++-common/goacc/present-1.c: Adjust test.
* c-c++-common/goacc/reduction-5.c: Likewise.
* g++.dg/goacc/data-1.C: New test.
libgomp/
* oacc-mem.c (acc_malloc): Update handling of shared-memory targets.
(acc_free): Likewise.
(acc_memcpy_to_device): Likewise.
(acc_memcpy_from_device): Likewise.
(acc_deviceptr): Likewise.
(acc_hostptr): Likewise.
(acc_is_present): Likewise.
(acc_map_data): Likewise.
(acc_unmap_data): Likewise.
(present_create_copy): Likewise.
(delete_copyout): Likewise.
(update_dev_host): Likewise.
* testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Remove xfail.
* testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: New test.
* testsuite/libgomp.oacc-c-c++-common/data-2.c: Adjust test.
* testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/enter_exit-lib.c: New test.
* testsuite/libgomp.oacc-c-c++-common/lib-13.c: Adjust test so that
it only runs on nvptx targets.
* testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
From-SVN: r236678
Michael Meissner [Tue, 24 May 2016 22:45:45 +0000 (22:45 +0000)]
altivec.md (VParity): New mode iterator for vector parity built-in functions.
[gcc]
2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/altivec.md (VParity): New mode iterator for vector
parity built-in functions.
(p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
zeros.
(p9v_parity<mode>2): Likewise.
* config/rs6000/vector.md (VEC_IP): New mode iterator for vector
parity.
(ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
(parity<mode>2): ISA 3.0 expander for vector parity.
* config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
power9 built-ins.
(BU_P9_64BIT_MISC_0): Likewise.
(BU_P9_MISC_0): Likewise.
(BU_P9V_AV_1): Likewise.
(BU_P9V_AV_2): Likewise.
(BU_P9V_AV_3): Likewise.
(BU_P9V_AV_P): Likewise.
(BU_P9V_VSX_1): Likewise.
(BU_P9V_OVERLOAD_1): Likewise.
(BU_P9V_OVERLOAD_2): Likewise.
(BU_P9V_OVERLOAD_3): Likewise.
(VCTZB): Add vector count trailing zeros support.
(VCTZH): Likewise.
(VCTZW): Likewise.
(VCTZD): Likewise.
(VPRTYBD): Add vector parity support.
(VPRTYBQ): Likewise.
(VPRTYBW): Likewise.
(VCTZ): Add overloaded vector count trailing zeros support.
(VPRTYB): Add overloaded vector parity support.
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
overloaded vector count trailing zeros and parity instructions.
* config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
vector parity support.
* config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
trailing zeros support.
(vec_cntlz): Likewise.
(vec_vctzb): Likewise.
(vec_vctzd): Likewise.
(vec_vctzh): Likewise.
(vec_vctzw): Likewise.
(vec_vprtyb): Add ISA 3.0 vector parity support.
(vec_vprtybd): Likewise.
(vec_vprtybw): Likewise.
(vec_vprtybq): Likewise.
* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
the ISA 3.0 vector count trailing zeros and vector parity built-in
functions.
[gcc/testsuite]
2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
* gcc.target/powerpc/p9-vparity.c: New file to check ISA 3.0
vector parity built-in functions.
* gcc.target/powerpc/ctz-3.c: New file to check ISA 3.0 vector
count trailing zeros automatic vectorization.
* gcc.target/powerpc/ctz-4.c: New file to check ISA 3.0 vector
count trailing zeros built-in functions.
From-SVN: r236677
Paolo Carlini [Tue, 24 May 2016 22:38:00 +0000 (22:38 +0000)]
lambda-generic-static1.C: Use target c++14.
2016-05-24 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/cpp1y/lambda-generic-static1.C: Use target c++14.
* g++.dg/cpp1y/lambda-generic-static2.C: Likewise.
From-SVN: r236676
Kugan Vivekanandarajah [Tue, 24 May 2016 22:29:27 +0000 (22:29 +0000)]
tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb when there is stmt_to_insert.
gcc/ChangeLog:
2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
* tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
when there is stmt_to_insert.
gcc/testsuite/ChangeLog:
2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
* gcc.dg/tree-ssa/reassoc-44.c: New test.
From-SVN: r236673
Pat Haugen [Tue, 24 May 2016 22:24:16 +0000 (22:24 +0000)]
lhs-1.c: Fix testcase to avoid subreg changes.
* gcc.target/powerpc/lhs-1.c: Fix testcase to avoid subreg changes.
From-SVN: r236672
Paolo Carlini [Tue, 24 May 2016 21:32:29 +0000 (21:32 +0000)]
re PR c++/50436 (Crash or hang on invalid template code)
2016-05-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50436
* g++.dg/template/crash123.C: New.
* g++.dg/template/crash124.C: Likewise.
From-SVN: r236671
Jason Merrill [Tue, 24 May 2016 21:06:53 +0000 (17:06 -0400)]
PR c++/70584 - don't force indirection to an rvalue
* cp-gimplify.c (cp_fold_maybe_rvalue): Loop in case cp_fold
returns a decl.
(cp_fold) [INDIRECT_REF]: Don't fold to an rvalue.
From-SVN: r236670
François Dumont [Tue, 24 May 2016 20:55:57 +0000 (20:55 +0000)]
c++config (_GLIBCXX14_USE_CONSTEXPR): New.
2016-05-24 François Dumont <fdumont@gcc.gnu.org>
* include/bits/c++config (_GLIBCXX14_USE_CONSTEXPR): New.
* include/bits/hashtable_policy.h
(_Prime_rehash_policy::__has_load_factor): New. Mark rehash policy
having load factor management.
(_Mask_range_hashing): New.
(__clp2): New.
(_Power2_rehash_policy): New.
(_Inserts<>): Remove last template parameter, _Unique_keys, so that
partial specializations only depend on whether iterators are constant
or not.
* testsuite/23_containers/unordered_set/hash_policy/26132.cc: Adapt to
test new hash policy.
* testsuite/23_containers/unordered_set/hash_policy/load_factor.cc:
Likewise.
* testsuite/23_containers/unordered_set/hash_policy/rehash.cc:
Likewise.
* testsuite/23_containers/unordered_set/insert/hash_policy.cc:
Likewise.
* testsuite/23_containers/unordered_set/max_load_factor/robustness.cc:
Likewise.
* testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
New.
* testsuite/performance/23_containers/insert/54075.cc: Add benchmark
using the new hash policy.
* testsuite/performance/23_containers/insert_erase/41975.cc: Likewise.
From-SVN: r236669
Martin Sebor [Tue, 24 May 2016 20:29:36 +0000 (20:29 +0000)]
PR c++/71147 - [6 Regression] Flexible array member wrongly rejected in template
gcc/ChangeLog:
2016-05-24 Martin Sebor <msebor@redhat.com>
PR c++/71147
* gcc/tree.h (complete_or_array_type_p): New inline function.
gcc/testsuite/ChangeLog:
2016-05-24 Martin Sebor <msebor@redhat.com>
PR c++/71147
* g++.dg/ext/flexary16.C: New test.
gcc/cp/ChangeLog:
2016-05-24 Martin Sebor <msebor@redhat.com>
PR c++/71147
* decl.c (layout_var_decl, grokdeclarator): Use complete_or_array_type_p.
* pt.c (instantiate_class_template_1): Try to complete the element
type of a flexible array member.
(can_complete_type_without_circularity): Handle arrays of unknown bound.
* typeck.c (complete_type): Also complete the type of the elements of
arrays with an unspecified bound.
From-SVN: r236664
Jakub Jelinek [Tue, 24 May 2016 19:12:42 +0000 (21:12 +0200)]
i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
* config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
* config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
From-SVN: r236662
Jakub Jelinek [Tue, 24 May 2016 19:12:06 +0000 (21:12 +0200)]
sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Limit 1st alternative to noavx isa...
* config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
Limit 1st alternative to noavx isa, split 2nd alternative into one
noavx and one avx alternative, use *x and Bm in the former and
x and m in the latter.
From-SVN: r236661
Jakub Jelinek [Tue, 24 May 2016 19:11:33 +0000 (21:11 +0200)]
sse.md (vec_set<mode>_0): Use sse4_noavx isa instead of sse4 for the first alternative...
* config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
of sse4 for the first alternative, drop %v from the template
and d operand modifier. Split second alternative into one sse4_noavx
and one avx alternative, use *x instead of *v in the former and v
instead of *v in the latter.
(*sse4_1_extractps): Use noavx isa instead of * for the first
alternative, drop %v from the template. Split second alternative into
one noavx and one avx alternative, use *x instead of *v in the
former and v instead of *v in the latter.
(<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
with noavx and the last one with avx.
(sse4_1_phminposuw): Guard first alternative with noavx isa,
split the second one into one noavx and one avx alternative,
use *x and Bm in the former and x and m in the latter one.
(<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
alternatives.
From-SVN: r236660
Jakub Jelinek [Tue, 24 May 2016 19:10:55 +0000 (21:10 +0200)]
sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit first two alternatives to noavx...
* config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
first two alternatives to noavx, use *x instead of *v in the second
one, add avx alternative without *.
(sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
sse4_1_<code>v2siv2di2<mask_name>): Likewise.
From-SVN: r236659
Ilya Verbin [Tue, 24 May 2016 17:35:17 +0000 (17:35 +0000)]
avx-ceil-sfix-2-vec.c: Define __NO_MATH_INLINES before math.h is included.
* gcc.target/i386/avx-ceil-sfix-2-vec.c: Define __NO_MATH_INLINES before
math.h is included.
* gcc.target/i386/avx-floor-sfix-2-vec.c: Likewise.
* gcc.target/i386/avx-rint-sfix-2-vec.c: Likewise.
* gcc.target/i386/avx-round-sfix-2-vec.c: Likewise.
* gcc.target/i386/avx512f-ceil-sfix-vec-1.c: Likewise.
* gcc.target/i386/avx512f-floor-sfix-vec-1.c: Likewise.
* gcc.target/i386/sse4_1-ceil-sfix-vec.c: Likewise.
* gcc.target/i386/sse4_1-ceil-vec.c: Likewise.
* gcc.target/i386/sse4_1-ceilf-sfix-vec.c: Likewise.
* gcc.target/i386/sse4_1-ceilf-vec.c: Likewise.
* gcc.target/i386/sse4_1-floor-sfix-vec.c: Likewise.
* gcc.target/i386/sse4_1-floor-vec.c: Likewise.
* gcc.target/i386/sse4_1-rint-sfix-vec.c: Likewise.
* gcc.target/i386/sse4_1-rint-vec.c: Likewise.
* gcc.target/i386/sse4_1-rintf-sfix-vec.c: Likewise.
* gcc.target/i386/sse4_1-rintf-vec.c: Likewise.
* gcc.target/i386/sse4_1-round-sfix-vec.c: Likewise.
* gcc.target/i386/sse4_1-round-vec.c: Likewise.
* gcc.target/i386/sse4_1-roundf-sfix-vec.c: Likewise.
* gcc.target/i386/sse4_1-roundf-vec.c: Likewise.
* gcc.target/i386/sse4_1-trunc-vec.c: Likewise.
* gcc.target/i386/sse4_1-truncf-vec.c: Likewise.
* gcc.target/i386/sse4_1-floorf-sfix-vec.c: Likewise.
* gcc.target/i386/sse4_1-floorf-vec.c: Likewise.
From-SVN: r236656
Michael Meissner [Tue, 24 May 2016 17:21:18 +0000 (17:21 +0000)]
p9-vpermr.c: New test for ISA 3.0 vpermr support.
gcc/testsuite/ChangeLog:
2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
Kelvin Nilsen <kelvin@gcc.gnu.org>
* gcc.target/powerpc/p9-vpermr.c: New test for ISA 3.0 vpermr
support.
Co-Authored-By: Kelvin Nilsen <kelvin@gcc.gnu.org>
From-SVN: r236655
Jeff Law [Tue, 24 May 2016 16:57:48 +0000 (10:57 -0600)]
tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path): New function, extracted from...
* tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
New function, extracted from...
(fsm_find_control_statement_thread_paths): Here. Use the new function.
Allow simple copies and constant initializations in the SSA chain.
From-SVN: r236653
Paolo Carlini [Tue, 24 May 2016 16:41:39 +0000 (16:41 +0000)]
re PR c++/69872 (-Wnarrowing note without warning/errror)
/cp
2016-05-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/69872
* typeck2.c (check_narrowing): Check pedwarn return value.
/testsuite
2016-05-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/69872
* g++.dg/warn/Wno-narrowing1.C: New.
From-SVN: r236651
Marek Polacek [Tue, 24 May 2016 16:22:31 +0000 (16:22 +0000)]
re PR middle-end/71249 (-Wswitch-unreachable false positive for a compound statement containing a used label)
PR c/71249
* gimplify.c (gimplify_switch_expr): Look into the innermost lexical
scope.
* c-c++-common/Wswitch-unreachable-2.c: New test.
From-SVN: r236649
Jakub Jelinek [Tue, 24 May 2016 16:19:43 +0000 (18:19 +0200)]
re PR c++/71257 (OpenMP declare simd linear with ref modifier doesn't accept references to non-integer/non-pointer)
PR c++/71257
* tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
* semantics.c (finish_omp_clauses) <case OMP_CLAUSE_LINEAR>:
For OMP_CLAUSE_LINEAR_REF don't require type to be
integral or pointer.
* g++.dg/vect/simd-clone-6.cc: New test.
* g++.dg/gomp/declare-simd-6.C: New test.
From-SVN: r236648
Jakub Jelinek [Tue, 24 May 2016 16:14:34 +0000 (18:14 +0200)]
re PR middle-end/70434 (adding an extraneous cast to vector type results in inferior code)
PR middle-end/70434
PR c/69504
* c-c++-common/vector-subscript-5.c (foo): Move ; out of the ifdef.
From-SVN: r236647
Jonathan Wakely [Tue, 24 May 2016 15:59:05 +0000 (16:59 +0100)]
Add priority_queue::value_compare (LWG 2684)
* include/bits/stl_queue.h (priority_queue::value_compare): Define.
From-SVN: r236646
Uros Bizjak [Tue, 24 May 2016 15:42:17 +0000 (17:42 +0200)]
i386.c (ix86_preferred_reload_class): Use IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
* config/i386/i386.c (ix86_preferred_reload_class): Use
IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
From-SVN: r236645
Richard Biener [Tue, 24 May 2016 14:40:35 +0000 (14:40 +0000)]
re PR tree-optimization/71240 (ICE on valid code at -O2 and above on x86_64-linux-gnu: verify_gimple failed)
2016-05-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/71240
* tree-ssa-math-opts.c (init_symbolic_number): Verify the source
has integral type.
* gcc.dg/optimize-bswapsi-5.c: New testcase.
From-SVN: r236644
Richard Biener [Tue, 24 May 2016 14:35:36 +0000 (14:35 +0000)]
re PR tree-optimization/71230 (ICE : in zero_one_operation, at tree-ssa-reassoc.c:1230)
2016-05-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/71230
* tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
* gcc.dg/torture/pr71230.c: New testcase.
* g++.dg/torture/pr71230.C: Likewise.
From-SVN: r236643
Richard Sandiford [Tue, 24 May 2016 14:05:20 +0000 (14:05 +0000)]
Clean up PURE_SLP_STMT handling
The vectorizable_* routines had many instances of:
slp_node || PURE_SLP_STMT (stmt_info)
which gives the misleading impression that we can have
!slp_node && PURE_SLP_STMT (stmt_info). In this context
it's really enough to test slp_node on its own.
There are three cases:
loop vectorisation only:
vectorizable_foo called only with !slp_node
pure SLP:
vectorizable_foo called only with slp_node
hybrid SLP:
(e.g. a vector that's used in SLP statements and also in a reduction)
- vectorizable_foo called once with slp_node for the SLP uses.
- vectorizable_foo called once with !slp_node for the non-SLP uses.
Hybrid SLP isn't possible for stores, so I added an explicit assert
for that.
I also made vectorizable_comparison static, to make it obvious that
no other callers outside tree-vect-stmts.c could use it with the
!slp && PURE_SLP_STMT combination.
Tested on aarch64-linux-gnu and x86_64-linux-gnu.
gcc/
* tree-vectorizer.h (vectorizable_comparison): Delete.
* tree-vect-loop.c (vectorizable_reduction): Remove redundant
PURE_SLP_STMT check.
* tree-vect-stmts.c (vectorizable_call): Likewise.
(vectorizable_simd_clone_call): Likewise.
(vectorizable_conversion): Likewise.
(vectorizable_assignment): Likewise.
(vectorizable_shift): Likewise.
(vectorizable_operation): Likewise.
(vectorizable_load): Likewise.
(vectorizable_condition): Likewise.
(vectorizable_store): Likewise. Assert that we don't have
hybrid SLP.
(vectorizable_comparison): Make static. Remove redundant
PURE_SLP_STMT check.
(vect_transform_stmt): Assert that we always have an slp_node
if PURE_SLP_STMT.
From-SVN: r236642
Kyrylo Tkachov [Tue, 24 May 2016 14:04:03 +0000 (14:04 +0000)]
[ARM][4/4] Simplify checks for CONST_INT_P and comparison against 1/0
* config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
operands[2] against 1 with comparison against CONST1_RTX.
(<shift>di3_neon): Likewise.
* config/arm/predicates.md (const0_operand): Replace with comparison
against CONST0_RTX.
From-SVN: r236641
Kyrylo Tkachov [Tue, 24 May 2016 14:00:39 +0000 (14:00 +0000)]
[ARM][3/4] Cleanup casts from INTVAL to [unsigned] HOST_WIDE_INT
* config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
operands[2] against 1 with comparison against CONST1_RTX.
(ashrdi3): Likewise.
(lshrdi3): Likewise.
(ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
UINTVAL.
(ashrsi3): Likewise.
(lshrsi3): Likewise.
(rotrsi3): Likewise.
(define_split above *compareqi_eq0): Likewise.
(define_split above "prologue"): Likewise.
* config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
* config/arm/predicates.md (shift_operator): Likewise.
(shift_nomul_operator): Likewise.
(sat_shift_operator): Likewise.
(thumb1_cmp_operand): Likewise.
(const_neon_scalar_shift_amount_operand): Replace manual range
check with IN_RANGE.
* config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
From-SVN: r236640
Thomas Schwinge [Tue, 24 May 2016 14:00:39 +0000 (16:00 +0200)]
Tighten syntax checking for OpenACC routine construct in C
gcc/c/
* c-parser.c (c_parser_oacc_routine): Tighten syntax checks.
gcc/testsuite/
* c-c++-common/goacc/routine-5.c: Add tests.
* g++.dg/goacc/routine-2.C: Remove duplicate tests.
* gfortran.dg/goacc/routine-6.f90: Add tests.
From-SVN: r236639
Kyrylo Tkachov [Tue, 24 May 2016 13:55:19 +0000 (13:55 +0000)]
[ARM][2/4] Replace casts of 1 to HOST_WIDE_INT by HOST_WIDE_INT_1 and HOST_WIDE_INT_1U
* config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
with HOST_WIDE_INT_1.
(insv): Likewise.
* config/arm/arm.c (optimal_immediate_sequence): Replace cast of
1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
(arm_canonicalize_comparison): Likewise.
(thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
HOST_WIDE_INT_1.
(thumb1_size_rtx_costs): Likewise.
(vfp_const_double_index): Replace cast of 1 to unsigned
HOST_WIDE_INT with HOST_WIDE_INT_1U.
(get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
HOST_WIDE_INT_1.
(arm_asan_shadow_offset): Replace cast of 1 to unsigned
HOST_WIDE_INT with HOST_WIDE_INT_1U.
* config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
HOST_WIDE_INT with HOST_WIDE_INT_1.
From-SVN: r236638
Marek Polacek [Tue, 24 May 2016 13:34:37 +0000 (13:34 +0000)]
tree-cfg.h (should_remove_lhs_p): New predicate.
* tree-cfg.h (should_remove_lhs_p): New predicate.
* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
* gimplify.c (gimplify_modify_expr): Likewise.
* tree-cfg.c (verify_gimple_call): Likewise.
* tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
* gimple-fold.c: Include "tree-cfg.h".
(gimple_fold_call): Use should_remove_lhs_p.
From-SVN: r236637
Richard Biener [Tue, 24 May 2016 12:40:01 +0000 (12:40 +0000)]
re PR tree-optimization/71253 (ICE during loop distribution w/ -O2 -ftree-loop-distribution)
2016-05-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/71253
* cfganal.h (control_dependences): Make robust against edge
and BB removal.
(control_dependences::control_dependences): Remove edge_list argument.
(control_dependences::get_edge): Remove.
(control_dependences::get_edge_src): Add.
(control_dependences::get_edge_dest): Likewise.
(control_dependences::m_el): Make a vector of edge src/dest index.
* cfganal.c (control_dependences::find_control_dependence): Adjust.
(control_dependences::control_dependences): Likewise.
(control_dependences::~control_dependence): Likewise.
(control_dependences::get_edge): Remove.
(control_dependences::get_edge_src): Add.
(control_dependences::get_edge_dest): Likewise.
* tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
get_edge_src.
(perform_tree_ssa_dce): Adjust.
* tree-loop-distribution.c (create_edge_for_control_dependence): Use
get_edge_src.
(pass_loop_distribution::execute): Adjust. Do loop destroying
conditional on changed.
* gcc.dg/torture/pr71253.c: New testcase.
From-SVN: r236636
Kyrylo Tkachov [Tue, 24 May 2016 11:32:35 +0000 (11:32 +0000)]
[ARM] PR target/69857 Remove bogus early return false; in gen_operands_ldrd_strd
PR target/69857
* config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
return. Reindent transformation comment and mention the ARM state
behavior.
From-SVN: r236635
Kugan Vivekanandarajah [Tue, 24 May 2016 10:50:01 +0000 (10:50 +0000)]
re PR tree-optimization/71252 (ICE: verify_ssa failed : definition in block 7 does not dominate use in block 6)
gcc/testsuite/ChangeLog:
2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71252
* gfortran.dg/pr71252.f90: New test.
gcc/ChangeLog:
2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71252
* tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert after
build_and_add_sum creates new use stmt.
From-SVN: r236634
Richard Sandiford [Tue, 24 May 2016 10:15:36 +0000 (10:15 +0000)]
Avoid unnecessary peeling for gaps with LD3
vectorizable_load forces peeling for gaps if the vectorisation factor
is not a multiple of the group size, since in that case we'd normally load
beyond the original scalar accesses but drop the excess elements as part
of a following permute:
if (loop_vinfo
&& ! STMT_VINFO_STRIDED_P (stmt_info)
&& (GROUP_GAP (vinfo_for_stmt (first_stmt)) != 0
|| (!slp && vf % GROUP_SIZE (vinfo_for_stmt (first_stmt)) != 0)))
This isn't necessary for LOAD_LANES though, since it loads only the
data needed and does the permute itself.
Tested on aarch64-linux-gnu and x86_64-linux-gnu.
gcc/
* tree-vect-stmts.c (vectorizable_load): Reorder checks so that
load_lanes/grouped_load classification comes first. Don't check
whether the vectorization factor is a multiple of the group size
for load_lanes.
gcc/testsuite/
* gcc.dg/vect/vect-load-lanes-peeling-1.c: New test.
From-SVN: r236632
Richard Sandiford [Tue, 24 May 2016 10:13:35 +0000 (10:13 +0000)]
Fix GROUP_GAP for single-element interleaving
vectorizable_load had a curious "force_peeling" variable, with no
comment explaining why we need it for single-element interleaving
but not for other cases. I think it's simply because we weren't
initialising the GROUP_GAP correctly for single loads.
Tested on aarch64-linux-gnu and x86_64-linux-gnu.
gcc/
* tree-vect-data-refs.c (vect_analyze_group_access_1): Set
GROUP_GAP for single-element interleaving.
* tree-vect-stmts.c (vectorizable_load): Remove force_peeling
variable.
From-SVN: r236631
Richard Biener [Tue, 24 May 2016 07:55:56 +0000 (07:55 +0000)]
re PR middle-end/70434 (adding an extraneous cast to vector type results in inferior code)
2016-05-24 Richard Biener <rguenther@suse.de>
PR middle-end/70434
PR c/69504
c-family/
* c-common.h (convert_vector_to_pointer_for_subscript): Rename to ...
(convert_vector_to_array_for_subscript): ... this.
* c-common.c (convert_vector_to_pointer_for_subscript): Use a
VIEW_CONVERT_EXPR to an array type. Rename to ...
(convert_vector_to_array_for_subscript): ... this.
cp/
* expr.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
* constexpr.c (cxx_eval_array_reference): Handle indexed
vectors.
* typeck.c (cp_build_array_ref): Adjust.
c/
* c-typeck.c (build_array_ref): Do not complain about indexing
non-lvalue vectors. Adjust for function name change.
* tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
bases which are accessed with non-invariant indices.
* gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
* c-c++-common/vector-subscript-4.c: New testcase.
* c-c++-common/vector-subscript-5.c: Likewise.
From-SVN: r236630
Jerry DeLisle [Tue, 24 May 2016 06:16:00 +0000 (06:16 +0000)]
re PR libfortran/71123 (Namelist read failure on Windows)
2016-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/71123
* io/list_read (eat_spaces): Eat '\r' as part of spaces.
fix change log
From-SVN: r236629
Jerry DeLisle [Tue, 24 May 2016 06:11:21 +0000 (06:11 +0000)]
re PR libfortran/70684 (incorrect reading of values from file on Windows)
2016-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/70684
* io/list_read (eat_spaces): Eat '\r' as part of spaces.
* gfortran.dg/namelist_90.f: New test
From-SVN: r236628
Jerry DeLisle [Tue, 24 May 2016 04:15:39 +0000 (04:15 +0000)]
re PR fortran/66461 (ICE on missing end program in fixed source)
2016-05-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/66461
* scanner.c (gfc_next_char_literal): Clear end_flag when adjusting
current locus back to old_locus.
* gfortran.dg/unexpected_eof.f: New test
From-SVN: r236627
Jason Merrill [Tue, 24 May 2016 03:34:55 +0000 (23:34 -0400)]
PR c++/70344 - ICE with recursive constexpr
* constexpr.c (cxx_eval_call_expression): Check for
fun == current_function_decl again.
From-SVN: r236625
GCC Administrator [Tue, 24 May 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r236623
Kugan Vivekanandarajah [Tue, 24 May 2016 00:14:13 +0000 (00:14 +0000)]
re PR tree-optimization/71170 (ICE in rewrite_expr_tree, at tree-ssa-reassoc.c:3898)
gcc/ChangeLog:
2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71170
* tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
(add_to_ops_vec): Add stmt_to_insert.
(add_repeat_to_ops_vec): Init stmt_to_insert.
(insert_stmt_before_use): New.
(transform_add_to_multiply): Remove mult_stmt insertion and add it to ops vector.
(get_ops): Init stmt_to_insert.
(maybe_optimize_range_tests): Likewise.
(rewrite_expr_tree): Insert stmt_to_insert before use stmt.
(rewrite_expr_tree_parallel): Likewise.
(reassociate_bb): Likewise.
From-SVN: r236619
Michael Meissner [Mon, 23 May 2016 23:42:52 +0000 (23:42 +0000)]
re PR target/71201 (PowerPC XXPERM instruction fails on ISA 3.0 system.)
[gcc]
2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/71201
* config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
ISA 3.0 xxperm fusion alternative.
(altivec_vperm_v8hiv16qi): Likewise.
(altivec_vperm_<mode>_uns_internal): Likewise.
(vperm_v8hiv4si): Likewise.
(vperm_v16qiv8hi): Likewise.
[gcc/testsuite]
2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
Kelvin Nilsen <kelvin@gcc.gnu.org>
* gcc.target/powerpc/p9-permute.c: Run test on big endian as well
as little endian.
[gcc]
2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
Kelvin Nilsen <kelvin@gcc.gnu.org>
* config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
vpermr/xxpermr on ISA 3.0.
(altivec_expand_vec_perm_le): Likewise.
* config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
(altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
ISA 3.0.
Co-Authored-By: Kelvin Nilsen <kelvin@gcc.gnu.org>
From-SVN: r236617
Jason Merrill [Mon, 23 May 2016 21:21:24 +0000 (17:21 -0400)]
PR c++/70584 - error with parenthesized builtin arg
* cp-gimplify.c (cp_fold) [INDIRECT_REF]: Call
maybe_undo_parenthesized_ref.
From-SVN: r236616
Jason Merrill [Mon, 23 May 2016 21:21:18 +0000 (17:21 -0400)]
PR c++/70735 - generic lambda and local static variable
* pt.c (tsubst_copy): Just return a local variable from
non-template context. Don't call rest_of_decl_compilation for
duplicated static locals.
(tsubst_decl): Set DECL_CONTEXT of local static from another
function.
From-SVN: r236615
Paolo Carlini [Mon, 23 May 2016 20:50:10 +0000 (20:50 +0000)]
re PR c++/70972 (Inheriting constructors taking parameters by value should move them, not copy)
/cp
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70972
* method.c (forward_parm): Use cp_build_reference_type.
/testsuite
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70972
* g++.dg/cpp0x/inh-ctor20.C: New.
* g++.dg/cpp0x/inh-ctor21.C: Likewise.
From-SVN: r236614
François Dumont [Mon, 23 May 2016 20:03:35 +0000 (20:03 +0000)]
2016-05-23 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_iterator.h
(_Safe_iterator<>::operator->()): Implement using underlying iterator
operator ->.
* include/debug/safe_local_iterator.h
(_Safe_local_iterator<>::operator->()): Likewise.
From-SVN: r236611
Paolo Carlini [Mon, 23 May 2016 19:24:22 +0000 (19:24 +0000)]
re PR c++/69095 (internal compiler error: in dependent_type_p, at cp/pt.c:19399)
/cp
2016-05-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/69095
* parser.c (cp_parser_default_argument): Call
check_for_bare_parameter_packs.
(cp_parser_late_parsing_default_args): Likewise.
/testsuite
2016-05-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/69095
* g++.dg/cpp0x/variadic168.C: New.
From-SVN: r236610
Paolo Carlini [Mon, 23 May 2016 19:20:41 +0000 (19:20 +0000)]
pt.c (check_for_bare_parameter_packs): Improve error message location for expressions.
/cp
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
* pt.c (check_for_bare_parameter_packs): Improve error message
location for expressions.
/testsuite
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/cpp0x/pr31445.C: Test column number too.
* g++.dg/cpp0x/pr32253.C: Likewise.
* g++.dg/cpp0x/variadic-ex13.C: Likewise.
* g++.dg/cpp0x/variadic36.C: Likewise.
From-SVN: r236609
Uros Bizjak [Mon, 23 May 2016 18:59:38 +0000 (20:59 +0200)]
i386.h (IS_STACK_MODE): Enable for TARGET_MIX_SSE_I387.
* config/i386/i386.h (IS_STACK_MODE): Enable for
TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
SSE_FLOAT_MODE_P macros.
* config/i386/i386.c (ix86_preferred_reload_class): Use
IS_STACK_MODE, INTEGER_CLASS_P and FLOAT_CLASS_P macros. Cleanup
regclass processing for CONST_DOUBLE_P.
(ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
(ix86_rtx_costs): Remove redundant TARGET_80387 check
with IS_STACK_MODE macro.
* config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
with TARGET_SSE2.
(*movdf_internal): Use IS_STACK_MODE macro.
(*movsf_internal): Ditto.
From-SVN: r236607
Marc Glisse [Mon, 23 May 2016 17:49:10 +0000 (19:49 +0200)]
match.pd: Relax some tree_nop_conversion_p
2016-05-23 Marc Glisse <marc.glisse@inria.fr>
gcc/
* match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
gcc/testsuite/
* gcc.dg/fold-notshift-2.c: Adjust.
From-SVN: r236601
Jeff Law [Mon, 23 May 2016 16:59:29 +0000 (10:59 -0600)]
tree-ssa-threadbackward.c (profitable_jump_thread_path): New function extracted from ...
* tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
extracted from ...
(fsm_find_control_statement_thread_paths): Call it.
From-SVN: r236599
Martin Jambor [Mon, 23 May 2016 16:31:14 +0000 (18:31 +0200)]
[PR 71234] Avoid valgrind warning in ipa-cp
2016-05-23 Martin Jambor <mjambor@suse.cz>
PR ipa/71234
* ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
from_global_constant if t is not NULL.
From-SVN: r236598
Marek Polacek [Mon, 23 May 2016 15:37:09 +0000 (15:37 +0000)]
re PR c/49859 (gcc could warn about statements between "switch" and first "case")
PR c/49859
* common.opt (Wswitch-unreachable): New option.
* doc/invoke.texi: Document -Wswitch-unreachable.
* gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
warning.
* c-c++-common/Wswitch-unreachable-1.c: New test.
* gcc.dg/Wswitch-unreachable-1.c: New test.
* c-c++-common/goacc/sb-2.c (void foo): Add dg-warning.
* g++.dg/cpp0x/lambda/lambda-switch.C (main): Likewise.
* g++.dg/gomp/block-10.C: Likewise.
* gcc.dg/gomp/block-10.c: Likewise.
* g++.dg/gomp/block-9.C: Likewise.
* gcc.dg/gomp/block-9.c: Likewise.
* g++.dg/gomp/target-1.C: Likewise.
* g++.dg/gomp/target-2.C: Likewise.
* gcc.dg/gomp/target-1.c: Likewise.
* gcc.dg/gomp/target-2.c: Likewise.
* g++.dg/gomp/taskgroup-1.C: Likewise.
* gcc.dg/gomp/taskgroup-1.c: Likewise.
* gcc.dg/gomp/teams-1.c: Likewise.
* g++.dg/gomp/teams-1.C: Likewise.
* g++.dg/overload/error3.C: Likewise.
* g++.dg/tm/jump1.C: Likewise.
* g++.dg/torture/pr40335.C: Likewise.
* gcc.dg/c99-vla-jump-5.c: Likewise.
* gcc.dg/switch-warn-1.c: Likewise.
* gcc.dg/Wjump-misses-init-1.c: Use -Wno-switch-unreachable.
* gcc.dg/nested-func-1.c: Likewise.
* gcc.dg/pr67784-4.c: Likewise.
From-SVN: r236597
Thomas Schwinge [Mon, 23 May 2016 14:54:04 +0000 (16:54 +0200)]
[PR libffi/65567] libffi: Fix, and simply libffi_feature_test
libffi/
PR libffi/65567
* testsuite/lib/libffi.exp (libffi_feature_test): Fix, and simply.
From-SVN: r236594
Bin Cheng [Mon, 23 May 2016 14:44:07 +0000 (14:44 +0000)]
tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when TMR_INDEX is non-NULL.
* tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
TMR_INDEX is non-NULL.
From-SVN: r236593
Richard Biener [Mon, 23 May 2016 14:09:35 +0000 (14:09 +0000)]
re PR tree-optimization/71230 (ICE : in zero_one_operation, at tree-ssa-reassoc.c:1230)
2016-05-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/71230
* tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
(try_special_add_to_ops): ... here. Always test for single-use.
* gfortran.dg/pr71230-1.f90: New testcase.
* gfortran.dg/pr71230-2.f90: Likewise.
From-SVN: r236591
Martin Jambor [Mon, 23 May 2016 11:45:13 +0000 (13:45 +0200)]
[hsa] Avoid segfault in hsa switch expansion
2016-05-23 Martin Jambor <mjambor@suse.cz>
* hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
default block if a PHI node in the original one would be resized.
libgomp/
* testsuite/libgomp.hsa.c/switch-sbr-2.c: New test.
From-SVN: r236585
Venkataramanan Kumar [Mon, 23 May 2016 09:48:54 +0000 (09:48 +0000)]
re PR tree-optimization/58135 ([x86] Missed opportunities for partial SLP)
Fix PR58135.
2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
PR tree-optimization/58135
* tree-vect-slp.c: When group size is not multiple
of vector size, allow splitting of store group at
vector boundary.
2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
* gcc.dg/vect/bb-slp-19.c: Remove XFAIL.
* gcc.dg/vect/pr58135.c: Add new.
* gfortran.dg/pr46519-1.f: Adjust test case.
From-SVN: r236582
Paolo Carlini [Mon, 23 May 2016 09:23:42 +0000 (09:23 +0000)]
re PR c++/53401 ([C++11] internal compiler error: Segmentation fault on infinite argument deduction of constexpr templates)
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53401
* g++.dg/cpp0x/decltype64.C: New.
From-SVN: r236581
Christophe Lyon [Mon, 23 May 2016 09:16:12 +0000 (09:16 +0000)]
[ARM, AArch64] Add missing tests for vreinterpret, operating of fp16 type.
2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Add fp16 tests.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c: Likewise.
From-SVN: r236580
Christophe Lyon [Mon, 23 May 2016 09:14:37 +0000 (09:14 +0000)]
[ARM, AArch64] Add missing tests for intrinsics operating on poly64 and poly128 types.
2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (result):
Add poly64x1_t and poly64x2_t cases if supported.
* gcc.target/aarch64/advsimd-intrinsics/compute-ref-data.h
(buffer, buffer_pad, buffer_dup, buffer_dup_pad): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/p64_p128.c: New file.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: New file.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c: New file.
From-SVN: r236579
Christophe Lyon [Mon, 23 May 2016 09:05:34 +0000 (09:05 +0000)]
[ARM, AArch64] Add missing vrnd{,a,m,n,p,x} tests.
2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vrnd.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndX.inc: New.
* gcc.target/aarch64/advsimd-intrinsics/vrnda.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndm.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndn.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndp.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndx.c: New.
From-SVN: r236578
Christophe Lyon [Mon, 23 May 2016 09:02:51 +0000 (09:02 +0000)]
[ARM, AArch64] Add missing vstX_lane fp16 tests.
2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vstX_lane.c: Add fp16 tests.
From-SVN: r236577
Christophe Lyon [Mon, 23 May 2016 08:59:26 +0000 (08:59 +0000)]
[ARM, AArch64] Add missing vtst_p16 and vtstq_p16, and vtst_p{8,16} and vtstq_p{8,16} tests.
2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
gcc/
* config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
gcc/testsuite/
* gcc.target/aarch64/advsimd-intrinsics/vtst.c: Add tests for
vtst_p8, vtstq_p8, vtst_p16 and vtstq_p16.
From-SVN: r236576
GCC Administrator [Mon, 23 May 2016 00:16:25 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r236575
Jakub Jelinek [Sun, 22 May 2016 18:01:43 +0000 (20:01 +0200)]
avx512bw-kunpckdq-1.c (avx512bw_test): Use "m" constraint instead of "r".
* gcc.target/i386/avx512bw-kunpckdq-1.c (avx512bw_test): Use "m"
constraint instead of "r".
* gcc.target/i386/avx512f-additional-reg-names.c (foo): Use vpxord
insn instead of vxorpd.
* gcc.target/i386/strinline.c: Add dg-require-effective-target ia32.
From-SVN: r236571
Uros Bizjak [Sun, 22 May 2016 17:20:10 +0000 (19:20 +0200)]
revert: re PR target/70738 (Add -mgeneral-regs-only option)
Revert:
gcc/
PR target/70738
* common/config/i386/i386-common.c
(OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
(ix86_handle_option): Disable MPX, MMX, SSE and x87 instructions
for -mgeneral-regs-only.
* config/i386/i386.c (ix86_option_override_internal): Don't
enable x87 instructions if only the general registers are
allowed.
* config/i386/i386.opt: Add -mgeneral-regs-only.
* doc/invoke.texi: Document -mgeneral-regs-only.
gcc/testsuite/
PR target/70738
* gcc.target/i386/pr70738-1.c: Likewise.
* gcc.target/i386/pr70738-2.c: Likewise.
* gcc.target/i386/pr70738-3.c: Likewise.
* gcc.target/i386/pr70738-4.c: Likewise.
* gcc.target/i386/pr70738-5.c: Likewise.
* gcc.target/i386/pr70738-6.c: Likewise.
* gcc.target/i386/pr70738-7.c: Likewise.
* gcc.target/i386/pr70738-8.c: Likewise.
* gcc.target/i386/pr70738-9.c: Likewise.
From-SVN: r236570
Jakub Jelinek [Sun, 22 May 2016 10:28:06 +0000 (12:28 +0200)]
sse.md (vec_set_lo_<mode><mask_name>, [...]): Add && <mask_avx512dq_condition> condition.
* config/i386/sse.md (vec_set_lo_<mode><mask_name>,
vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
of 64x2.
* gcc.target/i386/avx512dq-vinsert-1.c: New test.
* gcc.target/i386/avx512vl-vinsert-1.c: New test.
From-SVN: r236569
Jakub Jelinek [Sun, 22 May 2016 10:27:27 +0000 (12:27 +0200)]
sse.md (vec_set_lo_v16hi, [...]): Add alternative with v constraint instead of x and vinserti32x4 insn.
* config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
v constraint instead of x and vinserti32x4 insn.
* gcc.target/i386/avx512vl-vinserti32x4-3.c: New test.
From-SVN: r236568
Jakub Jelinek [Sun, 22 May 2016 10:26:52 +0000 (12:26 +0200)]
sse.md (i128vldq): New mode iterator.
* config/i386/sse.md (i128vldq): New mode iterator.
(avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
avx512dq and avx512vl alternatives.
* gcc.target/i386/avx512dq-vbroadcast-2.c: New test.
* gcc.target/i386/avx512vl-vbroadcast-2.c: New test.
From-SVN: r236567
Jakub Jelinek [Sun, 22 May 2016 10:25:55 +0000 (12:25 +0200)]
sse.md (avx2_vec_dupv4df): Use v instead of x constraint, use maybe_evex prefix instead of vex.
* config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
constraint, use maybe_evex prefix instead of vex.
(vec_dupv4sf): Use v constraint instead of x for output
operand except for noavx alternative, use Yv constraint
instead of x for input. Use maybe_evex prefix instead of vex.
(*vec_dupv4si): Likewise.
(*vec_dupv2di): Likewise.
* gcc.target/i386/avx512vl-vbroadcast-1.c: New test.
From-SVN: r236566
Kugan Vivekanandarajah [Sun, 22 May 2016 08:13:13 +0000 (08:13 +0000)]
re PR tree-optimization/40921 (missed optimization: x + (-y * z * z) => x - y * z * z)
gcc/testsuite/ChangeLog:
2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/40921
* gcc.dg/tree-ssa/pr40921.c: New test.
gcc/ChangeLog:
2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/40921
* tree-ssa-reassoc.c (try_special_add_to_ops): New.
(linearize_expr_tree): Call try_special_add_to_ops.
(reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
From-SVN: r236564
GCC Administrator [Sun, 22 May 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r236563
Senthil Kumar Selvaraj [Sat, 21 May 2016 10:54:09 +0000 (10:54 +0000)]
avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET to computed stack_usage.
* config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
to computed stack_usage.
From-SVN: r236559
Pitchumani Sivanupandi [Sat, 21 May 2016 10:47:27 +0000 (10:47 +0000)]
re PR target/71103 (avr-gcc crashes with unrecognizable insn error)
PR target/71103
* config/avr/avr.md (define_expand "mov<mode>"): If the source
operand is subreg (symbol_ref) then move the symbol ref to register.
PR target/71103
* gcc.target/avr/pr71103.c: New test.
From-SVN: r236558
Jan Hubicka [Sat, 21 May 2016 09:46:22 +0000 (11:46 +0200)]
* tree.c (array_at_struct_end_p): Look through MEM_REF.
From-SVN: r236557
Kugan Vivekanandarajah [Sat, 21 May 2016 07:09:16 +0000 (07:09 +0000)]
re PR tree-optimization/71179 (ice fold_convert_loc, at fold-const.c:2360)
gcc/testsuite/ChangeLog:
2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71179
* gcc.dg/tree-ssa/pr71179.c: New test.
gcc/ChangeLog:
2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71179
* tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
VECTOR type.
From-SVN: r236554
GCC Administrator [Sat, 21 May 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r236553
Martin Sebor [Fri, 20 May 2016 22:23:10 +0000 (22:23 +0000)]
PR c/71115 - [4.9/5/6/7 Regression] Missing warning: excess elements
PR c/71115 - [4.9/5/6/7 Regression] Missing warning: excess elements
in struct initializer
gcc/c/ChangeLog:
2016-05-20 Martin Sebor <msebor@redhat.com>
PR c/71115
* c-typeck.c (error_init): Use
expansion_point_location_if_in_system_header.
(warning_init): Same.
gcc/testsuite/ChangeLog:
2016-05-20 Martin Sebor <msebor@redhat.com>
PR c/71115
* gcc.dg/init-excess-2.c: New test.
From-SVN: r236549
Eric Botcazou [Fri, 20 May 2016 21:46:58 +0000 (21:46 +0000)]
tree-vrp.c (compare_values_warnv): Simplify handling of symbolic ranges by calling get_single_symbol and tidy up.
* tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
ranges by calling get_single_symbol and tidy up. Look more closely
into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
ada/
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
Make same-sized subtypes of signed base types signed.
* gcc-interface/utils.c (make_type_from_size): Adjust to above change.
(unchecked_convert): Likewise.
From-SVN: r236548
Jeff Law [Fri, 20 May 2016 21:32:56 +0000 (15:32 -0600)]
* bitmap.c (bitmap_find_bit): Remove useless test.
From-SVN: r236546
Segher Boessenkool [Fri, 20 May 2016 21:31:17 +0000 (23:31 +0200)]
This fixes a bug in my r236491: on nvptx, functions without prologue
would not get an epilogue either.
* function.c (thread_prologue_and_epilogue_insns): Commit the
insertion of the epilogue.
From-SVN: r236545
Martin Jambor [Fri, 20 May 2016 21:04:31 +0000 (23:04 +0200)]
[PR 70884] Constant pool SRA fix
2016-05-20 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/70884
* tree-sra.c (initialize_constant_pool_replacements): Do not check
should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
(sort_and_splice_var_accesses): Do not consider multiple scalar reads
of constant pool data as a reason for scalarization.
testsuite/
* gcc.dg/tree-ssa/pr70919.c: New test.
From-SVN: r236544
Nathan Sidwell [Fri, 20 May 2016 20:58:21 +0000 (20:58 +0000)]
constexpr.c (cxx_bind_parameters_in_call): Avoid gratuitous if ...
* constexpr.c (cxx_bind_parameters_in_call): Avoid gratuitous if
... goto.
(cxx_eval_call_expression): Fix comment grammar.
From-SVN: r236543
Eric Botcazou [Fri, 20 May 2016 20:49:33 +0000 (20:49 +0000)]
arm.c (arm_expand_prologue): Set the stack usage to 0 for naked functions.
* config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
for naked functions.
(thumb1_expand_prologue): Likewise.
From-SVN: r236539