platform/upstream/gcc.git
5 years agore PR debug/88878 (.debug_pubnames/types empty with -flto)
Richard Biener [Wed, 27 Feb 2019 14:04:18 +0000 (14:04 +0000)]
re PR debug/88878 (.debug_pubnames/types empty with -flto)

2019-02-27  Richard Biener  <rguenther@suse.de>

PR debug/88878
* dwarf2out.c (use_debug_types): Disable when in_lto_p.

From-SVN: r269253

5 years agopasses.c (should_skip_pass_p): Do not skip cgraph-edge building.
Richard Biener [Wed, 27 Feb 2019 13:24:40 +0000 (13:24 +0000)]
passes.c (should_skip_pass_p): Do not skip cgraph-edge building.

2019-02-27  Richard Biener  <rguenther@suse.de>

* passes.c (should_skip_pass_p): Do not skip cgraph-edge
building.

* gcc.dg/gimplefe-36.c: New testcase.

From-SVN: r269252

5 years agore PR debug/88878 (.debug_pubnames/types empty with -flto)
Richard Biener [Wed, 27 Feb 2019 12:51:43 +0000 (12:51 +0000)]
re PR debug/88878 (.debug_pubnames/types empty with -flto)

2019-02-27  Richard Biener  <rguenther@suse.de>

PR debug/88878
* dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
parameter, prefix section name with .gnu.debuglto_ if true.
(dwarf2out_finish): Pass false to output_comdat_type_unit.
(dwarf2out_early_finish): Pass true to output_comdat_type_unit.

From-SVN: r269251

