]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
4 years ago PR c++/52269
mpolacek [Sat, 8 Jun 2019 14:10:42 +0000 (14:10 +0000)] 
PR c++/52269
* g++.dg/cpp0x/constexpr-decltype4.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272083 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago2019-06-08 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sat, 8 Jun 2019 13:50:42 +0000 (13:50 +0000)] 
2019-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
Tomáš Trnka  <trnka@scm.com>

PR fortran/90744
* trans-types.c (get_formal_from_actual_arglist): Unset typespec
flags which make no sense for procedures without explicit
interface.

2019-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
Tomáš Trnka  <trnka@scm.com>

PR fortran/90744
* gfortran.dg/deferred_character_33.f90: New test.
* gfortran.dg/deferred_character_33a.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272082 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoUse consistent spelling of PCLMUL instruction
redi [Sat, 8 Jun 2019 13:40:25 +0000 (13:40 +0000)] 
Use consistent spelling of PCLMUL instruction

* doc/invoke.texi (C Dialect Options): Minor grammatical change.
(x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272081 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago PR c++/77548
mpolacek [Sat, 8 Jun 2019 13:13:48 +0000 (13:13 +0000)] 
PR c++/77548
* g++.dg/other/pr77548.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272079 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago PR c++/72845
mpolacek [Sat, 8 Jun 2019 12:51:07 +0000 (12:51 +0000)] 
PR c++/72845
* g++.dg/cpp0x/noexcept41.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272078 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago2019-06-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
prathamesh3492 [Sat, 8 Jun 2019 08:24:43 +0000 (08:24 +0000)] 
2019-06-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* gcc.target/aarch64/sve/init_1.c: Remove options
-O2 -fno-schedule-insns and instead pass -O.
Update assembly in comments.
* gcc.target/aarch64/sve/init_2.c: Likewise.
* gcc.target/aarch64/sve/init_3.c: Likewise.
* gcc.target/aarch64/sve/init_4.c: Likewise.
* gcc.target/aarch64/sve/init_5.c: Likewise and additionally
adjust dg-scan.
* gcc.target/aarch64/sve/init_6.c: Likewise.
* gcc.target/aarch64/sve/init_7.c: Likewise.
* gcc.target/aarch64/sve/init_8.c: Likewise.
* gcc.target/aarch64/sve/init_9.c: Likewise.
* gcc.target/aarch64/sve/init_10.c: Likewise.
* gcc.target/aarch64/sve/init_11.c: Likewise.
* gcc.target/aarch64/sve/init_12.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272073 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago PR c++/77747
mpolacek [Sat, 8 Jun 2019 00:48:54 +0000 (00:48 +0000)] 
PR c++/77747
* g++.dg/cpp0x/inh-ctor33.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272071 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago PR c++/77967
mpolacek [Sat, 8 Jun 2019 00:30:51 +0000 (00:30 +0000)] 
PR c++/77967
* g++.dg/cpp0x/alias-decl-68.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272070 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago PR c++/77771
mpolacek [Sat, 8 Jun 2019 00:17:13 +0000 (00:17 +0000)] 
PR c++/77771
* g++.dg/cpp0x/constexpr-77771.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272068 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoDaily bump.
gccadmin [Sat, 8 Jun 2019 00:16:31 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272067 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago * lib/scanasm.exp (dg-function-on-line): Add pattern for hppa*-*-linux*.
danglin [Fri, 7 Jun 2019 23:15:49 +0000 (23:15 +0000)] 
* lib/scanasm.exp (dg-function-on-line): Add pattern for hppa*-*-linux*.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272060 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago PR target/90751
danglin [Fri, 7 Jun 2019 23:13:08 +0000 (23:13 +0000)] 
PR target/90751
* config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
Call pa_output_function_label>
(TARGET_ASM_FUNCTION_PROLOGUE): define.
* config/pa/pa-protos.h (pa_output_function_label): Declare.
* config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
to declaration.
(pa_linux_output_function_prologue): Declare.
(TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
(pa_output_function_label): New.
(pa_output_function_prologue): Revise to use pa_output_function_label.
(pa_linux_output_function_prologue): New.
* config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272059 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoSplit up value_range::intersect into base (value_range_base) and
aldyh [Fri, 7 Jun 2019 22:18:24 +0000 (22:18 +0000)] 
Split up value_range::intersect into base (value_range_base) and
derived versions (value_range).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272058 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoSynchronize libstdc++ PSTL with upstream LLVM PSTL
rodgertq [Fri, 7 Jun 2019 22:01:16 +0000 (22:01 +0000)] 
Synchronize libstdc++ PSTL with upstream LLVM PSTL

Rename PSTL macro's consistent with libstdc++ (and llvm upstream
project) standards.
* include/bits/c++config: Rename all macros of the form __PSTL* to
_PSTL*.
* include/std/algorithm: Likewise.
* include/std/execution: Likewise.
* include/std/numeric: Likewise.
* include/std/memory: Likewise.
* include/pstl/glue_memory_impl.h: Likewise.
* include/pstl/numeric_impl.h: Likewise.
* include/pstl/glue_memory_defs.h: Likewise.
* include/pstl/execution_defs.h: Likewise.
* include/pstl/utils.h: Likewise.
* include/pstl/algorithm_fwd.h: Likewise.
* include/pstl/unseq_backend_simd.h: Likewise.
* include/pstl/glue_execution_defs.h: Likewise.
* include/pstl/algorithm_impl.h: Likewise.
* include/pstl/parallel_impl.h: Likewise.
* include/pstl/memory_impl.h: Likewise.
* include/pstl/glue_numeric_defs.h: Likewise.
* include/pstl/parallel_backend_utils.h: Likewise.
* include/pstl/glue_algorithm_defs.h: Likewise.
* include/pstl/parallel_backend.h: Likewise.
* include/pstl/glue_numeric_impl.h: Likewise.
* include/pstl/parallel_backend_tbb.h: Likewise.
* include/pstl/numeric_fwd.h: Likewise.
* include/pstl/glue_algorithm_impl.h: Likewise.
* include/pstl/execution_impl.h: Likewise.
* include/pstl/pstl_config.h: Likewise.
* testsuite/util/pstl/pstl_test_config.h: Likewise.
* testsuite/util/pstl/test_utils.h: Likewise.
* testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
Likewise.
* testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
Likewise.
* testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
Likewise.
* testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
* testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: Likewise.
* testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
* testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
Likewise.
* testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: Likewise.

Rename header guards to be consistent with upstream project's
conventions.
* include/pstl/glue_memory_impl.h: Rename all macros of the form
_PSTL_(.*)_H to _PSTL_\U\1_H.
* include/pstl/numeric_impl.h: Likewise.
* include/pstl/glue_memory_defs.h: Likewise.
* include/pstl/execution_defs.h: Likewise.
* include/pstl/utils.h: Likewise.
* include/pstl/algorithm_fwd.h: Likewise.
* include/pstl/unseq_backend_simd.h: Likewise.
* include/pstl/glue_execution_defs.h: Likewise.
* include/pstl/algorithm_impl.h: Likewise.
* include/pstl/parallel_impl.h: Likewise.
* include/pstl/memory_impl.h: Likewise.
* include/pstl/glue_numeric_defs.h: Likewise.
* include/pstl/parallel_backend_utils.h: Likewise.
* include/pstl/glue_algorithm_defs.h: Likewise.
* include/pstl/parallel_backend.h: Likewise.
* include/pstl/glue_numeric_impl.h: Likewise.
* include/pstl/parallel_backend_tbb.h: Likewise.
* include/pstl/numeric_fwd.h: Likewise.
* include/pstl/glue_algorithm_impl.h: Likewise.
* include/pstl/execution_impl.h: Likewise.
* include/pstl/pstl_config.h: Likewise.
* testsuite/util/pstl/pstl_test_config.h: Likewise.

Synchronize libstdc++ parallel algorithms with upstream
project.
* include/pstl/algorithm_fwd.h: Synchronize with
upstream PSTL project.
* include/pstl/algorithm_impl.h: Likewise.
* include/pstl/execution_defs.h: Likewise.
* include/pstl/execution_impl.h: Likewise.
* include/pstl/glue_algorithm_impl.h: Likewise.
* include/pstl/glue_execution_defs.h: Likewise.
* include/pstl/numeric_fwd.h: Likewise.
* include/pstl/numeric_impl.h: Likewise.
* include/pstl/parallel_backend.h: Likewise.
* include/pstl/pstl_config.h: Likewise.
* include/pstl/unseq_backend_simd.h: Likewise.
* include/pstl/parallel_backend_serial.h: New file.
* include/Makefile.am (pstl_headers): Add
parallel_backend_serial.h.
* include/Makefile.in: Regenerate.

Clean up non-conforming names
* include/pstl/algorithm_impl.h (__parallel_set_union_op):
Uglfiy copy_range1 and copy_range2
(__pattern_walk2_n): Rename local n to __n
* include/pstl/parallel_backend_tbb.h (struct __binary_no_op):
Rename parameter _T to _Tp.

Integrate non-TBB serial backend support
* include/bits/c++config: Adjust TBB detection logic to select serial
PSTL backend if no TBB present.
* testsuite/utils/pstl/test_utils.h: Remove check for
_PSTL_USE_PAR_POLICIES

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272056 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago compiler: improve write barrier generation
ian [Fri, 7 Jun 2019 21:16:11 +0000 (21:16 +0000)] 
compiler: improve write barrier generation

    For string, slice, interface values, do assignments field by
    field instead of using typedmemmove.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/181297

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272055 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoAvoid constexpr garbage for implicit conversion to void.
jason [Fri, 7 Jun 2019 21:08:26 +0000 (21:08 +0000)] 
Avoid constexpr garbage for implicit conversion to void.

* constexpr.c (cxx_eval_constant_expression): Call
STRIP_ANY_LOCATION_WRAPPER early.
[CONVERT_EXPR]: Don't build anything for conversion to void.
[ADDR_EXPR]: ggc_free unused ADDR_EXPR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272054 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoFix test that gets skipped as unsupported
redi [Fri, 7 Jun 2019 19:57:28 +0000 (19:57 +0000)] 
Fix test that gets skipped as unsupported

* testsuite/24_iterators/container_access.cc: Move dg-options before
dg-do directive so the target check uses the -std option.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272051 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoPR libstdc++/90770 fix missing src/debug/Makefile
redi [Fri, 7 Jun 2019 19:57:19 +0000 (19:57 +0000)] 
PR libstdc++/90770 fix missing src/debug/Makefile

PR libstdc++/90770
* configure: Regenerate.
* src/Makefile.am (stamp-debug): Also test for missing makefile.
* src/Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272050 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago * Makefile.in (genprogerr): Add condmd.
jakub [Fri, 7 Jun 2019 15:38:35 +0000 (15:38 +0000)] 
* Makefile.in (genprogerr): Add condmd.
(genprog): Remove it here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272047 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago2019-06-07 Mark Eggleston <mark.eggleston@codethink.com>
jvdelisle [Fri, 7 Jun 2019 14:25:39 +0000 (14:25 +0000)] 
2019-06-07  Mark Eggleston <mark.eggleston@codethink.com>

PR fortran/89100
* gfortran.dg/fmt_f_default_field_width_3.f90: Modify dg-error
to allow use when kind=16 is not supported.
* gfortran.dg/fmt_g_default_field_width_3.f90: Modify dg-error
to allow use when kind=16 is not supported.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272046 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago compiler: support inlining functions with if statements
ian [Fri, 7 Jun 2019 14:19:51 +0000 (14:19 +0000)] 
compiler: support inlining functions with if statements

    This increases the number of inlinable functions from 455 to 500.
    An example of a newly inlinable function is strings.Compare.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/181137

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272045 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoDocument -march=gfx906 option.
ams [Fri, 7 Jun 2019 14:00:58 +0000 (14:00 +0000)] 
Document -march=gfx906 option.

2019-06-07  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* doc/invoke.texi (AMD GCN Options): Add gfx906.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272044 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago compiler: do simple deadcode elimination
ian [Fri, 7 Jun 2019 13:40:26 +0000 (13:40 +0000)] 
compiler: do simple deadcode elimination

    Normally the backend will do deadcode elimination and this is
    sufficient. However, the escape analysis operates on the AST that
    may have deadcode, and may cause things to escape that otherwise
    do not.

    This CL adds a simple deadcode elimination, run before the escape
    analysis.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/181080

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272043 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago2019-06-07 Richard Biener <rguenther@suse.de>
rguenth [Fri, 7 Jun 2019 12:14:55 +0000 (12:14 +0000)] 
2019-06-07  Richard Biener  <rguenther@suse.de>

PR debug/90574
* tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
that appear after user labels.

* gcc.misc-tests/gcov-pr90574-1.c: New testcase.
* gcc.misc-tests/gcov-pr90574-2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272040 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoEnable sanitization for hash tables.
marxin [Fri, 7 Jun 2019 12:13:13 +0000 (12:13 +0000)] 
Enable sanitization for hash tables.

2019-06-07  Martin Liska  <mliska@suse.cz>

* cselib.c (cselib_init): Disable hash table
sanitization.
* hash-set.h: Pass new default argument to m_table.
* hash-table.c: Add global variable with hash table
sanitization limit.
* hash-table.h (Allocator>::hash_table): Add new argument
to ctor.
(hashtab_chk_error): New.
* params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
* toplev.c (process_options): Set hash_table_sanitize_eq_limit
from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272038 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago * common.opt (flto-odr-type-merging): Ignore.
hubicka [Fri, 7 Jun 2019 08:15:00 +0000 (08:15 +0000)] 
* common.opt (flto-odr-type-merging): Ignore.
* invoke.texi (-flto-odr-type-merging): Remove.
* ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
(can_be_vtable_hashed_p): Remove.
(hash_odr_vtable): Remove.
(odr_vtable_hasher::hash): Remove.
(types_same_for_odr): Remove.
(types_odr_comparable): Remove.
(odr_vtable_hasher::equal): Remove.
(odr_vtable_hash_type, odr_vtable_hash): Remove.
(add_type_duplicate): Do not synchronize vtable and name hashtables.
(get_odr_type): Do not use vtable hash.
(dump_odr_type): Remove commented out code.
(build_type_inheritance_graph): Do not allocate vtable hash.
(rebuild_type_inheritance_graph): Do not delete vtable hash.
* ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
(odr_type_p): Likewise.
* tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272037 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoMake aliasing_component_refs_p to work harder when same_type_for_tbaa returns -1
hubicka [Fri, 7 Jun 2019 08:14:04 +0000 (08:14 +0000)] 
Make aliasing_component_refs_p to work harder when same_type_for_tbaa returns -1

* tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
immediately after same_types_for_tbaa_p returns -1 and continue
looking for possible exact match; if matching types are arrays
watch for partial overlaps.
(indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
(indirect_refs_may_alias_p): Do type based disambiguation first;
update comment.

* gcc.dg/lto/alias-access-path-2.0.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272036 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoFix fwprop call to call to paradoxical_subreg_p
rsandifo [Fri, 7 Jun 2019 07:40:20 +0000 (07:40 +0000)] 
Fix fwprop call to call to paradoxical_subreg_p

"mode" is the mode of "x", not the replacement value.

2019-06-06  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272032 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoRemove indirect call top N counter type.
marxin [Fri, 7 Jun 2019 06:41:58 +0000 (06:41 +0000)] 
Remove indirect call top N counter type.

2019-06-07  Martin Liska  <mliska@suse.cz>

* doc/invoke.texi: Remove param.
* gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
Remove.
* gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
(GCOV_ICALL_TOPN_NCOUNTS): Likewise.
* params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
* profile.c (instrument_values): Remove
HIST_TYPE_INDIR_CALL_TOPN.
* tree-profile.c (init_ic_make_global_vars):
Always build __gcov_indirect_call only.
(gimple_init_gcov_profiler): Remove usage
of PARAM_INDIR_CALL_TOPN_PROFILE.
(gimple_gen_ic_profiler): Likewise.
* value-prof.c (dump_histogram_value): Likewise.
(stream_in_histogram_value): Likewise.
(gimple_indirect_call_to_profile): Likewise.
(gimple_find_values_to_profile): Likewise.
* value-prof.h (enum hist_type): Likewise.
2019-06-07  Martin Liska  <mliska@suse.cz>

* Makefile.in: Remove usage of
_gcov_merge_icall_topn.
* libgcov-driver.c (gcov_sort_n_vals): Remove.
(gcov_sort_icall_topn_counter): Likewise.
(gcov_sort_topn_counter_arrays): Likewise.
(dump_one_gcov): Remove call to gcov_sort_topn_counter_arrays.
* libgcov-merge.c (__gcov_merge_icall_topn): Remove.
* libgcov-profiler.c (__gcov_topn_value_profiler_body):
Likewise.
(GCOV_ICALL_COUNTER_CLEAR_THRESHOLD): Remove.
(struct indirect_call_tuple): Remove.
(__gcov_indirect_call_topn_profiler): Remove.
* libgcov-util.c (__gcov_icall_topn_counter_op): Remove.
* libgcov.h (gcov_sort_n_vals): Remove.
(L_gcov_merge_icall_topn): Likewise.
(__gcov_merge_icall_topn): Likewise.
(__gcov_indirect_call_topn_profiler): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272030 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoFix a thinko in tree-ssa-loop.c.
marxin [Fri, 7 Jun 2019 05:35:19 +0000 (05:35 +0000)] 
Fix a thinko in tree-ssa-loop.c.

2019-06-07  Martin Liska  <mliska@suse.cz>

* tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272029 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoAdd warn_unused_result for malloc-like functions (PR tree-optimization/78902).
marxin [Fri, 7 Jun 2019 05:33:11 +0000 (05:33 +0000)] 
Add warn_unused_result for malloc-like functions (PR tree-optimization/78902).

2019-06-07  Martin Liska  <mliska@suse.cz>

PR tree-optimization/78902
* builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
(ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
(ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
(ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
(ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
(ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
(ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
(ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
(ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
(ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
(ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
(ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST):  Remove.
(ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
New.
(ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
(ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
(ATTR_MALLOC_NOTHROW_NONNULL): Remove.
(ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
(ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
(ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
(ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
(ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
* builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
warn_unused_result attribute.
(BUILT_IN_STRDUP): Likewise.
(BUILT_IN_STRNDUP): Likewise.
(BUILT_IN_ALLOCA): Likewise.
(BUILT_IN_CALLOC): Likewise.
(BUILT_IN_MALLOC): Likewise.
(BUILT_IN_REALLOC): Likewise.
2019-06-07  Martin Liska  <mliska@suse.cz>

PR tree-optimization/78902
* c-c++-common/asan/alloca_loop_unpoisoning.c: Use result
of __builtin_alloca.
* c-c++-common/asan/pr88619.c: Likewise.
* g++.dg/overload/using2.C: Likewise for malloc.
* gcc.dg/attr-alloc_size-5.c: Add new dg-warning.
* gcc.dg/nonnull-3.c: Use result of __builtin_strdup.
* gcc.dg/pr43643.c: Likewise.
* gcc.dg/pr59717.c: Likewise for calloc.
* gcc.dg/torture/pr71816.c: Likewise.
* gcc.dg/tree-ssa/pr78886.c: Likewise.
* gcc.dg/tree-ssa/pr79697.c: Likewise.
* gcc.dg/pr78902.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272028 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoDaily bump.
gccadmin [Fri, 7 Jun 2019 00:16:19 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272027 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago go/internal/gccgoimporter: ignore unexported and imported names
ian [Fri, 7 Jun 2019 00:07:50 +0000 (00:07 +0000)] 
go/internal/gccgoimporter: ignore unexported and imported names

    Due to inlining, we can now see unexported functions and variables,
    and functions and variables imported from different packages.
    Ignore them rather than reporting them from this package.

    Handle $hash and $equal functions consistently, so that we discard the
    inline body if there is one.

    Ignore names created for result parameters for inlining purposes.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180758

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272023 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago compiler: permit inlining temporary statements and references
ian [Thu, 6 Jun 2019 23:34:00 +0000 (23:34 +0000)] 
compiler: permit inlining temporary statements and references

    This increases the number of inlinable functions from 439 to 455.
    An example is math/bits.Mul32, which uses temporaries to handle the
    tuple assignment.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180837

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272022 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoRISC-V: Move STARTFILE_PREFIX_SPEC into target OS files.
wilson [Thu, 6 Jun 2019 23:18:48 +0000 (23:18 +0000)] 
RISC-V: Move STARTFILE_PREFIX_SPEC into target OS files.

gcc/
PR target/89955
* config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
* config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
* config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272021 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago * sv.po: Update.
jsm28 [Thu, 6 Jun 2019 23:14:54 +0000 (23:14 +0000)] 
* sv.po: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272019 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoDarwin, c++, testsuite - adjust alignas4.C for Darwin's asm syntax.
iains [Thu, 6 Jun 2019 19:16:31 +0000 (19:16 +0000)] 
Darwin, c++, testsuite - adjust alignas4.C for Darwin's asm syntax.

Darwin produces aligned zerofill directives for the objects represented.
We can scan for these using "lp64" and "ilp32" to catch operation on both
X86 and PowerPC ports (the test is for the alignment which is the trailing
value in the zerofill directive, as a power of two).

gcc/testsuite/ChangeLog:

2019-06-06  Iain Sandoe  <iain@sandoe.co.uk>

* g++.dg/cpp0x/alignas4.C: Amend test to check for zerofill syntax
on Darwin.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272018 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoDarwin, PowerPC, libgcc - Ensure unwinder is built with altivec enabled.
iains [Thu, 6 Jun 2019 19:02:54 +0000 (19:02 +0000)] 
Darwin, PowerPC, libgcc - Ensure unwinder is built with altivec enabled.

When libgcc is built on Darwin, it is usually built for the earliest potential
target (Darwin8, 10.4).  Build for that revision default to assuming that the
processor might be G3 (without vector ops) and there is an outlined function
used for save/restore that checks whether the processor is G3 or G4+ at run-
time.  However, the unwinder itself needs to be built with the assumption of
vector usage so that the relevant outlined functions are called.

2019-06-06  Iain Sandoe  <iain@sandoe.co.uk>

* config/rs6000/t-darwin: Ensure that the unwinder is built with
altivec enabled.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272017 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agogcc/ChangeLog:
msebor [Thu, 6 Jun 2019 18:46:20 +0000 (18:46 +0000)] 
gcc/ChangeLog:

* tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
(handle_builtin_malloc): Remove trailing spaces.
(handle_builtin_memset): Same.
(handle_builtin_memcmp): Same.
(compute_string_length): Same.
(determine_min_objsize): Same.
(handle_builtin_string_cmp): Same.
(handle_char_store): Same.  Break up excessively long line.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272016 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoDrop alignment check in build_reconstructed_reference
jamborm [Thu, 6 Jun 2019 16:33:04 +0000 (16:33 +0000)] 
Drop alignment check in build_reconstructed_reference

2019-06-06  Martin Jambor  <mjambor@suse.cz>

* tree-sra.c (build_reconstructed_reference): Drop the alignment
check.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272013 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoMake SRA re-construct orginal memory accesses when easy
jamborm [Thu, 6 Jun 2019 16:31:20 +0000 (16:31 +0000)] 
Make SRA re-construct orginal memory accesses when easy

2019-06-06  Martin Jambor  <mjambor@suse.cz>

* tree-sra.c (struct access): New field grp_same_access_path.
(dump_access): Dump it.
(build_reconstructed_reference): New function.
(build_ref_for_model): Use it if possible.
(path_comparable_for_same_access): New function.
(same_access_path_p): Likewise.
(sort_and_splice_var_accesses): Set the new flag.
(analyze_access_subtree): Likewise.
(propagate_subaccesses_across_link): Propagate zero value of the new
flag down the access tree.

testsuite/
* gcc.dg/tree-ssa/alias-access-path-1.c: Remove -fno-tree-sra option.
* gcc.dg/tree-ssa/ssa-dse-26.c: Disable FRE.
* testsuite/gnat.dg/opt39.adb: Adjust scan dump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272012 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoAvoid unnecessary inclusion of <stdexcept> header
redi [Thu, 6 Jun 2019 15:34:56 +0000 (15:34 +0000)] 
Avoid unnecessary inclusion of <stdexcept> header

This can greatly reduce the amount of preprocessed code that is included
by other headers, because <stdexcept> depends on <string> which is huge.

* include/std/array: Do not include <stdexcept>.
* include/std/optional: Include <exception> and
<bits/exception_defines.h> instead of <stdexcept>.
* testsuite/20_util/function_objects/searchers.cc: Include <cctype>
for std::isalnum.
* testsuite/20_util/tuple/cons/deduction.cc: Include <memory> for
std::allocator.
* testsuite/23_containers/map/erasure.cc: Include <string>.
* testsuite/23_containers/unordered_map/erasure.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272011 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoFix more failing tests for C++98 mode
redi [Thu, 6 Jun 2019 15:34:51 +0000 (15:34 +0000)] 
Fix more failing tests for C++98 mode

* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Add
dg-prune-output for different C++98 diagnostic.
* testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc:
Likewise.
* testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc:
Likewise.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/libstdc++-prettyprinters/compat.cc: Do not run for C++98.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272010 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoFix more tests that fail in C++2a mode
redi [Thu, 6 Jun 2019 15:34:45 +0000 (15:34 +0000)] 
Fix more tests that fail in C++2a mode

* testsuite/23_containers/unordered_map/requirements/debug_container.cc:
Do not test allocator rebinding extension for C++2a.
* testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Change
dg-do directive for C++17 and C++2a.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272009 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoAdd -march=gfx906 for AMD GCN.
ams [Thu, 6 Jun 2019 15:11:59 +0000 (15:11 +0000)] 
Add -march=gfx906 for AMD GCN.

2019-06-06  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
* config/gcn/gcn.opt (gpu_type): Add gfx906.
* config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
(MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
Add gfx906.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272007 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago[AArch64] PR tree-optimization/90332: Implement vec_init<M><N> where N is a vector...
ktkachov [Thu, 6 Jun 2019 13:59:07 +0000 (13:59 +0000)] 
[AArch64] PR tree-optimization/90332: Implement vec_init<M><N> where N is a vector mode

This patch fixes the failing gcc.dg/vect/slp-reduc-sad-2.c testcase on aarch64
by implementing a vec_init optab that can handle two half-width vectors producing a full-width one
by concatenating them.

In the gcc.dg/vect/slp-reduc-sad-2.c case it's a V8QI reg concatenated with a V8QI const_vector of zeroes.
This can be implemented efficiently using the aarch64_combinez pattern that just loads a D-register to make
use of the implicit zero-extending semantics of that load.
Otherwise it concatenates the two vector using aarch64_simd_combine.

With this patch I'm seeing the effect from richi's original patch that added gcc.dg/vect/slp-reduc-sad-2.c on aarch64
and 525.x264_r improves by about 1.5%.

PR tree-optimization/90332
* config/aarch64/aarch64.c (aarch64_expand_vector_init):
Handle VALS containing two vectors.
* config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
to...
(@aarch64_combinez<mode>): ... This.
(*aarch64_combinez_be<mode>): Rename to...
(@aarch64_combinez_be<mode>): ... This.
(vec_init<mode><Vhalf>): New define_expand.
* config/aarch64/iterators.md (Vhalf): Handle V8HF.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272002 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoFix tests that fail in C++2a mode
redi [Thu, 6 Jun 2019 13:36:27 +0000 (13:36 +0000)] 
Fix tests that fail in C++2a mode

The GNU extension that allows using the wrong allocator type with a
container is disabled for C++2a mode, because the standard now requires
a diagnostic. Fix the tests that fail when -std=gnu++2a is used.

Also remove some reundant tests that are duplicates of another test
except for a target specifier of c++11. Those tests previously set
-std=gnu++11 explicitly but that was replaced globally with a target
specifier. These tests existed to verify that explicit instantiation
worked for both C++98 and C++11 modes, but now do nothing because both
copies of the test use -std=gnu++14 by default. Instead of duplicating
the test we should be regularly running the whole testsuite with
different -std options.

* testsuite/23_containers/deque/requirements/explicit_instantiation/
1_c++0x.cc: Remove redundant test.
* testsuite/23_containers/deque/requirements/explicit_instantiation/
2.cc: Use target selector instead of preprocessor condition.
* testsuite/23_containers/deque/requirements/explicit_instantiation/
3.cc: Do not run test for C++2a.
* testsuite/23_containers/forward_list/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/
explicit_instantiation/5.cc: Do not test allocator rebinding extension
for C++2a.
* testsuite/23_containers/list/requirements/explicit_instantiation/
1_c++0x.cc: Remove redundant test.
* testsuite/23_containers/list/requirements/explicit_instantiation/
2.cc: Use target selector instead of preprocessor condition.
* testsuite/23_containers/list/requirements/explicit_instantiation/
3.cc: Do not run test for C++2a.
* testsuite/23_containers/list/requirements/explicit_instantiation/
5.cc: Do not test allocator rebinding extension for C++2a.
* testsuite/23_containers/map/requirements/explicit_instantiation/
1_c++0x.cc: Remove redundant test.
* testsuite/23_containers/map/requirements/explicit_instantiation/
2.cc: Adjust comment.
* testsuite/23_containers/map/requirements/explicit_instantiation/
3.cc: Do not run test for C++2a.
* testsuite/23_containers/map/requirements/explicit_instantiation/
5.cc: Do not test allocator rebinding extension for C++2a.
* testsuite/23_containers/multimap/requirements/explicit_instantiation/
1_c++0x.cc: Remove redundant test.
* testsuite/23_containers/multimap/requirements/explicit_instantiation/
3.cc: Do not run test for C++2a.
* testsuite/23_containers/multimap/requirements/explicit_instantiation/
5.cc: Do not test allocator rebinding extension for C++2a.
* testsuite/23_containers/multiset/requirements/explicit_instantiation/
3.cc: Do not run test for C++2a.
* testsuite/23_containers/multiset/requirements/explicit_instantiation/
5.cc: Do not test allocator rebinding extension for C++2a.
* testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
Do not run test for C++2a.
* testsuite/23_containers/set/requirements/explicit_instantiation/
1_c++0x.cc: Remove redundant test.
* testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
Do not test allocator rebinding extension for C++2a.
* testsuite/23_containers/unordered_map/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/unordered_map/requirements/
explicit_instantiation/5.cc: Do not test allocator rebinding extension
for C++2a.
* testsuite/23_containers/unordered_multimap/requirements/
explicit_instantiation/3.cc: Do not run test for C++2a.
* testsuite/23_containers/unordered_multimap/requirements/
explicit_instantiation/5.cc: Do not test allocator rebinding extension
for C++2a.
* testsuite/23_containers/unordered_multiset/requirements/
explicit_instantiation/3.cc: Do not run test for C++2a.
* testsuite/23_containers/unordered_multiset/requirements/
explicit_instantiation/5.cc: Do not test allocator rebinding extension
for C++2a.
* testsuite/23_containers/unordered_set/requirements/
explicit_instantiation/3.cc: Do not run test for C++2a.
* testsuite/23_containers/unordered_set/requirements/
explicit_instantiation/5.cc: Do not test allocator rebinding extension
for C++2a.
* testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
2.cc: Remove redundant test.
* testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
3.cc: Do not run test for C++2a.
* testsuite/23_containers/vector/requirements/explicit_instantiation/
3.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272001 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoRemove redundant static assertions in [meta.unary.prop] traits
redi [Thu, 6 Jun 2019 12:13:47 +0000 (12:13 +0000)] 
Remove redundant static assertions in [meta.unary.prop] traits

The type property predicates that are implemented by a compiler builtin
already do the right checks in the compiler. The checks for complete
type or unbounded arrays were wrong for these types anyway.

* include/std/type_traits (is_empty, is_polymorphic, is_final)
(is_abstract, is_aggregate): Remove static_assert.
* testsuite/20_util/is_abstract/incomplete_neg.cc: Check for error
from builtin only.
* testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise. Add
missing -std=gnu++17 option.
* testsuite/20_util/is_empty/incomplete_neg.cc: New test.
* testsuite/20_util/is_final/incomplete_neg.cc: New test.
* testsuite/20_util/is_polymorphic/incomplete_neg.cc: Check for error
from builtin only.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272000 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoFix tests that fail with -std=gnu++98 or -std=gnu++11
redi [Thu, 6 Jun 2019 12:13:42 +0000 (12:13 +0000)] 
Fix tests that fail with -std=gnu++98 or -std=gnu++11

* testsuite/18_support/set_terminate.cc: Do not run for C++98 mode.
* testsuite/18_support/set_unexpected.cc: Likewise.
* testsuite/20_util/is_nothrow_invocable/value.cc: Test converting to
void.
* testsuite/20_util/is_nothrow_invocable/value_ext.cc: Fix constexpr
function to be valid in C++11.
* testsuite/26_numerics/complex/proj.cc: Do not run for C++98 mode.
* testsuite/experimental/names.cc: Do not run for C++98 mode. Do not
include Library Fundamentals or Networking headers in C++11 mode.
* testsuite/ext/char8_t/atomic-1.cc: Do not run for C++98 mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271999 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoRefactor SFINAE constraints on std::tuple constructors
redi [Thu, 6 Jun 2019 12:13:36 +0000 (12:13 +0000)] 
Refactor SFINAE constraints on std::tuple constructors

Replace the _TC class template with the better-named _TupleConstraints
one, which provides a different set of member functions. The new members
do not distinguish construction from lvalues and rvalues, but expects
the caller to do that by providing different template arguments. Within
the std::tuple primary template and std::tuple<T1, T2> partial
specialization the _TupleConstraints members are used via new alias
templates like _ImplicitCtor and _ExplicitCtor which makes the
constructor constraints less verbose and repetitive. For example, where
we previously had:

     template<typename... _UElements, typename
             enable_if<
                _TMC<_UElements...>::template
                   _MoveConstructibleTuple<_UElements...>()
                 && _TMC<_UElements...>::template
                   _ImplicitlyMoveConvertibleTuple<_UElements...>()
                 && (sizeof...(_Elements) >= 1),
       bool>::type=true>
       constexpr tuple(_UElements&&... __elements)

We now have:

     template<typename... _UElements,
             bool _Valid = __valid_args<_UElements...>(),
             _ImplicitCtor<_Valid, _UElements...> = true>
      constexpr
      tuple(_UElements&&... __elements)

There are two semantic changes as a result of the refactoring:

- The allocator-extended default constructor is now constrained.
- The rewritten constraints fix PR 90700.

* include/std/tuple (_TC): Replace with _TupleConstraints.
(_TupleConstraints): New helper for SFINAE constraints, with more
expressive member functions to reduce duplication when used.
(tuple::_TC2, tuple::_TMC, tuple::_TNTC): Remove.
(tuple::_TCC): Replace dummy type parameter with bool non-type
parameter that can be used to check the pack size.
(tuple::_ImplicitDefaultCtor, tuple::_ExplicitDefaultCtor)
(tuple::_ImplicitCtor, tuple::_ExplicitCtor): New alias templates for
checking constraints in constructors.
(tuple::__valid_args, tuple::_UseOtherCtor, tuple::__use_other_ctor):
New SFINAE helpers.
(tuple::tuple): Use new helpers to reduce repitition in constraints.
(tuple::tuple(allocator_arg_t, const Alloc&)): Constrain.
(tuple<T1, T2>::_TCC, tuple<T1, T2>::_ImplicitDefaultCtor)
(tuple<T1, T2>::_ExplicitDefaultCtor, tuple<T1, T2>::_ImplicitCtor)
(tuple<T1, T2>::_ExplicitCtor): New alias templates for checking
constraints in constructors.
(tuple::__is_alloc_arg()): New SFINAE helpers.
(tuple<T1, T2>::tuple): Use new helpers to reduce repitition in
constraints.
(tuple<T1, T2>::tuple(allocator_arg_t, const Alloc&)): Constrain.
* testsuite/20_util/tuple/cons/90700.cc: New test.
* testsuite/20_util/tuple/cons/allocators.cc: Add default constructor
to meet new constraint on allocator-extended default constructor.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271998 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoMSP430: Use minimal code size library shift functions when optimizing for size
jozefl [Thu, 6 Jun 2019 12:10:19 +0000 (12:10 +0000)] 
MSP430: Use minimal code size library shift functions when optimizing for size

gcc/ChangeLog

2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
library functions only when not optimizing for size.
(ashlsi3): Likewise.
(ashrhi3): Likewise.
(ashrsi3): Likewise.
(lshrhi3): Likewise.
(lshrsi3): Likewise.

gcc/testsuite/ChangeLog

2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* gcc.target/msp430/size-optimized-shifts.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271997 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoFix PR88751
krebbel [Thu, 6 Jun 2019 11:35:04 +0000 (11:35 +0000)] 
Fix PR88751

This patch implements a small improvement for the heuristic in lra
which decides when it has to activate the simpler register allocation
algorithm.

gcc/ChangeLog:

2019-06-06  Andreas Krebbel  <krebbel@linux.ibm.com>

PR rtl-optimization/88751
* ira.c (ira): Use the number of the actually referenced registers
when calculating the threshold.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271996 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago * configure: Regenerate.
jakub [Thu, 6 Jun 2019 09:32:07 +0000 (09:32 +0000)] 
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271994 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoMSP430: Emulate 16-bit shifts with rotate insn when src operand is in memory
jozefl [Thu, 6 Jun 2019 09:23:10 +0000 (09:23 +0000)] 
MSP430: Emulate 16-bit shifts with rotate insn when src operand is in memory

gcc/ChangeLog

2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* config/msp430/msp430.md (ashlhi3): Force shift src operand into a
register if it is in memory, so the shift can be emulated with a rotate
instruction.
(ashrhi3): Likewise.
(lshrhi3): Likewise.

gcc/testsuite/ChangeLog

2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* gcc.target/msp430/emulate-slli.c: New test.
* gcc.target/msp430/emulate-srai.c: New test.
* gcc.target/msp430/emulate-srli.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271993 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoMSP430: Put libgcc shift functions in their own section
jozefl [Thu, 6 Jun 2019 09:07:36 +0000 (09:07 +0000)] 
MSP430: Put libgcc shift functions in their own section

2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

* config/msp430/slli.S (__mspabi_slli_n): Put function in its own
section.
(__mspabi_slli): Likewise.
(__mspabi_slll_n): Likewise.
(__mspabi_slll): Likewise.
* config/msp430/srai.S (__mspabi_srai_n): Likewise.
(__mspabi_srai): Likewise.
(__mspabi_sral_n): Likewise.
(__mspabi_sral): Likewise.
* config/msp430/srli.S (__mspabi_srli_n): Likewise.
(__mspabi_srli): Likewise.
(__mspabi_srll_n): Likewise.
(__mspabi_srll): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271992 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoSimplify mult where both arguments are 0 or 1 (PR tree-optimization/87954).
marxin [Thu, 6 Jun 2019 07:55:51 +0000 (07:55 +0000)] 
Simplify mult where both arguments are 0 or 1 (PR tree-optimization/87954).

2019-06-06  Martin Liska  <mliska@suse.cz>

PR tree-optimization/87954
* match.pd: Simplify mult where both arguments are 0 or 1.
2019-06-06  Martin Liska  <mliska@suse.cz>

PR tree-optimization/87954
* gcc.dg/pr87954.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271991 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago2019-06-06 Richard Biener <rguenther@suse.de>
rguenth [Thu, 6 Jun 2019 07:32:44 +0000 (07:32 +0000)] 
2019-06-06  Richard Biener  <rguenther@suse.de>

* vr-values.c (vr_values::extract_range_from_ssa_name): Do not
put equivalences on UNDEFINED ranges.
* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
Make sure to drop defs of stmts added during simplification
to VARYING.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271990 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago2019-06-06 Richard Biener <rguenther@suse.de>
rguenth [Thu, 6 Jun 2019 07:25:19 +0000 (07:25 +0000)] 
2019-06-06  Richard Biener  <rguenther@suse.de>

* tree-ssa-structalias.c: Include tree-cfg.h.
(make_heapvar): Do not make heap vars artificial.
(find_func_aliases_for_builtin_call): Handle stack allocation
functions.
(find_func_aliases): Delay processing of simple enough returns
in non-IPA mode.
(set_uids_in_ptset): Adjust.
(find_what_var_points_to): Likewise.
(solve_constraints): Do not dump points-to sets here.
(compute_points_to_sets): Post-process return statements,
amending the escaped solution.  Dump points-to sets afterwards.
(ipa_pta_execute): Dump points-to sets.

* gcc.dg/tree-ssa/alias-37.c: New testcase.
* gcc.dg/torture/20190604-1.c: Likewise.
* gcc.dg/tree-ssa/pta-callused.c: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271989 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoFix HTML headers and titles for 'Installing GCC' pages (PR web/87933).
marxin [Thu, 6 Jun 2019 07:20:16 +0000 (07:20 +0000)] 
Fix HTML headers and titles for 'Installing GCC' pages (PR web/87933).

2019-06-06  Martin Liska  <mliska@suse.cz>

PR web/87933
* doc/install.texi: Fix HTML headers and
titles for 'Installing GCC' pages.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271988 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoIPA ICF: enhance dump output
marxin [Thu, 6 Jun 2019 07:19:58 +0000 (07:19 +0000)] 
IPA ICF: enhance dump output

2019-06-06  Martin Liska  <mliska@suse.cz>

* ipa-icf-gimple.h (dump_message_1): Remove.
(dump_message): Likewise.
(return_false_with_message_1): Print also file.
(return_false_with_msg): Likewise.
(return_with_result): Likewise.
(return_with_debug): Likewise.
* ipa-icf.c (sem_function::equals_private): Remove call
to dump_message.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271987 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago[ARC] Update tmac tests.
claziss [Thu, 6 Jun 2019 07:19:36 +0000 (07:19 +0000)] 
[ARC] Update tmac tests.

Fix order of dg-directives such that tests are executed only when
there is no command line cpu option given.

gcc/testsuite/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

* gcc.target/arc/tmac-1.c: Reoreder dg-directives.
* gcc.target/arc/tmac-2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271986 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoPR c/90737 - [8/9/10 Regression] inconsistent address of a local converted to intptr_...
msebor [Thu, 6 Jun 2019 02:53:01 +0000 (02:53 +0000)] 
PR c/90737 - [8/9/10 Regression] inconsistent address of a local converted to intptr_t between callee and caller

gcc/c/ChangeLog:

PR c/90737
* c-typeck.c (c_finish_return): Only consider functions returning
pointers as candidates for -Wreturn-local-addr.

gcc/cp/ChangeLog:

PR c/90737
* typeck.c (maybe_warn_about_returning_address_of_local): Only
consider functions returning pointers as candidates for
-Wreturn-local-addr.

gcc/testsuite/ChangeLog:

PR c/90737
* c-c++-common/Wreturn-local-addr.c: New test.
* g++.dg/warn/Wreturn-local-addr-6.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271985 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agogcc/
liuhongt [Thu, 6 Jun 2019 01:14:04 +0000 (01:14 +0000)] 
gcc/
2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>

* config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
(define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
memory operand for it.
(define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.

gcc/testsuite
2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>

* gcc.target/i386/avx512dq-vfpclasspd-1.c: Adjust scan assember
for {x,y,z} suffix.
* gcc.target/i386/avx512dq-vfpclassps-1.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271984 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago compiler: make use of specialized fast map routines
ian [Thu, 6 Jun 2019 00:44:01 +0000 (00:44 +0000)] 
compiler: make use of specialized fast map routines

    In the runtime there are specialized fast map routines for
    certain kep types. This CL lets the compiler make use of these
    functions, instead of always using the generic ones.

    As we now generate multiple versions of map delete calls, to make
    things easier we delay the expansion of the built-in delete
    function to flatten phase.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180858

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271983 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoDaily bump.
gccadmin [Thu, 6 Jun 2019 00:16:21 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271982 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago * config.host (rx-*-linux*): Add t-fdpbit to tmake_file
law [Wed, 5 Jun 2019 23:20:27 +0000 (23:20 +0000)] 
    * config.host (rx-*-linux*): Add t-fdpbit to tmake_file
        Add appropriate tm_file clause as well.
        * config/rx/t-rx (HOST_LIBGCC2_CFLAGS): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271978 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago * config/ia64/crtbegin.S (__dso_handle): Put in .sdata/.sbss
law [Wed, 5 Jun 2019 22:27:37 +0000 (22:27 +0000)] 
* config/ia64/crtbegin.S (__dso_handle): Put in .sdata/.sbss
rather than .data/.bss so it can be accessed via gp-relative
addressing.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271977 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago compiler: inline call expressions and function references
ian [Wed, 5 Jun 2019 21:05:38 +0000 (21:05 +0000)] 
compiler: inline call expressions and function references

    Scan inlinable methods for references to global variables and
    functions (forgot to do that earlier).

    Track all packages mentioned by exports (that should have been done
    earlier too).

    Record assembler name in export data, so that we can inline calls to
    non-Go functions.  Modify gccgoimporter code to skip assembler name.

    This increases the number of inlinable functions in the standard
    library from 215 to 439.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180677

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271976 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agogcc/testsuite/ChangeLog:
msebor [Wed, 5 Jun 2019 20:32:24 +0000 (20:32 +0000)] 
gcc/testsuite/ChangeLog:

* gcc.dg/format/gcc_diag-11.c: Skip until -Wformat-diag has
been committed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271975 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago/cp
paolo [Wed, 5 Jun 2019 20:07:01 +0000 (20:07 +0000)] 
/cp
2019-06-05  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (smallest_type_location): New.
(check_special_function_return_type): Use it.
(grokdeclarator): Lkewise.

/testsuite
2019-06-05  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/diagnostic/return-type-invalid-1.C: New.
* g++.old-deja/g++.brendan/crash16.C: Adjust.
* g++.old-deja/g++.law/ctors5.C: Likewise.

/cp
2019-06-05  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (grokdeclarator): Use locations[ds_friend]
in one place.

/testsuite
2019-06-05  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/other/friend4.C: Test locations too.
* g++.dg/other/friend5.C: Likewise.
* g++.dg/other/friend7.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271974 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agogcc/c/ChangeLog:
msebor [Wed, 5 Jun 2019 18:30:48 +0000 (18:30 +0000)] 
gcc/c/ChangeLog:

* c-decl.c (start_decl): Adjust quoting and hyphenation
in diagnostics.
(finish_decl): Same.
(finish_enum): Same.
(start_function): Same.
(declspecs_add_type): Same.
* c-parser.c (warn_for_abs): Same.
* c-typeck.c (build_binary_op): Same.

gcc/c-family/ChangeLog:

* c-attribs.c (handle_mode_attribute): Adjust quoting and hyphenation.
(handle_alias_ifunc_attribute): Same.
(handle_copy_attribute): Same.
(handle_weakref_attribute): Same.
(handle_nonnull_attribute): Same.
* c-warn.c (warn_for_sign_compare): Same.
(warn_for_restrict): Same.
* c.opt: Same.

gcc/cp/ChangeLog:

* call.c (build_conditional_expr_1): Adjust quoting and hyphenation.
(convert_like_real): Same.
(convert_arg_to_ellipsis): Same.
* constexpr.c (diag_array_subscript): Same.
* constraint.cc (diagnose_trait_expression): Same.
* cvt.c (ocp_convert): Same.
* decl.c (start_decl): Same.
(check_for_uninitialized_const_var): Same.
(grokfndecl): Same.
(check_special_function_return_type): Same.
(finish_enum_value_list): Same.
(start_preparsed_function): Same.
* parser.c (cp_parser_decl_specifier_seq): Same.
* typeck.c (cp_build_binary_op): Same.
(build_static_cast_1): Same.

gcc/lto/ChangeLog:

* lto-common.c (lto_file_finalize): Adjust quoting and hyphenation.

gcc/objc/ChangeLog:

* objc-act.c (objc_build_setter_call): Adjust quoting and hyphenation.
* objc-encoding.c (encode_gnu_bitfield): Same.

gcc/ChangeLog:

* config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
Adjust quoting and hyphenation.
* convert.c (convert_to_real_1): Same.
* gcc.c (driver_wrong_lang_callback): Same.
(driver::handle_unrecognized_options): Same.
* gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
* opts-common.c (cmdline_handle_error): Same.
(read_cmdline_option): Same.
* opts-global.c (complain_wrong_lang): Same.
(print_ignored_options): Same.
(handle_common_deferred_options): Same.
* pretty-print.h: Same.
* print-rtl.c (debug_bb_n_slim): Same.
* sched-rgn.c (make_pass_sched_fusion): Same.
* tree-cfg.c (verify_gimple_assign_unary): Same.
(verify_gimple_label): Same.
* tree-ssa-operands.c (verify_ssa_operands): Same.
* varasm.c (do_assemble_alias): Same.
(assemble_alias): Same.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271971 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago * config/alpha/alpha.c (direct_return): Move down after
uros [Wed, 5 Jun 2019 18:16:18 +0000 (18:16 +0000)] 
* config/alpha/alpha.c (direct_return): Move down after
struct machine_function definition; use saved frame_size;
return bool.
(struct machine_function): Add sa_mask, sa_size, frame_size.
(alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
(alpha_compute_frame_layout): ... new function.
(TARGET_COMPUTE_FRAME_LAYOUT): New.
(alpha_initial_elimination_offset): Use saved sa_size.
(alpha_vms_initial_elimination_offset): Likewise.
(alpha_vms_can_eliminate): Remove alpha_sa_size call.
(alpha_expand_prologue): Use saved frame data.  Merge integer
and fp register save loops.
(alpha_expand_epilogue): Likewise.
(alpha_start_function): Use saved frame data.
* config/alpha/alpha-protos.h (direct_return): Update.
(alpha_sa_size): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271970 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoChangeLog for PR c++/63149
jason [Wed, 5 Jun 2019 18:12:53 +0000 (18:12 +0000)] 
ChangeLog for PR c++/63149

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271969 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago PR c++/63149 - wrong auto deduction from braced-init-list
jason [Wed, 5 Jun 2019 18:11:20 +0000 (18:11 +0000)] 
PR c++/63149 - wrong auto deduction from braced-init-list

2019-06-04  Nina Dinka Ranns  <dinka.ranns@gmail.com>

    gcc/cp/
    * pt.c (listify_autos): Use non cv qualified auto_node in
    std::initializer_list<auto>.

    testsuite/
    * g++.dg/cpp0x/initlist-deduce2.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271968 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago* config/rs6000/aix-unwind.h (LR_REGNO): Rename to R_LR.
dje [Wed, 5 Jun 2019 16:45:57 +0000 (16:45 +0000)] 
* config/rs6000/aix-unwind.h (LR_REGNO): Rename to R_LR.
(CR2_REGNO): Rename to R_CR2.
(XER_REGNO): Rename to R_XER.
(FIRST_ALTIVEC_REGNO): Rename to R_FIRST_ALTIVEC.
(VRSAVE_REGNO): Rename to R_VRSAVE.
(VSCR_REGNO): R_VSCR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271967 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: Fix new testcase
segher [Wed, 5 Jun 2019 16:21:07 +0000 (16:21 +0000)] 
rs6000: Fix new testcase

At least with -m32 you need -maltivec if you #include <altivec.h>.

gcc/testsuite/
* g++.target/powerpc/undef-bool-3.C: Add -maltivec to dg-options.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271966 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agogcc/c-family/ChangeLog:
msebor [Wed, 5 Jun 2019 14:24:03 +0000 (14:24 +0000)] 
gcc/c-family/ChangeLog:

* c-pragma.c (handle_pragma_weak): Adjust quoting in a diagnostic.
* c.opt (-Wformat-diag): Remove a spurious period.

gcc/testsuite/ChangeLog:

* gcc.dg/weak/weak-19.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271965 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
ebotcazou [Wed, 5 Jun 2019 14:14:40 +0000 (14:14 +0000)] 
* fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
multiplication by a power-of-two value.
(fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
and turn the modulo operation into a masking operation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271963 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago[PATCH][GCC][AARCH64] Add tests for pointer authentication B-key
samtebbs [Wed, 5 Jun 2019 11:06:56 +0000 (11:06 +0000)] 
[PATCH][GCC][AARCH64] Add tests for pointer authentication B-key

gcc/testsuite/ChangeLog
* gcc.target/aarch64/return_address_sign_b_1.c: New file.
* gcc.target/aarch64/return_address_sign_b_2.c: New file.
* gcc.target/aarch64/return_address_sign_b_3.c: New file.
* gcc.target/aarch64/return_address_sign_builtin.c: New file.
* g++.target/aarch64/return_address_sign_ab_exception.C: New file.
* g++.target/aarch64/return_address_sign_b_exception.C: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271954 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago PR debug/90733
jakub [Wed, 5 Jun 2019 09:41:13 +0000 (09:41 +0000)] 
PR debug/90733
* var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
with VOIDmode inner operands.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271952 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago2019-06-05 Richard Biener <rguenther@suse.de>
rguenth [Wed, 5 Jun 2019 08:26:36 +0000 (08:26 +0000)] 
2019-06-05  Richard Biener  <rguenther@suse.de>

PR middle-end/90726
* tree-ssa-loop-niter.c (expand_simple_operations): Do not
turn an expression graph into a tree.

* gcc.dg/pr90726.c: Enable IVOPTs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271950 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
jakub [Wed, 5 Jun 2019 07:52:23 +0000 (07:52 +0000)] 
* omp-expand.c (struct omp_region): Add has_lastprivate_conditional
member.
(expand_parallel_call): If region->inner->has_lastprivate_conditional,
treat it like explicit monotonic schedule modifier.
(expand_omp_for): Initialize has_lastprivate_conditional.
If fd.lastprivate_conditional != 0, treat it like explicit monotonic
schedule modifier.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271949 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
jakub [Wed, 5 Jun 2019 07:37:40 +0000 (07:37 +0000)] 
* omp-low.c (lower_rec_input_clauses): For lastprivate conditional
references, lookup in in hash map MEM_REF operand instead of the
MEM_REF itself.
(lower_omp_1): When looking for lastprivate conditional assignments,
handle MEM_REFs with REFERENCE_TYPE operands.

* testsuite/libgomp.c++/lastprivate-conditional-1.C: New test.
* testsuite/libgomp.c++/lastprivate-conditional-2.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271948 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
jakub [Wed, 5 Jun 2019 07:36:30 +0000 (07:36 +0000)] 
* omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
on privatization clauses OMP_CLAUSE_DECL is privatized by reference
and references a VLA.  Handle references to non-VLAs if is_simd
all privatization clauses like reductions.
(lower_rec_input_clauses) <case do_private, case do_firstprivate>:
If omp_is_reference, use always omp simd arrays and set
DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
fails, emit reference initialization.

* g++.dg/vect/simd-1.cc: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271947 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agogcc/
liuhongt [Wed, 5 Jun 2019 06:04:22 +0000 (06:04 +0000)] 
gcc/
2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>

PR target/89803
* config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
_mm_mask_fpclass_sd_mask): New intrinsics.
(_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
* config/i386/i386-builtin.def
(__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
New builtins.
(__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
* config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
* config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
case QI_FTYPE_V2SF_INT): Ditto.
* config/i386/sse.md
(define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
Extended to insnstructions with mask operands.

gcc/testsuite
2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>

PR target/89803
* gcc.target/i386/avx-1.c (__builtin_ia32_fpclasssss,
__builtin_ia32_fpclasssd): Removed.
(__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): Define.
* gcc.target/i386/sse-13.c (__builtin_ia32_fpclasssss,
__builtin_ia32_fpclasssd): Removed.
(__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): Define.
* gcc.target/i386/sse-23.c (__builtin_ia32_fpclasssss,
__builtin_ia32_fpclasssd): Removed.
(__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): Define.
* gcc.target/i386/avx512dq-vfpclassss-2.c: New.
* gcc.target/i386/avx512dq-vfpclasssd-2.c: New.
* gcc.target/i386/avx512dq-vfpclassss-1.c (avx512f_test):
Add test for _mm_mask_fpclass_ss_mask.
* gcc.target/i386/avx512dq-vfpclasssd-1.c (avx512f_test):
Add test for _mm_mask_fpclass_sd_mask.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271946 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago compiler: statically allocate constant interface data
ian [Wed, 5 Jun 2019 00:18:17 +0000 (00:18 +0000)] 
compiler: statically allocate constant interface data

    When converting a constant to interface, such as interface{}(42)
    or interface{}("hello"), if the interface escapes, we currently
    generate a heap allocation to hold the constant value.

    This CL changes it to generate a static allocation instead, as
    the gc compiler does. This reduces allocations in such cases.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/180277

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271945 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agoDaily bump.
gccadmin [Wed, 5 Jun 2019 00:16:20 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271944 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: Update direct-move* testcases
segher [Tue, 4 Jun 2019 23:38:35 +0000 (23:38 +0000)] 
rs6000: Update direct-move* testcases

This fixes some testcases that the last fifteen or so patches broke.
In all these cases we no longer need to set VSX_REG_ATTR: the default
value of "wa" is correct.

gcc/testsuite/
* gcc.target/powerpc/direct-move-double1.c (VSX_REG_ATTR): Delete.
* gcc.target/powerpc/direct-move-double2.c: Ditto.
* gcc.target/powerpc/direct-move-float1.c: Ditto.
* gcc.target/powerpc/direct-move-float2.c: Ditto.
* gcc.target/powerpc/direct-move-vint1.c: Ditto.
* gcc.target/powerpc/direct-move-vint2.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271940 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: Remove wp and wq
segher [Tue, 4 Jun 2019 23:37:38 +0000 (23:37 +0000)] 
rs6000: Remove wp and wq

wp becomes wa with isa p9tf, and wq is replaced by wa with isa p9kf.
To manage to do that, there is the new mode attribute VSisa.

* config/rs6000/constraints.md (define_register_constraint "wp"):
Delete.
(define_register_constraint "wq"): Delete.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
* config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
(define_mode_attr VSa): Delete.
(define_mode_attr VSisa): New.
(rest of file): Adjust.
* doc/md.texi (Machine Constraints): Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271939 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: Add p9kf and p9tf isa values
segher [Tue, 4 Jun 2019 23:36:49 +0000 (23:36 +0000)] 
rs6000: Add p9kf and p9tf isa values

This adds "p9kf" and "p9tf" isa values, to be used for instruction
alternatives where KFmode resp. TFmode is used.

* config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
(define_attr "enabled"): Handle those new isa values.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271938 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: More simplification
segher [Tue, 4 Jun 2019 23:36:01 +0000 (23:36 +0000)] 
rs6000: More simplification

A whole bunch of mode attributes are used only once.  Things are
easier to read if we just expand those patterns.  It's shorter, too.

* config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
(define_mode_attr VSr5): Delete.
(define_mode_attr VStype_sqrt): Delete.
(define_mode_iterator VSX_SPDP): Delete.
(define_mode_attr VS_spdp_res): Delete.
(define_mode_attr VS_spdp_insn): Delete.
(define_mode_attr VS_spdp_type): Delete.
(*vsx_sqrt<mode>2): Adjust.
(vsx_<VS_spdp_insn>): Delete, split to...
(vsx_xscvdpsp): ... this.  New.  And...
(vsx_xvcvspdp): ... this.  New.  And...
(vsx_xvcvdpsp): ... this.  New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271937 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: <VSs> -> <sd>p
segher [Tue, 4 Jun 2019 23:35:13 +0000 (23:35 +0000)] 
rs6000: <VSs> -> <sd>p

We don't need the <VSs> mode attribute, if we make <sd> work for V4SF
and V2DF just like for SF and DF.

* config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
and V2DF.
* config/rs6000/vsx.md (define_mode_attr VSs): Delete.
(rest of file): Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271936 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: ww->wa in testsuite
segher [Tue, 4 Jun 2019 23:34:21 +0000 (23:34 +0000)] 
rs6000: ww->wa in testsuite

I should have factored this series better.  Oh well.  Near the end,
let's call it loose ends.

gcc/testsuite/
* gcc.target/powerpc/direct-move-float1.c: Use "wa" instead of "ww"
constraint.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271935 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: VSa->wa for some more cases
segher [Tue, 4 Jun 2019 23:33:18 +0000 (23:33 +0000)] 
rs6000: VSa->wa for some more cases

* config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
(vsx_extract_<mode>_var): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271934 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: Simplify <VSa> for VSX_TI
segher [Tue, 4 Jun 2019 23:32:21 +0000 (23:32 +0000)] 
rs6000: Simplify <VSa> for VSX_TI

When used in VSX_TI, <VSa> is always just "wa".

* config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
with just "wa".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271933 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: ww -> wa
segher [Tue, 4 Jun 2019 23:31:32 +0000 (23:31 +0000)] 
rs6000: ww -> wa

"ww" can always be "wa".

* config/rs6000/constraints.md (define_register_constraint "ww"):
Delete.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_ww.
* config/rs6000/rs6000.md: Adjust.
* config/rs6000/vsx.md: Adjust.
* doc/md.texi (Machine Constraints): Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271932 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: Remove Ftrad, Fvsx, Fs; add s and sd
segher [Tue, 4 Jun 2019 23:30:43 +0000 (23:30 +0000)] 
rs6000: Remove Ftrad, Fvsx, Fs; add s and sd

This removes the <Ftrad>, <Fvsx>, and <Fs> mode attributes, and creates
new <sd> and <s> mode attributes instead.  <sd> is either "s" or "d",
depending on whether the mode is single-precision or double-precision
floating point; and <s> is either "s" or nothing.

* config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
(define_mode_attr sd): New.
(define_mode_attr s): New.
(define_mode_attr Ftrad): Delete.
(define_mode_attr Fvsx): Delete.
(define_mode_attr Fs): Delete.
(rest of file): Use the new mode attributes.
* config.rs6000/vsx.md: Use the new mode attributes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271931 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: Simplify <VSa> for VSX_W
segher [Tue, 4 Jun 2019 23:29:31 +0000 (23:29 +0000)] 
rs6000: Simplify <VSa> for VSX_W

When used in VSX_W, <VSa> is always just "wa".

* config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
with just "wa".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271930 138bc75d-0d04-0410-961f-82ee72b054a4

4 years agors6000: Simplify VS[ra]* for VSX_[BDF]
segher [Tue, 4 Jun 2019 23:27:57 +0000 (23:27 +0000)] 
rs6000: Simplify VS[ra]* for VSX_[BDF]

When used in VSX_B, VSX_D, or VSX_F, both <VSr> and <VSa> are always
just "wa" now.  Similarly <VSr2> and <VSr3>.  The former of those is
always "wa", so we can remove the mode attribute completely.

* config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
(rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
used with VSX_B, VSX_D, or VSX_F, with just "wa".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271929 138bc75d-0d04-0410-961f-82ee72b054a4

4 years ago/cp
paolo [Tue, 4 Jun 2019 23:10:56 +0000 (23:10 +0000)] 
/cp
2019-06-04  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (grokdeclarator): Use declarator->id_loc in two
additional places.

/testsuite
2019-06-04  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/concepts/pr60573.C: Test locations too.
* g++.dg/cpp0x/deleted13.C: Likewise.
* g++.dg/parse/error29.C: Likewise.
* g++.dg/parse/qualified4.C: Likewise.
* g++.dg/template/crash96.C Likewise.
* g++.old-deja/g++.brendan/crash22.C Likewise.
* g++.old-deja/g++.brendan/crash23.C Likewise.
* g++.old-deja/g++.law/visibility10.C Likewise.
* g++.old-deja/g++.other/decl5.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@271928 138bc75d-0d04-0410-961f-82ee72b054a4