5 years agore PR lto/89514 (-g -fdebug-types-section -flto gives 'Dwarf Error: bad length' in...
Richard Biener [Wed, 27 Feb 2019 11:59:07 +0000 (11:59 +0000)]
re PR lto/89514 (-g -fdebug-types-section -flto gives 'Dwarf Error: bad length' in gdb)

2019-02-27  Richard Biener  <rguenther@suse.de>

PR debug/89514
* dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
rather than on use_debug_types, doing what output_die does.
(value_format): Likewise.

From-SVN: r269250

5 years agoPR libstdc++/89466 avoid slow xsltproc command in configure
Jonathan Wakely [Wed, 27 Feb 2019 11:25:44 +0000 (11:25 +0000)]
PR libstdc++/89466 avoid slow xsltproc command in configure

Certain broken versions of xsltproc ignore the --nonet option and will
attempt to fetch the docbook stylesheet from the WWW when it isn't in
the local XML catalog.

This patch checks for the local stylesheet directory first, and doesn't
use xsltproc if no local stylesheets are found. Checking for the local
directory is done using xmlcatalog if available, only checking the
hardcoded list of directories if xmlcatalog fails. The right directory
for Suse is added to the hardcoded list.

This should avoid doing an xsltproc check that would need to download
the stylesheet, so no network connection is made even if a broken
xsltproc is present.

PR libstdc++/89466
* acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Reorder check for local
stylesheet directories before check for xsltproc. Try to use
xmlcatalog to find local stylesheet directory before trying hardcoded
paths. Add path used by suse to hardcoded paths. Adjust xsltproc
check to look for the same stylesheet as doc/Makefile.am uses. Don't
use xsltproc if xmlcatalog fails to find a local stylesheet.
* configure.ac: Check for xmlcatalog.
* Makefile.in: Regenerate.
* configure: Likewise.
* doc/Makefile.in: Likewise.
* include/Makefile.in: Likewise.
* libsupc++/Makefile.in: Likewise.
* po/Makefile.in: Likewise.
* python/Makefile.in: Likewise.
* src/Makefile.in: Likewise.
* src/c++11/Makefile.in: Likewise.
* src/c++17/Makefile.in: Likewise.
* src/c++98/Makefile.in: Likewise.
* src/filesystem/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.

From-SVN: r269249

5 years agoReplaced spaces with tab in Changelog, committed as obvious
Alejandro Martinez [Wed, 27 Feb 2019 10:38:25 +0000 (10:38 +0000)]
Replaced spaces with tab in Changelog, committed as obvious

From-SVN: r269248

5 years agoAdd myself to write after approval.
Alejandro Martinez [Wed, 27 Feb 2019 10:23:54 +0000 (10:23 +0000)]
Add myself to write after approval.

From-SVN: r269247

5 years ago[doc] Reword description of -Wno-absolute-value
Martin Jambor [Wed, 27 Feb 2019 10:07:01 +0000 (11:07 +0100)]
[doc] Reword description of -Wno-absolute-value

2019-02-27  Martin Jambor  <mjambor@suse.cz>
    Martin Sebor  <msebor@redhat.com>

* doc/invoke.texi (Warning Options): Reword description of
-Wno-absolute-value.

Co-Authored-By: Martin Sebor <msebor@redhat.com>
From-SVN: r269246

5 years agore PR c++/89488 (ICE in merge_exception_specifiers, at cp/typeck2.c:2395)
Paolo Carlini [Wed, 27 Feb 2019 10:02:23 +0000 (10:02 +0000)]
re PR c++/89488 (ICE in merge_exception_specifiers, at cp/typeck2.c:2395)

/cp
2019-02-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/89488
* method.c (process_subob_fn): When maybe_instantiate_noexcept
returns false don't call merge_exception_specifiers.

/testsuite
2019-02-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/89488
* g++.dg/cpp0x/nsdmi15.C: New.

/cp
2019-02-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/88987
* parser.c (cp_parser_noexcept_specification_opt): Return NULL_TREE
for a non-constant parsed expression.

/testsuite
2019-02-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/88987
* g++.dg/cpp0x/pr88987.C: New.

From-SVN: r269245

5 years agore PR tree-optimization/89280 (ICE: Segmentation fault (in is_gimple_reg_type))
Jakub Jelinek [Wed, 27 Feb 2019 08:41:01 +0000 (09:41 +0100)]
re PR tree-optimization/89280 (ICE: Segmentation fault (in is_gimple_reg_type))

PR tree-optimization/89280
* tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
builtin_setjmp_setup_bb): New functions.
(cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
When visiting __builtin_setjmp_setup block, queue in special
setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
__builtin_setjmp_receiver.  Remove .ABNORMAL_DISPATCHER basic blocks
from visited after the loop if they don't have any visited successor
blocks.

* gcc.c-torture/compile/pr89280.c: New test.
* gcc.dg/torture/pr57147-2.c: Don't expect a setjmp after noreturn
function.  Skip the test for -O0.

From-SVN: r269243

5 years agocompiler: check duplicate numeric keys in map literals
Ian Lance Taylor [Wed, 27 Feb 2019 04:56:12 +0000 (04:56 +0000)]
compiler: check duplicate numeric keys in map literals

    Updates golang/go#28104

    Reviewed-on: https://go-review.googlesource.com/c/162882

From-SVN: r269242

5 years agocompiler: check recursive inherited interface aliases
Ian Lance Taylor [Wed, 27 Feb 2019 01:41:25 +0000 (01:41 +0000)]
compiler: check recursive inherited interface aliases

    Fixes golang/go#25302.

    Reviewed-on: https://go-review.googlesource.com/c/163298

From-SVN: r269241

5 years agocmd/go: preserve CC for TestScript child processes
Ian Lance Taylor [Wed, 27 Feb 2019 01:11:20 +0000 (01:11 +0000)]
cmd/go: preserve CC for TestScript child processes

    Reviewed-on: https://go-review.googlesource.com/c/158838

From-SVN: r269240

5 years agoDaily bump.
GCC Administrator [Wed, 27 Feb 2019 00:16:42 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269239

5 years agosimd-builtins-1.f90: Update for aarch64*-*-*.
Steve Ellcey [Wed, 27 Feb 2019 00:02:53 +0000 (00:02 +0000)]
simd-builtins-1.f90: Update for aarch64*-*-*.

2018-02-26  Steve Ellcey  <sellcey@marvell.com>

* gfortran.dg/simd-builtins-1.f90: Update for aarch64*-*-*.
* gfortran.dg/simd-builtins-2.f90: Ditto.
* gfortran.dg/simd-builtins-6.f90: Ditto.
* gfortran.dg/simd-builtins-8.f90: New test.
* gfortran.dg/simd-builtins-8.h: New header file.

From-SVN: r269236

5 years agoaarch64.c (aarch64_get_multilib_abi_name): New function.
Steve Ellcey [Wed, 27 Feb 2019 00:00:56 +0000 (00:00 +0000)]
aarch64.c (aarch64_get_multilib_abi_name): New function.

2018-02-26  Steve Ellcey  <sellcey@marvell.com>

* config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
New function.
(TARGET_GET_MULTILIB_ABI_NAME): New macro.

From-SVN: r269235

5 years agoPR libstdc++/89477 constrain deduction guides for maps and sets
Jonathan Wakely [Tue, 26 Feb 2019 23:12:44 +0000 (23:12 +0000)]
PR libstdc++/89477 constrain deduction guides for maps and sets

The Compare, Hash, and Pred template parameters should be constrained in
the C++17 deduction guides for associative and unordered containers.

The deduction guides for stack, queue and priority_queue are already
constrained, but this patch makes them use the _RequireNotAllocator
helper instead of reproducing the logic each time.

PR libstdc++/89477
* include/bits/alloc_traits.h (_RequireNotAllocator): New helper for
container deduction guides.
* include/bits/hashtable.h (_RequireNotAllocatorOrIntegral): Likewise.
* include/bits/stl_map.h (map): Use _RequireNotAllocator to constrain
parameters in deduction guides.
* include/bits/stl_multimap.h (multimap): Likewise.
* include/bits/stl_multiset.h (multiset): Likewise.
* include/bits/stl_queue.h (queue, priority_queue): Likewise.
* include/bits/stl_set.h (set): Likewise.
* include/bits/stl_stack.h (stack): Likewise.
* include/bits/unordered_map.h (unordered_map, unordered_multimap):
use _RequireNotAllocator and _RequireNotAllocatorOrIntegral to
constrain parameters in deduction guides.
* include/bits/unordered_set.h (unordered_set, unordered_multiset):
Likewise.
* testsuite/23_containers/map/cons/deduction.cc: Test additional
deduction cases.
* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
* testsuite/23_containers/set/cons/deduction.cc: Likewise.
* testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
Likewise.
* testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.

From-SVN: r269234

5 years agore PR c++/89507 (bogus "size of array exceeds maximum object size")
Jakub Jelinek [Tue, 26 Feb 2019 21:27:33 +0000 (22:27 +0100)]
re PR c++/89507 (bogus "size of array exceeds maximum object size")

PR c++/89507
* tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
with types other than sizetype/ssizetype.

* g++.dg/other/new2.C: New test.

From-SVN: r269233

5 years agosparc-opts.h (enum processor_type): Rename to...
Eric Botcazou [Tue, 26 Feb 2019 21:08:22 +0000 (21:08 +0000)]
sparc-opts.h (enum processor_type): Rename to...

* config/sparc/sparc-opts.h (enum processor_type): Rename to...
(enum sparc_processor_type): ...this.
(enum sparc_code_model_type): New enumeration type.
(enum sparc_memory_model_type): Tweak comments.
* config/sparc/sparc.opt (mcpu): Adjust to above renaming.
(mtune): Likewise.
(mcmodel): Use sparc_code_model enumeration and variable.
(sparc_code_model): New enumeration.
(mdebug): Add Undocumented marker.
* config/sparc/sparc.h (enum cmodel): Delete.
(sparc_cmodel): Likewise.
(TARGET_CM_MEDLOW): Adjust to above renaming.
(TARGET_CM_MEDMID): Likewise.
(TARGET_CM_MEDANY): Likewise.
(TARGET_CM_EMBMEDANY): Likewise.
* config/sparc/sparc.c (sparc_cmodel): Delete.
(sparc_option_override): Remove string/value mapping support for the
code model.  Move code and memory model support to after the handling
of target flags.  Do private machine setup last.
(sparc_emit_set_symbolic_const64): Use sparc_code_model.
(sparc_legitimize_reload_address): Likewise.
(sparc_output_mi_thunk): Likewise.
* config/sparc/sparc.md (cpu): Adjust comment to above renaming.

From-SVN: r269232

5 years agore PR tree-optimization/89500 (ICE: tree check: expected integer_cst, have ssa_name...
Jakub Jelinek [Tue, 26 Feb 2019 20:36:29 +0000 (21:36 +0100)]
re PR tree-optimization/89500 (ICE: tree check: expected integer_cst, have ssa_name in get_len, at tree.h:5653)

PR tree-optimization/89500
* tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
(handle_builtin_strlen): Remove noncst_bound variable.  Always
optimize strnlen (x, 0) to 0.  Optimize strnlen (x, cst) to
cst if the first cst bytes starting at x are known to be non-zero,
even if the string is not zero terminated.  Don't try to modify
*si for strnlen.  Update strlen_to_stridx only for strlen or if
we can prove strnlen returns the same value as strlen would.

* gcc.dg/pr89500.c: New test.
* gcc.dg/Wstringop-overflow-10.c: New test.
* gcc.dg/strlenopt-60.c: New test.

From-SVN: r269230

5 years agoPR libstdc++/89416 fix alloc insertable trait for clang (again)
Jonathan Wakely [Tue, 26 Feb 2019 20:34:46 +0000 (20:34 +0000)]
PR libstdc++/89416 fix alloc insertable trait for clang (again)

PR libstdc++/89416
* include/bits/alloc_traits.h (__is_alloc_insertable_impl): Change
to class template and partial specialization using void_t.
(__is_copy_insertable, __is_move_insertable): Adjust base class.

From-SVN: r269229

5 years agore PR fortran/89492 (Endless compilation of an invalid TRANSFER after r269177)
Harald Anlauf [Tue, 26 Feb 2019 20:03:08 +0000 (20:03 +0000)]
re PR fortran/89492 (Endless compilation of an invalid TRANSFER after r269177)

2019-02-26  Harald Anlauf  <anlauf@gmx.de>

PR fortran/89492
* check.c (gfc_calculate_transfer_sizes): Handle cases where
storage size of elements of MOLD is 0.

PR fortran/89492
* gfortran.dg/pr89492.f90: New test.

From-SVN: r269227

5 years agore PR fortran/89496 (gcc/fortran/trans-types.c:3015:9: runtime error: member access...
Thomas Koenig [Tue, 26 Feb 2019 19:10:00 +0000 (19:10 +0000)]
re PR fortran/89496 (gcc/fortran/trans-types.c:3015:9: runtime error: member access within null pointer of type 'struct gfc_formal_arglist')

2019-02-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89496
* trans-types.c (get_formal_from_actual_arglist): If
the actual arglist has no expression, the corresponding
formal arglist is an alternate return.

2019-02-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89496
* gfortran.dg/altreturn_9_0.f90: New file.
* gfortran.dg/altreturn_9_1.f90: New file.

From-SVN: r269226

5 years agotransfer.c (transfer_array_inner): Do not cast charlen to index_type.
Uros Bizjak [Tue, 26 Feb 2019 18:41:53 +0000 (19:41 +0100)]
transfer.c (transfer_array_inner): Do not cast charlen to index_type.

* io/transfer.c (transfer_array_inner): Do not
cast charlen to index_type.

From-SVN: r269224

5 years agoImprove memory statistics report readability.
Martin Liska [Tue, 26 Feb 2019 17:27:52 +0000 (18:27 +0100)]
Improve memory statistics report readability.

2019-02-26  Martin Liska  <mliska@suse.cz>

* alloc-pool.h (struct pool_usage): Remove extra
print_dash_line.
* bitmap.h (struct bitmap_usage): Likewise.
* ggc-common.c (struct ggc_usage): Likewise.
* mem-stats.h (struct mem_usage): Likewise.
(mem_alloc_description::dump): Print dash lines
here and repeat header at the end of a table report.
It's then more readable.
* tree-phinodes.c (phinodes_print_statistics): Make
horizontal alignment.
* tree-ssanames.c (ssanames_print_statistics): Likewise.
* vec.c (struct vec_usage): Remove extra print_dash_line.
* vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
2019-02-26  Martin Liska  <mliska@suse.cz>

* symtab.c (ht_dump_statistics): Make
horizontal alignment for statistics.

From-SVN: r269221

5 years agoRemove a legacy lto-symtab.c file.
Martin Liska [Tue, 26 Feb 2019 17:27:36 +0000 (18:27 +0100)]
Remove a legacy lto-symtab.c file.

2019-02-26  Martin Liska  <mliska@suse.cz>

* lto-symtab.c: Remove.

From-SVN: r269220

5 years agoextend.texi (__builtin_object_size): Use @pxref instead of @xref inside parenthesis.
Uros Bizjak [Tue, 26 Feb 2019 17:21:43 +0000 (18:21 +0100)]
extend.texi (__builtin_object_size): Use @pxref instead of @xref inside parenthesis.

* doc/extend.texi (__builtin_object_size):
Use @pxref instead of @xref inside parenthesis.
(__builtin_has_attribute): Add missing comma after @xref.
(__builtin_object_size): Ditto.
* doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
* fortran/invoke.texi (-ffpe-trap): Use @var for every item
in the list.

From-SVN: r269219

5 years agore PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c ...
Jeff Law [Tue, 26 Feb 2019 17:08:06 +0000 (10:08 -0700)]
re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c   -O1 start with r265398)

PR rtl-optimization/87761
* regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
detect obviously dead insns and delete them.

From-SVN: r269218

5 years ago[libbacktrace] Fix btest-lto for older gcc
Tom de Vries [Tue, 26 Feb 2019 16:09:40 +0000 (16:09 +0000)]
[libbacktrace] Fix btest-lto for older gcc

With gcc 4.8.5, btest_lto ends up with a privatized name for the variable with
name 'global':
...
$ nm btest_lto | grep ' d ' | grep global
0000000000617150 d global.2530
...
which makes test5 fail:
...
    test5: unexpected syminfo name got global.2530 expected global
...

Fix this failure by accepting this type of name as a valid name in btest_lto.

2019-02-26  Tom de Vries  <tdevries@suse.de>

* btest.c (test5): Allow global.* as minimal symbol name for global.

From-SVN: r269217

5 years agolibgo: update to Go 1.12 release
Ian Lance Taylor [Tue, 26 Feb 2019 15:38:12 +0000 (15:38 +0000)]
libgo: update to Go 1.12 release

    Reviewed-on: https://go-review.googlesource.com/c/163742

From-SVN: r269216

5 years agore PR go/86535 (FreeBSD/PowerPC64 - Building Go Frontend support for gcc 7.3.0 fails)
Ian Lance Taylor [Tue, 26 Feb 2019 14:46:56 +0000 (14:46 +0000)]
re PR go/86535 (FreeBSD/PowerPC64 - Building Go Frontend support for gcc 7.3.0 fails)

PR go/86535
    runtime: always declare nanotime in Go

    For libgo it's always defined in C.

    Updates https://gcc.gnu.org/PR86535

    Reviewed-on: https://go-review.googlesource.com/c/163743

From-SVN: r269214

5 years agore PR c++/89481 (constexpr function allows writing one active union member and readin...
Jakub Jelinek [Tue, 26 Feb 2019 14:37:39 +0000 (15:37 +0100)]
re PR c++/89481 (constexpr function allows writing one active union member and reading another)

PR c++/89481
* constexpr.c (cxx_eval_store_expression): When changing active union
member, set no_zero_init.

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

From-SVN: r269213

5 years agore PR tree-optimization/89505 (LibreOffice miscompilation starting with r260383)
Richard Biener [Tue, 26 Feb 2019 14:09:19 +0000 (14:09 +0000)]
re PR tree-optimization/89505 (LibreOffice miscompilation starting with r260383)

2019-02-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89505
* tree-ssa-structalias.c (compute_dependence_clique): Make sure
to handle restrict pointed-to vars with multiple subvars
correctly.

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

From-SVN: r269212

5 years agore PR tree-optimization/89489 (ICE in gimple_duplicate_bb, at tree-cfg.c:6257)
Richard Biener [Tue, 26 Feb 2019 11:03:45 +0000 (11:03 +0000)]
re PR tree-optimization/89489 (ICE in gimple_duplicate_bb, at tree-cfg.c:6257)

2019-02-26  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89489
* tree-parloops.c (create_loop_fn): Copy over last_clique.

From-SVN: r269210

5 years agoopt77.adb: New test.
Eric Botcazou [Tue, 26 Feb 2019 10:55:16 +0000 (10:55 +0000)]
opt77.adb: New test.

* gnat.dg/opt77.adb: New test.
* gnat.dg/opt77_pkg.ad[sb]: New helper.

From-SVN: r269208

5 years agore PR fortran/43210 (Initializer of huge static arrays should be improved)
Jakub Jelinek [Tue, 26 Feb 2019 10:36:05 +0000 (11:36 +0100)]
re PR fortran/43210 (Initializer of huge static arrays should be improved)

PR fortran/43210
* trans-array.c (gfc_conv_array_initializer): Use RANGE_EXPR instead
of duplicating the initializer possibly many times.

From-SVN: r269207

5 years agore PR target/89474 (ice in df_reg_chain_verify_unmarked, at df-scan.c:3995)
Jakub Jelinek [Tue, 26 Feb 2019 10:08:29 +0000 (11:08 +0100)]
re PR target/89474 (ice in df_reg_chain_verify_unmarked, at df-scan.c:3995)

PR target/89474
* config/i386/i386.c (remove_partial_avx_dependency): Call
df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
after changing possibly many instructions to use that pseudo.  Fix up
insertion of v4sf_const0 setter at the start of bb.

* gcc.target/i386/pr89474.c: New test.

From-SVN: r269206

5 years ago[libbacktrace] Require dwz for b3test_dwz_buildid
Tom de Vries [Tue, 26 Feb 2019 07:54:57 +0000 (07:54 +0000)]
[libbacktrace] Require dwz for b3test_dwz_buildid

If dwz is not available, then the libbacktrace test b3test_dwz_buildid fails
like this:
...
gmake[4]: *** No rule to make target 'b3test_dwz_buildid'
...

Fix this by guarding the test with HAVE_DWZ.

Tested on x86_64 with and without dwz installed.

2019-02-26  Tom de Vries  <tdevries@suse.de>

* Makefile.am (TESTS): Only add b3test_dwz_buildid if HAVE_DWZ.
* Makefile.in: Regenerate.

From-SVN: r269204

5 years agore PR c/80409 (Document that va_arg(ap, void*) can be used to consume any pointer...
Sandra Loosemore [Tue, 26 Feb 2019 02:33:26 +0000 (21:33 -0500)]
re PR c/80409 (Document that va_arg(ap, void*) can be used to consume any pointer argument)

2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>

PR c/80409

gcc/
* doc/extend.texi (Variadic Pointer Args): New section.

From-SVN: r269203

5 years agolibgo: update to Go1.12rc1
Ian Lance Taylor [Tue, 26 Feb 2019 01:00:39 +0000 (01:00 +0000)]
libgo: update to Go1.12rc1

    Reviewed-on: https://go-review.googlesource.com/c/162881

From-SVN: r269202

5 years agoDaily bump.
GCC Administrator [Tue, 26 Feb 2019 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269201

5 years agore PR c/89495 (gcc/c-family/c-format.c:1272:20: runtime error: signed integer overflo...
Jakub Jelinek [Mon, 25 Feb 2019 23:43:51 +0000 (00:43 +0100)]
re PR c/89495 (gcc/c-family/c-format.c:1272:20: runtime error: signed integer overflow: 214748365 * 10 cannot be represented in type 'int')

PR c/89495
* c-format.c (maybe_read_dollar_number): Compute nargnum in
HOST_WIDE_INT type to avoid overflows and change overflow_flag
checking.

From-SVN: r269198

5 years agore PR c/77754 (internal compiler error : tree code 'call_expr' is not supported in...
Jakub Jelinek [Mon, 25 Feb 2019 22:58:45 +0000 (23:58 +0100)]
re PR c/77754 (internal compiler error : tree code 'call_expr' is not supported in LTO streams)

PR c/77754
* gcc.c-torture/compile/pr77754-1.c: New test.
* gcc.c-torture/compile/pr77754-2.c: New test.
* gcc.c-torture/compile/pr77754-3.c: New test.
* gcc.c-torture/compile/pr77754-4.c: New test.
* gcc.c-torture/compile/pr77754-5.c: New test.
* gcc.c-torture/compile/pr77754-6.c: New test.

From-SVN: r269197

5 years agoc.opt (Wmissing-attributes): Clean up doc string.
Sandra Loosemore [Mon, 25 Feb 2019 20:38:42 +0000 (15:38 -0500)]
c.opt (Wmissing-attributes): Clean up doc string.

2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
    Martin Sebor  <msebor@gmail.com>

gcc/
* c-family/c.opt (Wmissing-attributes): Clean up doc string.
* common.opt (Wattribute-alias): Likewise.
* doc/invoke.texi (Option Summary): List general form of
-Wattribute-alias=.  List positive form of -Wmissing-attributes.
(-Wmissing-attributes): Invert entry, rewrite and correct default.
Add cross-references.
(-Wattribute-alias): Rewrite and correct default.  Mention
considered attributes (same as for -Wmissing-attributes).

Co-Authored-By: Martin Sebor <msebor@gmail.com>
From-SVN: r269196

5 years ago[rs6000] PR89338, PR89339: Fix compat vector intrinsics for BE and 32-bit
Paul A. Clarke [Mon, 25 Feb 2019 19:36:05 +0000 (19:36 +0000)]
[rs6000] PR89338, PR89339: Fix compat vector intrinsics for BE and 32-bit

Test FAILS: sse2-cvtpd2dq-1, sse2-cvtpd2ps, sse2-cvttpd2dq on powerpc64
(big-endian).

_mm_cvtpd_epi32, _mm_cvtpd_ps, _mm_cvttpd_epi32: Type conversion from
vector doubleword type to vector word type leaves the results in even
lanes in big endian mode.

Test FAILS: sse-cvtss2si-1, sse-cvtss2si-2, sse-movmskb-1 on powerpc
(32-bit big-endian).

Incorrect type for interpreting the result from mfvsrd instruction leads
to incorrect results.  Also, mfvsrd instruction only works as expected in
64-bit mode or for 32-bit quantities in 32-bit mode.  A more general,
if slower, solution is needed for 32-bit mode.

2019-02-25  Paul A. Clarke  <pc@us.ibm.com>

[gcc]

* config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
(_mm_cvtpd_ps): Likewise.
(_mm_cvttpd_epi32): Likewise.

PR target/89338
* config/rs6000/xmmintrin.h (_mm_cvtss_f32):  Fix type mismatch.
(_mm_cvt_ss2si): Fix type mismatch and 32-bit.

PR target/89339
* config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.

From-SVN: r269195

5 years ago* fr.po: Update.
Joseph Myers [Mon, 25 Feb 2019 18:48:48 +0000 (18:48 +0000)]
* fr.po: Update.

From-SVN: r269194

5 years agoAArch64: Fix command line options canonicalization version #2. (PR target/88530)
Tamar Christina [Mon, 25 Feb 2019 17:57:01 +0000 (17:57 +0000)]
AArch64: Fix command line options canonicalization version #2. (PR target/88530)

Commandline options on AArch64 don't get canonicalized into the smallest
possible set before output to the assembler. This means that overlapping feature
sets are emitted with superfluous parts.

Normally this isn't an issue, but in the case of crypto we have retro-actively
split it into aes and sha2. We need to emit only +crypto to the assembler
so old assemblers continue to work.

Because of how -mcpu=native and -march=native work they end up enabling all
feature bits. Instead we need to get the smallest possible set, which would also
fix the problem with older the assemblers and the retro-active split.

The function that handles this is called quite often.  It is called for any
push/pop options or attribute that changes arch, cpu etc.  In order to not make
this search for the smallest set too expensive we sort the options based on the
number of features (bits) they enable.  This allows us to process the list
linearly instead of quadratically (Once we have enabled a feature, we know that
anything else that enables it can be ignored.  By sorting we'll get the biggest
groups first and thus the smallest combination of commandline flags).

The Option handling structures have been extended to have a boolean to indicate
whether the option is synthetic, with that I mean if the option flag itself
enables a new feature.

e.g. +crypto isn't an actual feature, it just enables other features, but others
like +rdma enable multiple dependent features but is itself also a feature.

There are two ways to solve this.

1) Either have the options that are feature bits also turn themselves on, e.g.
   change rdma to turn on FP, SIMD and RDMA as dependency bits.

2) Make a distinction between these two different type of features and have the
   framework handle it correctly.

Even though it's more code I went for the second approach, as it's the one
that'll be less fragile (people can't forget it) and gives the least surprises.

Effectively this patch changes the following:

The values before the => are the old compiler and after the => the new code.

-march=armv8.2-a+crypto+sha2 => -march=armv8.2-a+crypto
-march=armv8.2-a+sha2+aes => -march=armv8.2-a+crypto

The remaining behaviors stay the same.

gcc/ChangeLog:

PR target/88530
* common/config/aarch64/aarch64-common.c
(struct aarch64_option_extension): Add is_synthetic.
(all_extensions): Use it.
(TARGET_OPTION_INIT_STRUCT): Define hook.
(struct gcc_targetm_common): Moved to end.
(all_extensions_by_on): New.
(opt_ext_cmp, typedef opt_ext): New.
(aarch64_option_init_struct): New.
(aarch64_contains_opt): New.
(aarch64_get_extension_string_for_isa_flags): Output smallest set.
* config/aarch64/aarch64-option-extensions.def
(AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
(fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
Set is_synthetic to false.
(crypto): Set is_synthetic to true.
* config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
SYNTHETIC.

gcc/testsuite/ChangeLog:

PR target/88530
* gcc.target/aarch64/options_set_1.c: New test.
* gcc.target/aarch64/options_set_2.c: New test.
* gcc.target/aarch64/options_set_3.c: New test.
* gcc.target/aarch64/options_set_4.c: New test.
* gcc.target/aarch64/options_set_5.c: New test.
* gcc.target/aarch64/options_set_6.c: New test.
* gcc.target/aarch64/options_set_7.c: New test.
* gcc.target/aarch64/options_set_8.c: New test.
* gcc.target/aarch64/options_set_9.c: New test.

From-SVN: r269193

5 years agoArm: Update Armv8.4-a's FP16 FML intrinsics
Tamar Christina [Mon, 25 Feb 2019 17:48:55 +0000 (17:48 +0000)]
Arm: Update Armv8.4-a's FP16 FML intrinsics

This patch updates the Armv8.4-a FP16 FML intrinsics's suffixes from u32 to f16
to be more consistent with the naming convention for intrinsics.

The specifications for these intrinsics have not been published yet so we do
not need to maintain the old names.

The patch was created with the following script:

grep -lIE "(vfml[as].+)_u32" -r gcc/ | grep -iEv ".+Changelog.*" \
  | xargs sed -i -E -e "s/(vfml[as].+)_u32/\1_f16/g"

gcc/ChangeLog:

* config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
Rename ...
(vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
vfmlsl_laneq_high_f16): ... To this.
* config/arm/neon.md: Update comments.

gcc/testsuite/ChangeLog:

* gcc.target/arm/simd/fp16fml_high.c (test_vfmlal_high_u32,
test_vfmlalq_high_u32, test_vfmlsl_high_u32, test_vfmlslq_high_u32):
Rename ....
(test_vfmlal_high_f16, test_vfmlalq_high_f16, test_vfmlsl_high_f16,
test_vfmlslq_high_f16): ... To this.
* gcc.target/arm/simd/fp16fml_lane_high.c (test_vfmlal_lane_high_u32,
tets_vfmlsl_lane_high_u32, test_vfmlal_laneq_high_u32,
test_vfmlsl_laneq_high_u32, test_vfmlalq_lane_high_u32,
test_vfmlslq_lane_high_u32, test_vfmlalq_laneq_high_u32,
test_vfmlslq_laneq_high_u32): Rename ...
(test_vfmlal_lane_high_f16, tets_vfmlsl_lane_high_f16,
test_vfmlal_laneq_high_f16, test_vfmlsl_laneq_high_f16,
test_vfmlalq_lane_high_f16, test_vfmlslq_lane_high_f16,
test_vfmlalq_laneq_high_f16, test_vfmlslq_laneq_high_f16): ... To this.
* gcc.target/arm/simd/fp16fml_lane_low.c (test_vfmlal_lane_low_u32,
test_vfmlsl_lane_low_u32, test_vfmlal_laneq_low_u32,
test_vfmlsl_laneq_low_u32, test_vfmlalq_lane_low_u32,
test_vfmlslq_lane_low_u32, test_vfmlalq_laneq_low_u32,
test_vfmlslq_laneq_low_u32): Rename ...
(test_vfmlal_lane_low_f16, test_vfmlsl_lane_low_f16,
test_vfmlal_laneq_low_f16, test_vfmlsl_laneq_low_f16,
test_vfmlalq_lane_low_f16, test_vfmlslq_lane_low_f16,
test_vfmlalq_laneq_low_f16, test_vfmlslq_laneq_low_f16): ... To this.
* gcc.target/arm/simd/fp16fml_low.c (test_vfmlal_low_u32,
test_vfmlalq_low_u32, test_vfmlsl_low_u32, test_vfmlslq_low_u32):
Rename ...
(test_vfmlal_low_f16, test_vfmlalq_low_f16, test_vfmlsl_low_f16,
test_vfmlslq_low_f16): ... To this.

From-SVN: r269192

5 years agoAArch64: Update Armv8.4-a's FP16 FML intrinsics
Tamar Christina [Mon, 25 Feb 2019 17:46:16 +0000 (17:46 +0000)]
AArch64: Update Armv8.4-a's FP16 FML intrinsics

This patch updates the Armv8.4-a FP16 FML intrinsics's suffixes from u32 to f16
to be more consistent with the naming convention for intrinsics.

The specifications for these intrinsics have not been published yet so we do
not need to maintain the old names.

The patch was created with the following script:

grep -lIE "(vfml[as].+)_u32" -r gcc/ | grep -iEv ".+Changelog.*" \
  | xargs sed -i -E -e "s/(vfml[as].+)_u32/\1_f16/g"

gcc/ChangeLog:

* config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
Rename ...
(vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
vfmlslq_laneq_high_f16): ... To this.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/fp16_fmul_high.h (test_vfmlal_high_u32,
test_vfmlalq_high_u32, test_vfmlsl_high_u32, test_vfmlslq_high_u32):
Rename ...
(test_vfmlal_high_f16, test_vfmlalq_high_f16, test_vfmlsl_high_f16,
test_vfmlslq_high_f16): ... To this.
* gcc.target/aarch64/fp16_fmul_lane_high.h (test_vfmlal_lane_high_u32,
tets_vfmlsl_lane_high_u32, test_vfmlal_laneq_high_u32,
test_vfmlsl_laneq_high_u32, test_vfmlalq_lane_high_u32,
test_vfmlslq_lane_high_u32, test_vfmlalq_laneq_high_u32,
test_vfmlslq_laneq_high_u32): Rename ...
(test_vfmlal_lane_high_f16, tets_vfmlsl_lane_high_f16,
test_vfmlal_laneq_high_f16, test_vfmlsl_laneq_high_f16,
test_vfmlalq_lane_high_f16, test_vfmlslq_lane_high_f16,
test_vfmlalq_laneq_high_f16, test_vfmlslq_laneq_high_f16): ... To this.
* gcc.target/aarch64/fp16_fmul_lane_low.h (test_vfmlal_lane_low_u32,
test_vfmlsl_lane_low_u32, test_vfmlal_laneq_low_u32,
test_vfmlsl_laneq_low_u32, test_vfmlalq_lane_low_u32,
test_vfmlslq_lane_low_u32, test_vfmlalq_laneq_low_u32,
test_vfmlslq_laneq_low_u32): Rename ...
(test_vfmlal_lane_low_f16, test_vfmlsl_lane_low_f16,
test_vfmlal_laneq_low_f16, test_vfmlsl_laneq_low_f16,
test_vfmlalq_lane_low_f16, test_vfmlslq_lane_low_f16,
test_vfmlalq_laneq_low_f16, test_vfmlslq_laneq_low_f16): ... To this.
* gcc.target/aarch64/fp16_fmul_low.h (test_vfmlal_low_u32,
test_vfmlalq_low_u32, test_vfmlsl_low_u32, test_vfmlslq_low_u32):
Rename ...
(test_vfmlal_low_f16, test_vfmlalq_low_f16, test_vfmlsl_low_f16,
test_vfmlslq_low_f16): ... To This.
* lib/target-supports.exp
(check_effective_target_arm_fp16fml_neon_ok_nocache): Update test.

From-SVN: r269191

5 years agore PR fortran/89282 (Garbage arithmetics results in fortran with -O3 and overloaded...
Dominique d'Humieres [Mon, 25 Feb 2019 15:19:45 +0000 (16:19 +0100)]
re PR fortran/89282 (Garbage arithmetics results in fortran with -O3 and overloaded operators)

2019-02-25  Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR fortran/89282
* gfortran.dg/overload_3.f90: New test.

From-SVN: r269190

5 years agodf-scan: fix use of mw_order in df_mw_compare (PR 86096)
Alexander Monakov [Mon, 25 Feb 2019 15:14:39 +0000 (18:14 +0300)]
df-scan: fix use of mw_order in df_mw_compare (PR 86096)

PR rtl-optimization/86096
* df-scan.c (df_mw_compare): Do not check mw_reg fields when
comparing mw_order values.

From-SVN: r269189

5 years agore PR c++/89285 (ICE after casting the this pointer in the constructor in C++17 mode)
Jakub Jelinek [Mon, 25 Feb 2019 15:01:01 +0000 (16:01 +0100)]
re PR c++/89285 (ICE after casting the this pointer in the constructor in C++17 mode)

PR c++/89285
* g++.dg/cpp1y/constexpr-89285-2.C: New test.

From-SVN: r269188

5 years agore PR libfortran/89274 (Inconsistent list directed output of INTEGER(16))
Dominique d'Humieres [Mon, 25 Feb 2019 10:39:38 +0000 (11:39 +0100)]
re PR libfortran/89274 (Inconsistent list directed output of INTEGER(16))

2019-02-25  Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR libfortran/89274
* gfortran.dg/list_directed_large.f90: New test.

2019-02-25  Dominique d'Humieres  <dominiq@gcc.gnu.org>

PR libfortran/89274
* io/write.c (write_integer): Add width for INTEGER(16).

From-SVN: r269187

5 years agore PR target/89434 (wrong code with -Og and __builtin_mul_overflow())
Jakub Jelinek [Mon, 25 Feb 2019 10:32:38 +0000 (11:32 +0100)]
re PR target/89434 (wrong code with -Og and __builtin_mul_overflow())

PR target/89434
* config/arm/arm.md (*subsi3_carryin_const): Use
arm_neg_immediate_operand predicate instead of
arm_not_immediate_operand, "L" constraint instead of "K" and
print it using %n2 instead of %B2.
(*subsi3_carryin_const0): New define_insn.
(*subsi3_carryin_compare_const): Use const_int_I_operand predicate
instead of arm_not_operand and "I" constraint instead of "K" and
print it using %n3 instead of %B2.  Instead of using match_dup 2 add
another match_operand and in the condition check that it is negation
of operands[2].
(*subsi3_carryin_compare_const0): New define_ins.
(*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
*subsi3_carryin_const.
(*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
split into *subsi3_carryin_compare_const0 if the highpart is zero.

* gcc.c-torture/execute/pr89434.c: New test.

From-SVN: r269186

5 years agore PR target/89438 (ICE in glibc/sysdeps/ieee754/dbl-64/e_pow.c (internal compiler...
Jakub Jelinek [Mon, 25 Feb 2019 09:51:27 +0000 (10:51 +0100)]
re PR target/89438 (ICE in glibc/sysdeps/ieee754/dbl-64/e_pow.c (internal compiler error: in decompose, at rtl.h:2266))

PR target/89438
* config/arm.vfp.md (*negdf2_vfp): Use
gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
* config/arm/neon.md (neon_copysignf<mode>): Likewise.

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

From-SVN: r269185

5 years agoDaily bump.
GCC Administrator [Mon, 25 Feb 2019 00:16:31 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269183

5 years agore PR c++/84585 (internal compiler error: in get_local_decls, at cp/name-lookup.c...
Paolo Carlini [Sun, 24 Feb 2019 23:44:11 +0000 (23:44 +0000)]
re PR c++/84585 (internal compiler error: in get_local_decls, at cp/name-lookup.c:3654)

2019-02-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84585
* g++.dg/cpp0x/pr84585.C: New.

From-SVN: r269180

5 years agore PR fortran/89174 (Allocation segfault with CLASS(*) MOLD)
Thomas Koenig [Sun, 24 Feb 2019 22:49:47 +0000 (22:49 +0000)]
re PR fortran/89174 (Allocation segfault with CLASS(*) MOLD)

2019-02-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89174
* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Add is_mold
to garguments. If we are dealing with a MOLD, call
gfc_expr_to_initialize().
* trans-stmt.c (gfc_trans_allocate): For MOLD, pass is_mold=true
to gfc_find_and_cut_at_last_class_ref.
* trans.h (gfc_find_and_cut_at_last_class_ref): Add optional
argument is_mold with default false.

2019-02-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89174
* gfortran.dg/allocate_with_mold_3.f90: New test.

From-SVN: r269179

5 years agoi386: Compile PR target/87007 tests with -mfpmath=sse
H.J. Lu [Sun, 24 Feb 2019 22:41:55 +0000 (22:41 +0000)]
i386: Compile PR target/87007 tests with -mfpmath=sse

-mfpmath=sse is needed to enable SSE for FP math in 32-bit.

PR target/87007
* gcc.target/i386/pr87007-1.c: Compile with -mfpmath=sse.
* gcc.target/i386/pr87007-2.c: Likewise.

From-SVN: r269178

5 years agore PR fortran/89266 (ICE with TRANSFER of len=0 character array constructor)
Harald Anlauf [Sun, 24 Feb 2019 20:03:28 +0000 (20:03 +0000)]
re PR fortran/89266 (ICE with TRANSFER of len=0 character array constructor)

2019-02-24  Harald Anlauf  <anlauf@gmx.de>

PR fortran/89266
PR fortran/88326
* target-memory.c (gfc_element_size): Return false if element size
cannot be determined; element size is returned separately.
(gfc_target_expr_size): Return false if expression size cannot be
determined; expression size is returned separately.
* target-memory.h: Adjust prototypes.
* check.c (gfc_calculate_transfer_sizes): Adjust references to
gfc_target_expr_size, gfc_element_size.
* arith.c (hollerith2representation): Likewise.
* class.c (find_intrinsic_vtab): Likewise.
* simplify.c (gfc_simplify_sizeof): Likewise.

PR fortran/89266
PR fortran/88326
* gfortran.dg/pr89266.f90: New test.
* gfortran.dg/pr88326.f90: New test.

From-SVN: r269177

5 years agore PR rtl-optimization/89445 (_mm512_maskz_loadu_pd "forgets" to use the mask)
Jakub Jelinek [Sun, 24 Feb 2019 19:23:51 +0000 (20:23 +0100)]
re PR rtl-optimization/89445 (_mm512_maskz_loadu_pd "forgets" to use the mask)

PR rtl-optimization/89445
* simplify-rtx.c (simplify_ternary_operation): Don't use
simplify_merge_mask on operands that may trap.
* rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
SCALAR_FLOAT_MODE_P checks.  For integral division by zero, if
second operand is CONST_VECTOR, check if any element could be zero.
Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
their operands can trap.

* gcc.target/i386/avx512f-pr89445.c: New test.

From-SVN: r269176

5 years agoPR libstdc++/89416 fix accessibility of members
Jonathan Wakely [Sun, 24 Feb 2019 15:44:18 +0000 (15:44 +0000)]
PR libstdc++/89416 fix accessibility of members

PR libstdc++/89416
* include/bits/alloc_traits.h (__is_alloc_insertable_impl): Make
copy and move members public.

From-SVN: r269175

5 years agoDaily bump.
GCC Administrator [Sun, 24 Feb 2019 00:16:26 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269173

5 years agoImprove error message for bad arguments to script
Jonathan Wakely [Sat, 23 Feb 2019 21:19:04 +0000 (21:19 +0000)]
Improve error message for bad arguments to script

* generate_libstdcxx_web_docs: Improve error output.

From-SVN: r269169

5 years agoP0340R2 Making std::underlying_type SFINAE-friendly
Jonathan Wakely [Sat, 23 Feb 2019 21:19:00 +0000 (21:19 +0000)]
P0340R2 Making std::underlying_type SFINAE-friendly

* include/std/type_traits (__underlying_type_impl): New helper to
make underlying_type SFINAE-friendly.
(underlying_type): Derive from __underlying_type_impl.
* testsuite/20_util/underlying_type/requirements/typedefs-3.cc: New
test.

From-SVN: r269168

5 years agobuiltin-sprintf-10.c: Cast remaining wchar_t to wint_t to avoid a bogus -Wformat...
Martin Sebor [Sat, 23 Feb 2019 20:46:04 +0000 (20:46 +0000)]
builtin-sprintf-10.c: Cast remaining wchar_t to wint_t to avoid a bogus -Wformat warning in ILP32...

gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/builtin-sprintf-10.c: Cast remaining
wchar_t to wint_t to avoid a bogus -Wformat warning in
ILP32 (bug 77970).

From-SVN: r269167

5 years agogimple-ssa-sprintf.c (target_strtol): Rename...
Martin Sebor [Sat, 23 Feb 2019 20:25:57 +0000 (20:25 +0000)]
gimple-ssa-sprintf.c (target_strtol): Rename...

gcc/ChangeLog:
* gimple-ssa-sprintf.c (target_strtol): Rename...
(target_strtohwi): ...to this.  Handle values up to HOST_WIDE_INT_MAX.
(parse_directive): Adjust to name change.  Use HOST_WIDE_INT_MAX to
check for range error.

From-SVN: r269166

5 years agoInclude "../../../libgfortran/ISO_Fortran_binding.h"
H.J. Lu [Sat, 23 Feb 2019 19:58:52 +0000 (19:58 +0000)]
Include "../../../libgfortran/ISO_Fortran_binding.h"

PR testsuite/89476
* gfortran.dg/ISO_Fortran_binding_5.c: Include
"../../../libgfortran/ISO_Fortran_binding.h".
* gfortran.dg/ISO_Fortran_binding_6.c: Likewise.

From-SVN: r269165

5 years agodriver: Also prune joined switches with negation
H.J. Lu [Sat, 23 Feb 2019 19:39:35 +0000 (19:39 +0000)]
driver: Also prune joined switches with negation

When -march=native is passed to host_detect_local_cpu to the backend,
it overrides all command lines after it.  That means

$ gcc -march=native -march=skylake-avx512

is the treated as

$ gcc -march=skylake-avx512 -march=native

Prune joined switches with Negative and RejectNegative to allow
-march=skylake-avx512 to override previous -march=native on command-line.

gcc/

PR driver/69471
* opts-common.c (prune_options): Also prune joined switches
with Negative and RejectNegative.
* config/i386/i386.opt (march=): Add Negative(march=).
(mtune=): Add Negative(mtune=).
* doc/options.texi: Document Negative used together with Joined
and RejectNegative.

gcc/testsuite/

PR driver/69471
* gcc.dg/pr69471-1.c: New test.
* gcc.dg/pr69471-2.c: Likewise.
* gcc.target/i386/pr69471-3.c: Likewise.

From-SVN: r269164

5 years agore PR fortran/84387 (Defined output does not work for a derived type that has no...
Jerry DeLisle [Sat, 23 Feb 2019 18:07:10 +0000 (18:07 +0000)]
re PR fortran/84387 (Defined output does not work for a derived type that has no components)

2019-02-23  Jerry DeLisle <jvdelisle@gcc.gnu.org>

PR fortran/84387
* trans-io.c (transfer_expr): Do not return if there are no
components to the derived type or class.

* gfortran.dg/dtio_34.f90: New test.

From-SVN: r269161

5 years agore PR c++/89419 (ICE in is_normal_capture_proxy starting with r253601)
Marek Polacek [Sat, 23 Feb 2019 14:54:23 +0000 (14:54 +0000)]
re PR c++/89419 (ICE in is_normal_capture_proxy starting with r253601)

PR c++/89419
* g++.dg/cpp1y/lambda-generic-89419.C: New test.

From-SVN: r269159

5 years agoPR c++/88294 - ICE with non-constant noexcept-specifier.
Marek Polacek [Sat, 23 Feb 2019 14:05:31 +0000 (14:05 +0000)]
PR c++/88294 - ICE with non-constant noexcept-specifier.

* pt.c (maybe_instantiate_noexcept): Set up the list of local
specializations.  Set current_class_{ptr,ref}.

* g++.dg/cpp0x/noexcept34.C: New test.
* g++.dg/cpp0x/noexcept35.C: New test.

From-SVN: r269158

5 years agore PR fortran/88117 (ICE in gimplify_var_or_parm_decl, at gimplify.c:2697)
Paul Thomas [Sat, 23 Feb 2019 13:18:47 +0000 (13:18 +0000)]
re PR fortran/88117 (ICE in gimplify_var_or_parm_decl, at gimplify.c:2697)

2019-02-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/88117
* resolve.c (deferred_op_assign): Return if the lhs expression
has the pointer attribute.
* trans-expr.c (gfc_trans_assignment_1): Do not fix the string
length if the lhs expression has the pointer attribute.

2019-02-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/88117
* gfortran.dg/deferred_character_32.f90 : New test

From-SVN: r269157

5 years agore PR fortran/89385 (Incorrect members of C descriptor for an allocatable object)
Paul Thomas [Sat, 23 Feb 2019 12:18:44 +0000 (12:18 +0000)]
re PR fortran/89385 (Incorrect members of C descriptor for an allocatable object)

2019-02-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/89385
PR fortran/89366
* decl.c (gfc_verify_c_interop_param): Restriction on string
length being one is lifted for F2018.
* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): For scalar
characters with intent in, make a temporary and copy the result
of the expression evaluation into it.
(gfc_conv_procedure_call): Set a flag for character formal args
having a character length that is not unity. If the procedure
is bind C, call gfc_conv_gfc_desc_to_cfi_desc in this case.
Also, extend bind C calls to unconditionally convert both
pointers and allocatable expressions.

2019-02-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/89385
* gfortran.dg/ISO_Fortran_binding_1.f90 : Correct test for
previously incorrect lbound for allocatable expressions. Also
correct stop values to avoid repetition.
* gfortran.dg/ISO_Fortran_binding_5.f90 : New test
* gfortran.dg/ISO_Fortran_binding_5.c : Support previous test.

PR fortran/89366
* gfortran.dg/ISO_Fortran_binding_6.f90 : New test
* gfortran.dg/ISO_Fortran_binding_6.c : Support previous test.
* gfortran.dg/pr32599.f03 : Set standard to F2008.

2019-02-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/89385
PR fortran/89366
* runtime/ISO_Fortran_binding.c (cfi_desc_to_gfc_desc) : In the
interchange between character and derived, the character type
was being set incorrectly.
(gfc_desc_to_cfi_desc) : Eliminate the interchange of types in
this function. Do not add the kind and length information to
the type field of structures. Lbounds were incorrectly being
set to zero for allocatable and pointer descriptors. Should
have been non-pointer, non-allocatables that received this
treatment.

From-SVN: r269156

5 years agoPR libstdc++/89446 fix null pointer dereference in char_traits
Jonathan Wakely [Sat, 23 Feb 2019 03:01:59 +0000 (03:01 +0000)]
PR libstdc++/89446 fix null pointer dereference in char_traits

PR libstdc++/89446
* include/bits/char_traits.h (__constant_char_array): Check index is
in range before dereferencing.
(char_traits<char>::compare, char_traits<char>::find)
(char_traits<char8_t>::compare, char_traits<char8_t>::find): Return
immediately if n is zero.
(char_traits<wchar_t>::compare, char_traits<wchar_t>::find): Likewise.
Remove workarounds for PR 67026.
* testsuite/21_strings/basic_string_view/operators/char/89446.cc:
New test.
* testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
New test.

From-SVN: r269148

5 years agoCapture source location of dtors (PR c++/89390)
David Malcolm [Sat, 23 Feb 2019 01:19:38 +0000 (01:19 +0000)]
Capture source location of dtors (PR c++/89390)

gcc/cp/ChangeLog:
PR c++/89390
* parser.c (cp_parser_unqualified_id): Capture and use locations
for destructors.

gcc/testsuite/ChangeLog:
PR c++/89390
* g++.dg/diagnostic/pr89390.C: Update expected location of error,
renaming to a multicharacter name, so that start != finish.  Add
tests for dtor locations.

From-SVN: r269145

5 years agoDaily bump.
GCC Administrator [Sat, 23 Feb 2019 00:16:28 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r269142

5 years agore PR tree-optimization/88074 (g++ hangs on math expression)
David Malcolm [Sat, 23 Feb 2019 00:14:52 +0000 (00:14 +0000)]
re PR tree-optimization/88074 (g++ hangs on math expression)

PR middle-end/88074
* simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
mpfr_number_p && !mpfr_zero_p instead of mpfr_regular_p.
(norm2_add_squared): Likewise.  Use mp_exp_t rather than mpfr_exp_t.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r269139

5 years agore PR c++/84676 (internal compiler error: Segmentation fault (build_new_op_1))
Paolo Carlini [Fri, 22 Feb 2019 23:16:14 +0000 (23:16 +0000)]
re PR c++/84676 (internal compiler error: Segmentation fault (build_new_op_1))

2019-02-22  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/84676
* g++.dg/cpp0x/pr84676.C: New.

From-SVN: r269138

5 years agobuiltin-sprintf-10.c: Cast wchar_t to wint_t to avoid a bogus -Wformat warning in...
Martin Sebor [Fri, 22 Feb 2019 23:08:23 +0000 (23:08 +0000)]
builtin-sprintf-10.c: Cast wchar_t to wint_t to avoid a bogus -Wformat warning in ILP32 (bug 77970).

gcc/testsuite/ChangeLog:

* gcc.dg/tree-ssa/builtin-sprintf-10.c: Cast wchar_t to wint_t
to avoid a bogus -Wformat warning in ILP32 (bug 77970).

From-SVN: r269137

5 years agobaseline_symbols.txt: Adjust.
Eric Botcazou [Fri, 22 Feb 2019 21:25:59 +0000 (21:25 +0000)]
baseline_symbols.txt: Adjust.

* config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Adjust.
* config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.

From-SVN: r269136

5 years agore PR fortran/83057 (OPEN without a filename and without STATUS='SCRATCH' could produ...
Harald Anlauf [Fri, 22 Feb 2019 20:35:38 +0000 (20:35 +0000)]
re PR fortran/83057 (OPEN without a filename and without STATUS='SCRATCH' could produce a warning)

2019-02-22  Harald Anlauf  <anlauf@gmx.de>

PR fortran/83057
* io.c (gfc_match_open): Fix logic in checks of OPEN statement
when NEWUNIT= is specified.

PR fortran/83057
* gfortran.dg/newunit_6.f90: New test.

From-SVN: r269134

5 years agore PR fortran/89431 (CPP integer macros not defined)
Steven G. Kargl [Fri, 22 Feb 2019 20:27:57 +0000 (20:27 +0000)]
re PR fortran/89431 (CPP integer macros not defined)

2019-02-22  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/89431
* gfortran.texi: Fix documentation to match the implementation.

From-SVN: r269132

5 years agoPR c++/89420 - ICE with CAST_EXPR in explicit-specifier.
Marek Polacek [Fri, 22 Feb 2019 19:24:37 +0000 (19:24 +0000)]
PR c++/89420 - ICE with CAST_EXPR in explicit-specifier.

* decl.c (build_explicit_specifier): Don't check
processing_template_decl.  Call instantiation_dependent_expression_p
instead of value_dependent_expression_p.  Call
instantiate_non_dependent_expr_sfinae before
build_converted_constant_expr instead of calling
instantiate_non_dependent_expr after it.  Add
processing_template_decl_sentinel.

* g++.dg/cpp2a/explicit14.C: New test.

From-SVN: r269131

5 years agore PR libstdc++/89402 (warning: ‘void _ZNKSt4hashIeEclEe()’ specifies less restrictiv...
Jakub Jelinek [Fri, 22 Feb 2019 19:10:47 +0000 (20:10 +0100)]
re PR libstdc++/89402 (warning: ‘void _ZNKSt4hashIeEclEe()’ specifies less restrictive attribute than its target)

PR libstdc++/89402
* src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Change return
type to std::size_t and argument to type to long double.

From-SVN: r269130

5 years agoextend.texi (Other Builtins): Add __builtin_is_constant_evaluated.
Martin Sebor [Fri, 22 Feb 2019 18:38:36 +0000 (18:38 +0000)]
extend.texi (Other Builtins): Add __builtin_is_constant_evaluated.

gcc/ChangeLog:

* doc/extend.texi (Other Builtins): Add
__builtin_is_constant_evaluated.

From-SVN: r269129

5 years agore PR tree-optimization/87609 (miscompilation with restrict and loop)
Richard Biener [Fri, 22 Feb 2019 17:56:59 +0000 (17:56 +0000)]
re PR tree-optimization/87609 (miscompilation with restrict and loop)

2019-02-22  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87609
* tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.

From-SVN: r269127

5 years agoPR tree-optimization/88993 - GCC 9 -Wformat-overflow=2 should reflect real libc limits
Martin Sebor [Fri, 22 Feb 2019 17:38:11 +0000 (10:38 -0700)]
PR tree-optimization/88993 - GCC 9 -Wformat-overflow=2 should reflect real libc limits

PR tree-optimization/88993 - GCC 9 -Wformat-overflow=2 should reflect real libc limits
PR tree-optimization/88835 - overly aggressive -Werror=format-overflow for printf

gcc/ChangeLog:

PR tree-optimization/88993
PR tree-optimization/88853
* gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
New helper.
(sprintf_dom_walker::call_info::is_string_func): New helper.
(format_directive): Only issue "may exceed" 4095/INT_MAX warnings
for formatted string functions.
(sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.

gcc/testsuite/ChangeLog:

PR tree-optimization/88993
PR tree-optimization/88853
* gcc.dg/tree-ssa/builtin-fprintf-warn-2.c: New test.
* gcc.dg/tree-ssa/builtin-printf-warn-2.c: New test.
* gcc.dg/tree-ssa/builtin-snprintf-warn-3.c: Adjust.
* gcc.dg/tree-ssa/builtin-sprintf-warn-18.c: Same.

From-SVN: r269125

5 years agore PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c ...
Jeff Law [Fri, 22 Feb 2019 16:38:43 +0000 (09:38 -0700)]
re PR rtl-optimization/87761 ([MIPS] New FAIL: gcc.target/mips/fix-r4000-10.c   -O1 start with r265398)

PR rtl-optimization/87761
* config/mips/mips.md: Add new combiner pattern to recognize
a bitfield extraction using (ashiftrt (truncate (ashift (...)))).

From-SVN: r269123

5 years agoHandle stack pointer with SUBS/ADDS instructions.
Matthew Malcomson [Fri, 22 Feb 2019 16:35:22 +0000 (16:35 +0000)]
Handle stack pointer with SUBS/ADDS instructions.

In general the stack pointer was not handled for many SUBS/ADDS patterns in
aarch64.md.
Both the "extended register" and "immediate" forms allow the stack pointer to be
used as the source register, while no form allows the stack pointer for the
destination register.

The define_insn patterns generating ADDS/SUBS did not allow the stack pointer
for any operand, while the define_peephole2 patterns that generated RTX to be
matched by these patterns allowed the stack pointer for any operand.

The patterns are fixed by adding the 'k' constraint for the first source operand
to all define_insns that generate the ADDS/SUBS "extended register" and
"immediate" forms (but not the "shifted register" form).

In peephole optimizations, constraint strings are ignored (see "(gccint) C
Constraint Interface" info node in the documentation), so the decision to act or
not is based solely on the predicate and condition.
This patch introduces a new predicate "aarch64_general_reg" to be used in
define_peephole2 patterns where only GENERAL_REGS registers are acceptable and
uses that predicate in the peepholes that generate patterns for ADDS/SUBS.

Full bootstrap and regtest done on aarch64-none-linux-gnu.
Regression tests done on aarch64-none-linux-gnu and aarch64-none-elf cross
compiler.

OK for trunk?

gcc/ChangeLog:

2019-02-22  Matthew Malcomson  <matthew.malcomson@arm.com>

PR target/89324
* config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
destination register in peepholes generating patterns for ADDS/SUBS.
(add<mode>3_compare0,
*addsi3_compare0_uxtw, add<mode>3_compareC,
add<mode>3_compareV_imm, add<mode>3_compareV,
*adds_<optab><ALLX:mode>_<GPI:mode>,
*subs_<optab><ALLX:mode>_<GPI:mode>,
*adds_<optab><ALLX:mode>_shift_<GPI:mode>,
*subs_<optab><ALLX:mode>_shift_<GPI:mode>,
*adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
*sub<mode>3_compare0, *subsi3_compare0_uxtw,
sub<mode>3_compare1): Allow stack pointer for source register.
* config/aarch64/predicates.md (aarch64_general_reg): New predicate.

gcc/testsuite/ChangeLog:

2019-02-22  Matthew Malcomson  <matthew.malcomson@arm.com>

PR target/89324
* gcc.dg/rtl/aarch64/subs_adds_sp.c: New test.
* gfortran.fortran-torture/compile/pr89324.f90: New test.

From-SVN: r269122

5 years agoPR c/89425 - -Wabsolute-value warns in dead subexpressions
Martin Sebor [Fri, 22 Feb 2019 16:24:36 +0000 (16:24 +0000)]
PR c/89425 - -Wabsolute-value warns in dead subexpressions

gcc/c/ChangeLog:

PR c/89425
* c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
unreachable subexpressions.

gcc/testsuite/ChangeLog:

PR c/89425
* gcc.dg/Wabsolute-value.c: New test.

From-SVN: r269121

5 years agoWbuiltin-declaration-mismatch-12.c: New test.
Martin Sebor [Fri, 22 Feb 2019 16:21:07 +0000 (16:21 +0000)]
Wbuiltin-declaration-mismatch-12.c: New test.

gcc/testsuite/ChangeLog:
* gcc.dg/Wbuiltin-declaration-mismatch-12.c: New test.

From-SVN: r269120

5 years agoi386: Add pass_remove_partial_avx_dependency
H.J. Lu [Fri, 22 Feb 2019 15:54:08 +0000 (15:54 +0000)]
i386: Add pass_remove_partial_avx_dependency

With -mavx, for

$ cat foo.i
extern float f;
extern double d;
extern int i;

void
foo (void)
{
  d = f;
  f = i;
}

we need to generate

vxorp[ds] %xmmN, %xmmN, %xmmN
...
vcvtss2sd f(%rip), %xmmN, %xmmX
...
vcvtsi2ss i(%rip), %xmmN, %xmmY

to avoid partial XMM register stall.  This patch adds a pass to generate
a single

vxorps %xmmN, %xmmN, %xmmN

at entry of the nearest dominator for basic blocks with SF/DF conversions,
which is in the fake loop that contains the whole function, instead of
generating one

vxorp[ds] %xmmN, %xmmN, %xmmN

for each SF/DF conversion.

NB: The LCM algorithm isn't appropriate here since it may place a vxorps
inside the loop.  Simple testcase show this:

$ cat badcase.c

extern float f;
extern double d;

void
foo (int n, int k)
{
  for (int j = 0; j != n; j++)
    if (j < k)
      d = f;
}

It generates

    ...
    loop:
      if(j < k)
        vxorps    %xmm0, %xmm0, %xmm0
        vcvtss2sd f(%rip), %xmm0, %xmm0
      ...
    loopend
    ...

This is because LCM only works when there is a certain benifit.  But for
conditional branch, LCM wouldn't move

   vxorps  %xmm0, %xmm0, %xmm0

out of loop.  SPEC CPU 2017 on Intel Xeon with AVX512 shows:

1. The nearest dominator

|RATE |Improvement|
|500.perlbench_r | 0.55% |
|538.imagick_r | 8.43% |
|544.nab_r | 0.71% |

2. LCM

|RATE |Improvement|
|500.perlbench_r | -0.76% |
|538.imagick_r | 7.96%  |
|544.nab_r | -0.13% |

Performance impacts of SPEC CPU 2017 rate on Intel Xeon with AVX512
using

-Ofast -flto -march=skylake-avx512 -funroll-loops

before

commit e739972ad6ad05e32a1dd5c29c0b950a4c4bd576
Author: uros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Thu Jan 31 20:06:42 2019 +0000

            PR target/89071
            * config/i386/i386.md (*extendsfdf2): Split out reg->reg
            alternative to avoid partial SSE register stall for TARGET_AVX.
            (truncdfsf2): Ditto.
            (sse4_1_round<mode>2): Ditto.

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

are:

|INT RATE |Improvement|
|500.perlbench_r | 0.55% |
|502.gcc_r | 0.14% |
|505.mcf_r | 0.08% |
|523.xalancbmk_r | 0.18% |
|525.x264_r |-0.49% |
|531.deepsjeng_r |-0.04% |
|541.leela_r |-0.26% |
|548.exchange2_r |-0.3% |
|557.xz_r |BuildSame|

|FP RATE |Improvement|
|503.bwaves_r         |-0.29% |
|507.cactuBSSN_r | 0.04% |
|508.namd_r |-0.74% |
|510.parest_r |-0.01% |
|511.povray_r | 2.23% |
|519.lbm_r | 0.1% |
|521.wrf_r | 0.49% |
|526.blender_r | 0.13% |
|527.cam4_r | 0.65% |
|538.imagick_r | 8.43% |
|544.nab_r | 0.71% |
|549.fotonik3d_r | 0.15% |
|554.roms_r | 0.08% |

After commit e739972ad6ad05e32a1dd5c29c0b950a4c4bd576, on Skylake client,
impacts on 538.imagick_r with

-fno-unsafe-math-optimizations -march=native -Ofast -funroll-loops -flto

1. Size comparision:

before:

   text    data     bss     dec     hex filename
2436377    8352    4528 2449257  255f69 imagick_r

after:

   text    data     bss     dec     hex filename
2425249    8352    4528 2438129  2533f1 imagick_r

2. Number of vxorps:

before after difference
4948            4135            -19.66%

3. Performance improvement:

|RATE |Improvement|
|538.imagick_r | 5.5%  |

gcc/

2019-02-22  H.J. Lu  <hongjiu.lu@intel.com>
    Hongtao Liu  <hongtao.liu@intel.com>
    Sunil K Pandey  <sunil.k.pandey@intel.com>

PR target/87007
* config/i386/i386-passes.def: Add
pass_remove_partial_avx_dependency.
* config/i386/i386-protos.h
(make_pass_remove_partial_avx_dependency): New.
* config/i386/i386.c (make_pass_remove_partial_avx_dependency):
New function.
(pass_data_remove_partial_avx_dependency): New.
(pass_remove_partial_avx_dependency): Likewise.
(make_pass_remove_partial_avx_dependency): Likewise.
* config/i386/i386.md (avx_partial_xmm_update): New attribute.
(*extendsfdf2): Add avx_partial_xmm_update.
(truncdfsf2): Likewise.
(*float<SWI48:mode><MODEF:mode>2): Likewise.
(SF/DF conversion splitters): Disabled for TARGET_AVX.

gcc/testsuite/

2019-02-22  H.J. Lu  <hongjiu.lu@intel.com>
    Hongtao Liu  <hongtao.liu@intel.com>
    Sunil K Pandey  <sunil.k.pandey@intel.com>

PR target/87007
* gcc.target/i386/pr87007-1.c: New test.
* gcc.target/i386/pr87007-2.c: Likewise.

Co-Authored-By: Hongtao Liu <hongtao.liu@intel.com>
Co-Authored-By: Sunil K Pandey <sunil.k.pandey@intel.com>
From-SVN: r269119

5 years agore PR middle-end/85598 (Incorrect -Wformat-truncation in a loop only at -O2 and -O3)
Aldy Hernandez [Fri, 22 Feb 2019 13:46:01 +0000 (13:46 +0000)]
re PR middle-end/85598 (Incorrect -Wformat-truncation in a loop only at -O2 and -O3)

PR middle-end/85598
* gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
analysis for pass.

From-SVN: r269115

5 years agox86: (Reapply) Move AESNI generation to Skylake and Goldmont
Thiago Macieira [Fri, 22 Feb 2019 12:49:21 +0000 (12:49 +0000)]
x86: (Reapply) Move AESNI generation to Skylake and Goldmont

This is a repeat of commit r263989, which commit r264052 accidentally
reverted.

2019-02-22  Thiago Macieira  <thiago.macieira@intel.com>

PR target/89444
* config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
(PTA_SKYLAKE): Add PTA_AES.
(PTA_GOLDMONT): Likewise.

From-SVN: r269114

5 years agoc-pch.c (no_checksum): Remove.
Richard Biener [Fri, 22 Feb 2019 10:59:33 +0000 (10:59 +0000)]
c-pch.c (no_checksum): Remove.

2019-02-22  Richard Biener  <rguenther@suse.de>

c-family/
* c-pch.c (no_checksum): Remove.
(pch_init): Remove assertion that executable_checksum is not
all zero.
(c_common_valid_pch): Likewise.

From-SVN: r269113

5 years ago[GCC, AArch64] Fix a couple of bugs in BTI
Sudakshina Das [Fri, 22 Feb 2019 10:55:22 +0000 (10:55 +0000)]
[GCC, AArch64] Fix a couple of bugs in BTI

While doing more testing I found a couple of issues with my BTI patches.
This patch fixes them:
1) Remove a reference to return address key. The original patch was written
based on a different not yet committed patch ([PATCH 3/3][GCC][AARCH64] Add
support for pointer authentication B key) and I missed out on cleaning this
up. This is hidden behind the configuration option and thus went unnoticed.
2) Add a missed case for adding the BTI instruction in thunk functions.

*** gcc/ChangeLog ***

2019-02-22  Sudakshina Das  <sudi.das@arm.com>

* config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
instruction if enabled.
(aarch64_override_options): Remove reference to return address key.

From-SVN: r269112

5 years agore PR tree-optimization/89440 (ICE in vect_create_epilog_for_reduction, at tree-vect...
Richard Biener [Fri, 22 Feb 2019 10:52:49 +0000 (10:52 +0000)]
re PR tree-optimization/89440 (ICE in vect_create_epilog_for_reduction, at tree-vect-loop.c:5502)

2019-02-22  Richard Biener  <rguenther@suse.de>

PR tree-optimization/89440
* tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
not necessary assert.

* gcc.dg/vect/pr89440.c: New testcase.

From-SVN: r269111

5 years agoRemove unused check_effective_target_offload_nvptx
Thomas Schwinge [Fri, 22 Feb 2019 10:51:52 +0000 (11:51 +0100)]
Remove unused check_effective_target_offload_nvptx

gcc/testsuite/
* lib/target-supports.exp (check_effective_target_offload_nvptx):
Remove.

From-SVN: r269110

5 years ago[libgomp] In OpenACC testing, by default only build for the offload target that we...
Thomas Schwinge [Fri, 22 Feb 2019 10:51:35 +0000 (11:51 +0100)]
[libgomp] In OpenACC testing, by default only build for the offload target that we're actually going to test

... to avoid compilation overhead, and to keep simple '-foffload=[...]'
handling in test cases.

libgomp/
* testsuite/libgomp.oacc-c++/c++.exp: Specify
"-foffload=$offload_target".
* testsuite/libgomp.oacc-c/c.exp: Likewise.
* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
* testsuite/lib/libgomp.exp
(check_effective_target_openacc_nvidia_accel_configured): Remove,
as (conceptually) merged into
check_effective_target_openacc_nvidia_accel_selected.  Adjust all
users.

From-SVN: r269109