Jakub Jelinek [Fri, 31 May 2019 07:53:48 +0000 (09:53 +0200)]
re PR tree-optimization/90671 (ICE on valid code at -Os and above with -g enabled in gsi_split_seq_after, at gimple-iterator.c:345)
PR tree-optimization/90671
* tree-ssa-threadupdate.c (ssa_create_duplicates): If
template_block used to be empty on the first call, don't use
gsi_split_seq_after and gsi_insert_seq_after, but remember whole
seq with bb_seq and set it with set_bb_seq.
* gcc.dg/torture/pr90671.c: New test.
From-SVN: r271802
Iain Sandoe [Fri, 31 May 2019 07:23:14 +0000 (07:23 +0000)]
c++, testsuite - require alias support for a test.
The test for pr84497 uses a facility that requires alias support from
the target, and therefore fails on targets without. Add a suitable
dg-require statement.
2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
* g++.dg/cpp0x/pr84497.C: Require alias support.
From-SVN: r271801
Iain Sandoe [Fri, 31 May 2019 07:17:11 +0000 (07:17 +0000)]
Darwin, x86, testsuite - adjust tests for Darwin's align syntax.
Darwin has a .align taking a power of 2 by default, so that some
tests expecting a byte count are failing, fixed thus.
gcc/testsuite/
2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/i386/falign-functions-3.c: Adjust align syntax
and label for Darwin.
* gcc.target/i386/attr-aligned-2.c: Adjust align syntax for
Darwin.
From-SVN: r271800
Iain Sandoe [Fri, 31 May 2019 07:13:46 +0000 (07:13 +0000)]
Darwin, x86 - We have .p2align, so declare its use.
.p2align support is present in all x86 assemblers on released
Darwin systems.
gcc/
2019-05-29 Iain Sandoe <iain@sandoe.co.uk>
* config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
From-SVN: r271799
Bill Schmidt [Fri, 31 May 2019 00:38:35 +0000 (00:38 +0000)]
predicates.md (pcrel_address): New define_predicate.
2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/predicates.md (pcrel_address): New define_predicate.
(prefixed_mem_operand): Likewise.
(non_prefixed_mem_operand): Likewise.
* config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
prototype.
* config/rs6000/rs6000.c (print_operand_address): Handle
PC-relative addresses.
(mode_supports_prefixed_address_p): New function.
(rs6000_prefixed_address): New function.
* config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
(SYMBOL_REF_PCREL_P): Likewise.
Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>
From-SVN: r271798
Joseph Myers [Fri, 31 May 2019 00:28:14 +0000 (01:28 +0100)]
* fi.po, sv.po: Update.
From-SVN: r271796
GCC Administrator [Fri, 31 May 2019 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271795
Jakub Jelinek [Thu, 30 May 2019 21:19:39 +0000 (23:19 +0200)]
gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
* gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
(gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
(gimplify_omp_for): If worksharing loop with lastprivate conditional
is nested inside of parallel region, add _condtemp_ clause to both.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
assertion failure.
* omp-general.h (struct omp_for_data): Add have_pointer_condtemp
member.
* omp-general.c (omp_extract_for_data): Compute it.
* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
(lower_rec_input_clauses): Likewise.
(lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
clause is already present, just add one further one after it.
(lower_lastprivate_clauses): Handle cond_ptr with array type.
(lower_send_shared_vars): Clear _condtemp_ vars.
(lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
or section or taskgroup.
* omp-expand.c (determine_parallel_type): Disallow combining only if
first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
(expand_omp_for_generic, expand_omp_for_static_nochunk,
expand_omp_for_static_chunk, expand_omp_for): Use
fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
determine if a special set of API routines are needed and if condtemp
needs to be initialized, while always initialize cond_var if
fd->lastprivate_conditional is non-zero.
From-SVN: r271791
Jim Wilson [Thu, 30 May 2019 20:47:12 +0000 (20:47 +0000)]
Fix RISC-V build failure for go language.
gcc/go/
* go-gcc.cc (Gcc_backend::Gcc_backend): Add BUILT_IN_ATOMIC_FETCH_AND_1
and BUILT_IN_ATOMIC_FETCH_OR_1.
From-SVN: r271790
Nina Dinka Ranns [Thu, 30 May 2019 19:48:48 +0000 (19:48 +0000)]
LWG2788 basic_string spurious use of a default constructible allocator
This only change the cxx11 basic_string, because COW strings don't
correctly propagate allocators anyway.
2019-05-30 Nina Dinka Ranns <dinka.ranns@gmail.com>
LWG2788 basic_string spurious use of a default constructible allocator
* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
(basic_string::_M_replace_dispatch): Construct temporary string with
the current allocator.
* testsuite/21_strings/basic_string/allocator/char/lwg2788.cc: New.
* testsuite/21_strings/basic_string/allocator/wchar_t/lwg2788.cc: New.
From-SVN: r271789
Marek Polacek [Thu, 30 May 2019 18:40:17 +0000 (18:40 +0000)]
* cp-tree.h (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Fix a typo.
From-SVN: r271788
Bill Schmidt [Thu, 30 May 2019 18:13:06 +0000 (18:13 +0000)]
constraints.md (eI): New constraint.
2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/constraints.md (eI): New constraint.
* config/rs6000/predicates.md (cint34_operand): New predicate.
* config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
(SIGNED_34BIT_OFFSET_P): Likewise.
* doc/md.texi (eI): Document constraint.
Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>
From-SVN: r271787
Thomas Koenig [Thu, 30 May 2019 17:49:31 +0000 (17:49 +0000)]
gfc-internals.texi (Translating to GENERIC): New chapter.
2019-05-30 Thomas Koenig <tkoenig@gcc.gnu.org>
* gfc-internals.texi (Translating to GENERIC): New chapter.
From-SVN: r271786
Sylvia Taylor [Thu, 30 May 2019 17:36:52 +0000 (17:36 +0000)]
[aarch64]: add support for fabd in sve
This patch adds support in SVE to combine:
- fsub and fabs into fabd
fsub z0.s, z0.s, z1.s
fabs z0.s, p1/m, z0.s
---
fabd z0.s, p1/m, z0.s, z1.s
2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
gcc/
* config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
gcc/testsuite/
* gcc.target/aarch64/sve/fabd_1.c: New.
From-SVN: r271785
Ian Lance Taylor [Thu, 30 May 2019 17:26:46 +0000 (17:26 +0000)]
compiler: intrinsify sync/atomic functions
Let the Go frontend recognize sync/atomic functions and turn them
into intrinsics.
Also make sure not to intrinsify calls in go or defer statements.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/178937
From-SVN: r271784
Jakub Jelinek [Thu, 30 May 2019 17:23:32 +0000 (19:23 +0200)]
re PR c++/90598 (Return type of explicit destructor call wrong)
PR c++/90598
* tree.c (lvalue_kind): Return clk_none for expressions with
with VOID_TYPE_P.
* g++.dg/cpp0x/pr90598.C: New test.
From-SVN: r271783
Jonathan Wakely [Thu, 30 May 2019 15:47:32 +0000 (16:47 +0100)]
Update libstdc++ documentation for Support and Diagnostics clauses
* doc/xml/manual/diagnostics.xml: Update list of headers that define
exception classes.
* doc/xml/manual/support.xml: Rewrite advice around NULL. Rewrite
section about new/delete overloads. Improve section on verbose
terminate handler.
* doc/html/*: Regenerate.
From-SVN: r271782
Bill Schmidt [Thu, 30 May 2019 15:17:40 +0000 (15:17 +0000)]
rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
Michael Meissner <meissner@linux.ibm.com>
* rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
(ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
(ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
(ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
(OTHER_FUTURE_MASKS): Likewise.
(POWERPC_MASKS): Likewise.
* rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
specified without -mprefixed-addr or -mcpu=future. Error if
-mprefixed-addr is specified without -mcpu=future.
(rs6000_opt_masks): Add entry for prefixed-addr.
* rs6000.opt (mprefixed-addr): New option.
Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>
From-SVN: r271781
Sam Tebbs [Thu, 30 May 2019 12:26:14 +0000 (12:26 +0000)]
[PATCH][GCC][AARCH64] Fix libstdc++ build failure after r271735
gcc/ChangeLog
* aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
cfun->is_thunk check.
From-SVN: r271780
Marek Polacek [Thu, 30 May 2019 11:44:40 +0000 (11:44 +0000)]
* lang.opt (ftail-call-workaround): Fix a typo.
From-SVN: r271777
Jonathan Wakely [Thu, 30 May 2019 10:31:54 +0000 (11:31 +0100)]
Update C++20 status table
The status of P1353R0 was "Partial" because we don't define the
__cpp_lib_three_way_comparison macro, but that's because we don't
support the feature. So the paper can be marked as done.
* doc/xml/manual/status_cxx2020.xml: Add feature-test macro for
P0811R3. Change status of P1353R0.
* doc/html/*: Regenerate.
From-SVN: r271774
Jonathan Wakely [Thu, 30 May 2019 10:14:06 +0000 (11:14 +0100)]
Update documentation of implementation-defined library features
* doc/xml/manual/status_cxx2011.xml: Use <variablelist> for
documentation of implementation-defined types for [thread.req.native].
* doc/xml/manual/status_cxx2017.xml: Update documentation of
implementation-defined strings for [variant.bad.access]. Fix typo in
documentation of implementation-defined support for [fs.conform.9945].
* doc/html/*: Regenerate.
From-SVN: r271773
Jakub Jelinek [Thu, 30 May 2019 09:33:20 +0000 (11:33 +0200)]
tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght to length.
* tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
to length.
* lang.opt (ftail-call-workaround=): Fix a typo - lenghts to lengths.
From-SVN: r271770
Rainer Orth [Thu, 30 May 2019 09:06:48 +0000 (09:06 +0000)]
Generalize getconf _NPROCESSORS_ONLN
libgomp:
* configure.ac: Call AX_COUNT_CPUS.
Substitute CPU_COUNT.
* testsuite/Makefile.am (check-am): Use CPU_COUNT as processor
count fallback.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in, testsuite/Makefile.in: Regenerate.
config:
* ax_count_cpus.m4: New file.
From-SVN: r271769
Iain Sandoe [Thu, 30 May 2019 08:43:19 +0000 (08:43 +0000)]
testsuite,x86 - require native TLS for two tests that use it.
gcc/testsuite/
2019-05-30 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/i386/pr86257.c: Require native TLS support.
* gcc.target/i386/stack-prot-sym.c: Likewise.
From-SVN: r271768
Martin Liska [Thu, 30 May 2019 07:50:39 +0000 (09:50 +0200)]
gdbinit: add a new command and fix one
2019-05-30 Martin Liska <mliska@suse.cz>
* gdbinit.in: Fix 'ptc' command. Add trt
that prints TREE_TYPE($).
From-SVN: r271763
Paolo Carlini [Thu, 30 May 2019 07:09:41 +0000 (07:09 +0000)]
decl.c (grokdeclarator): Use declarator->id_loc in five error_at calls.
/cp
2019-05-31 Paolo Carlini <paolo.carlini@oracle.com>
* decl.c (grokdeclarator): Use declarator->id_loc in five
error_at calls.
/testsuite
2019-05-31 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/cpp0x/alias-decl-18.C: Test location too.
* g++.dg/cpp0x/udlit-nofunc-neg.C: Likewise.
* g++.dg/parse/crash59.C: Likewise.
* g++.dg/parse/error38.C: Likewise.
* g++.dg/parse/error39.C: Likewise.
* g++.dg/template/crash31.C: Likewise.
* g++.dg/template/operator8.C: Likewise.
* g++.dg/template/operator9.C: Likewise.
From-SVN: r271762
Ian Lance Taylor [Thu, 30 May 2019 00:57:11 +0000 (00:57 +0000)]
re PR go/90669 (go/gofrontend/types.cc:2805 contains range-based ‘for’ loops which are not C++98)
PR go/90669
compiler: remove range-based 'for' loop
Fix for GCC PR/90669: remove range-based 'for' loop to preserve
buildability with g++ version 4.X.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/179397
From-SVN: r271761
GCC Administrator [Thu, 30 May 2019 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271760
Jonathan Wakely [Wed, 29 May 2019 22:00:57 +0000 (23:00 +0100)]
PR libstdc++/85494 fix failing test
This test now fails on mingw-w64 because it's no longer always true that
the mt19937 engine is used when _GLIBCXX_USE_DEV_RANDOM is not defined.
Add tests for all the known tokens to ensure that at least one is
accepted.
* testsuite/26_numerics/random/random_device/cons/token.cc: Fix test
that fails on mingw-w64.
From-SVN: r271756
Jonathan Wakely [Wed, 29 May 2019 22:00:53 +0000 (23:00 +0100)]
PR libstdc++/88881 fix filesystem::symlink_status for Windows
The fix for PR 88881 only added a workaround to filesystem::status, but
filesystem::symlink_status is also affected by the _wstat bug and needs
the same workaround.
The recent change to optimize path::parent_path() means that the
workaround can be simplified to just use parent_path().
PR libstdc++/88881
* src/c++17/fs_ops.cc [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
(status(const path&, error_code&)): Use parent_path() to remove
trailing slash.
(symlink_status(const path&, error_code&)): Duplicate workaround for
bug in _wstat for paths with trailing slash.
* testsuite/27_io/filesystem/operations/remove_all.cc: Check path
with trailing slash.
* testsuite/27_io/filesystem/operations/status.cc: Likewise.
* testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
From-SVN: r271755
Jonathan Wakely [Wed, 29 May 2019 22:00:45 +0000 (23:00 +0100)]
Optimize filesystem::path::parent_path()
Parsing a complete string is more efficient than appending each
component one-by-one.
* src/c++17/fs_path.cc (path::parent_path()): Create whole path at
once instead of building it iteratively.
From-SVN: r271754
Bill Schmidt [Wed, 29 May 2019 21:50:09 +0000 (21:50 +0000)]
rs6000.c (rs6000_call_template_1): Handle pcrel calls here...
[gcc]
2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
calls here...
(rs6000_indirect_call_template_1): ...and here.
(rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
plt16_ha, plt16_lo, mtctr indirect calls. Use
rs6000_pltseq_enum.
(rs6000_decl_ok_for_sibcall): New function.
(rs6000_function_ok_for_sibcall): Refactor.
(rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
(rs6000_call_aix): Don't emit toc restore rtl for indirect calls
when pcrel. Reorganize.
(rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
* rs6000.h (rs6000_pltseq_enum): New enum.
* rs6000.md (UNSPEC_PLT_PCREL): New unspec.
(*pltseq_tocsave): Use rs6000_pltseq_enum.
(*pltseq_plt16_ha): Likewise.
(*pltseq_plt16_lo): Likewise.
(*pltseq_mtctr): Likewise.
(*pltseq_plt_pcrel): New insn.
(*call_local_aix): Handle @notoc calls.
(*call_value_local_aix): Likewise.
(*call_nonlocal_aix): Adjust lengths for pcrel calls.
(*call_value_nonlocal_aix): Likewise.
(*call_indirect_pcrel): New insn.
(*call_value_indirect_pcrel): Likewise.
[gcc/testsuite]
2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
* gcc.target/powerpc/notoc-direct-1.c: New.
* gcc.target/powerpc/pcrel-sibcall-1.c: New.
Co-Authored-By: Alan Modra <amodra@gmail.com>
From-SVN: r271753
Jakub Jelinek [Wed, 29 May 2019 21:33:18 +0000 (23:33 +0200)]
re PR c++/90598 (Return type of explicit destructor call wrong)
PR c++/90598
* tree.c (lvalue_kind): Return clk_none for expressions with
with VOID_TYPE_P.
* g++.dg/cpp0x/pr90598.C: New test.
From-SVN: r271752
Thomas Koenig [Wed, 29 May 2019 20:30:45 +0000 (20:30 +0000)]
re PR fortran/90539 (481.wrf slowdown by 25% on Intel Kaby with -Ofast -march=native starting with r271377)
2019-05-29 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/90539
* gfortran.h (gfc_has_dimen_vector_ref): Add prototype.
* trans.h (gfc_conv_subref_array_arg): Add argument check_contiguous.
(gfc_conv_is_contiguous_expr): Add prototype.
* frontend-passes.c (has_dimen_vector_ref): Remove prototype,
rename to
(gfc_has_dimen_vector_ref): New function name.
(matmul_temp_args): Use gfc_has_dimen_vector_ref.
(inline_matmul_assign): Likewise.
* trans-array.c (gfc_conv_array_parameter): Also check for absence
of a vector subscript before calling gfc_conv_subref_array_arg.
Pass additional argument to gfc_conv_subref_array_arg.
* trans-expr.c (gfc_conv_subref_array_arg): Add argument
check_contiguous. If that is true, check if the argument
is contiguous and do not repack in that case.
* trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): Split
away most of the work into, and call
(gfc_conv_intrinsic_is_coniguous_expr): New function.
2019-05-29 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/90539
* gfortran.dg/internal_pack_21.f90: Adjust scan patterns.
* gfortran.dg/internal_pack_22.f90: New test.
* gfortran.dg/internal_pack_23.f90: New test.
From-SVN: r271751
Jan Hubicka [Wed, 29 May 2019 19:51:24 +0000 (21:51 +0200)]
* tree-ssa/alias-access-spath-1.c: new testcase.
From-SVN: r271750
Uros Bizjak [Wed, 29 May 2019 18:51:41 +0000 (20:51 +0200)]
sse.md (*save_multiple<mode>): Rename from save_multiple<mode>.
* config/i386/sse.md (*save_multiple<mode>): Rename from
save_multiple<mode>.
(*restore_multiple<mode>): Rename from restore_multiple<mode>.
(*restore_multiple_and_return<mode>): Rename from
restore_multiple_and_return<mode>.
(*restore_multiple_leave_return<mode>): Rename from
restore_multiple_leave_return<mode>.
From-SVN: r271749
Yoshinori Sato [Wed, 29 May 2019 18:36:06 +0000 (03:36 +0900)]
config.gcc (rx-*-linux*): New target.
* config.gcc (rx-*-linux*): New target.
* config/rx/elf.opt: New file.
* config/rx/linux.h: Likewise.
* config/rx/t-linux: Likewise.
* config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
make it zero.
* config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
(ASM_APP_OFF): Likewise.
* config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
moved elsewhere.
* config.host (rx-*-linux*): Add new case.
* config/rx/t-rx (HOST_LIBGCC2_CFLAGS): Force DFmode to SFmode.
From-SVN: r271748
Jan Hubicka [Wed, 29 May 2019 18:13:51 +0000 (20:13 +0200)]
tree-ssa-alias.c (same_type_for_tbaa): Return ture if main variants are pointer equivalent.
* tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
variants are pointer equivalent.
From-SVN: r271747
Paolo Carlini [Wed, 29 May 2019 17:30:36 +0000 (17:30 +0000)]
re PR c++/89875 (invalid typeof reference to a member of an incomplete struct accepted at function scope)
/cp
2019-05-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/89875
* parser.c (cp_parser_sizeof_operand): When the type-id production
did not work out commit to the tentative parse.
/testsuite
2019-05-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/89875
* g++.dg/cpp0x/decltype-pr66548.C: Remove xfail.
* g++.dg/template/sizeof-template-argument.C: Adjust expected error.
From-SVN: r271746
Jonathan Wakely [Wed, 29 May 2019 14:45:50 +0000 (15:45 +0100)]
Avoid -Wunused-parameter warnings from testsuite utility
* testsuite/util/testsuite_api.h: Remove names of unused parameters.
From-SVN: r271741
Jonathan Wakely [Wed, 29 May 2019 14:45:35 +0000 (15:45 +0100)]
PR libstdc++/85494 use rdseed and rand_s in std::random_device
Add support for additional sources of randomness to std::random_device,
to allow using RDSEED for Intel CPUs and rand_s for Windows. When
supported these can be selected using the tokens "rdseed" and "rand_s".
For *-w64-mingw32 targets the "default" token will now use rand_s, and
for other i?86-*-* and x86_64-*-* targets it will try to use "rdseed"
first, then "rdrand", and finally "/dev/urandom".
To simplify the declaration of std::random_device in <bits/random.h> the
constructors now unconditionally call _M_init instead of _M_init_pretr1,
and the function call operator now unconditionally calls _M_getval. The
library code now decides whether _M_init and _M_getval should use a real
source of randomness or the mt19937 engine.
Existing code compiled against old libstdc++ headers will still call
_M_init_pretr1 and _M_getval_pretr1, but those functions now forward to
_M_init and _M_getval if a real source of randomness is available. This
means existing code compiled for mingw-w64 will start to use rand_s just
by linking to a new libstdc++.dll.
* acinclude.m4 (GLIBCXX_CHECK_X86_RDSEED): Define macro to check if
the assembler supports rdseed.
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Use GLIBCXX_CHECK_X86_RDSEED.
* config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_CRT_RAND_S): Define.
* doc/html/*: Regenerate.
* doc/xml/manual/status_cxx2011.xml: Document new tokens.
* include/bits/random.h (random_device::random_device()): Always call
_M_init rather than _M_init_pretr1.
(random_device::random_device(const string&)): Likewise.
(random_device::operator()()): Always call _M_getval().
(random_device::_M_file): Replace first member of union with an
anonymous struct, with _M_file as its first member.
* src/c++11/random.cc [_GLIBCXX_X86_RDRAND] (USE_RDRAND): Define.
[_GLIBCXX_X86_RDSEED] (USE_RDSEED): Define.
(USE_MT19937): Define if none of the above are defined.
(USE_POSIX_FILE_IO): Define.
(_M_strtoul): Remove.
[USE_RDSEED] (__x86_rdseed): Define new function.
[_GLIBCXX_USE_CRT_RAND_S] (__winxp_rand_s): Define new function.
(random_device::_M_init(const string&)): Initialize new union members.
Add support for "rdseed" and "rand_s" tokens. Decide what the
"default" token does according to which USE_* macros are defined.
[USE_POSIX_FILE_IO]: Store a file descriptor.
[USE_MT19937]: Forward to _M_init_pretr1 instead.
(random_device::_M_init_pretr1(const string&)) [USE_MT19937]: Inline
code from _M_strtoul.
[!USE_MT19937]: Call _M_init, transforming the old default token or
numeric tokens to "default".
(random_device::_M_fini()) [USE_POSIX_FILE_IO]: Use close not fclose.
(random_device::_M_getval()): Use new union members to obtain a
random number from the stored function pointer or file descriptor.
[USE_MT19937]: Obtain a value from the mt19937 engine.
(random_device::_M_getval_pretr1()): Call _M_getval().
(random_device::_M_getentropy()) [USE_POSIX_FILE_IO]: Use _M_fd
instead of fileno.
[!USE_MT19937] (mersenne_twister): Do not instantiate when not needed.
* testsuite/26_numerics/random/random_device/85494.cc: New test.
From-SVN: r271740
Alejandro Martinez [Wed, 29 May 2019 14:12:02 +0000 (14:12 +0000)]
This patch implements the [u]avgM3_floor and [u]avgM3_ceil optabs for SVE2.
From-SVN: r271739
Jakub Jelinek [Wed, 29 May 2019 14:08:57 +0000 (16:08 +0200)]
re PR fortran/90329 (Incompatibility between gfortran and C lapack calls)
PR fortran/90329
* lang.opt (fbroken-callers): Remove.
(ftail-call-workaround, ftail-call-workaround=): New options.
* gfortran.h (struct gfc_namespace): Add implicit_interface_calls.
* interface.c (gfc_procedure_use): Set implicit_interface_calls
for calls to implicit interface procedures.
* trans-decl.c (create_function_arglist): Use flag_tail_call_workaround
instead of flag_broken_callers. If it is not 2, also require
sym->ns->implicit_interface_calls.
* invoke.texi (fbroken-callers): Remove documentation.
(ftail-call-workaround, ftail-call-workaround=): Document.
From-SVN: r271738
Jakub Jelinek [Wed, 29 May 2019 09:33:02 +0000 (11:33 +0200)]
re PR bootstrap/90543 (Build failure on MINGW for gcc-9.1.0)
PR bootstrap/90543
* optc-save-gen.awk: In cl_optimization_print, use correct condition
for var_opt_string printing. In cl_optimization_print_diff, print
(null) instead of invoking undefined behavior if one of the
var_opt_string pointers is NULL and use && instead of first || in the
guarding condition. For var_target_other options, handle const char *
target variables similarly to const char * optimize node variables.
From-SVN: r271736
Sam Tebbs [Wed, 29 May 2019 09:22:17 +0000 (09:22 +0000)]
[PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key
gcc/
2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
* config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
* config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
Add autib1716 and pacib1716 initialisation.
* config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
for autib1716 and pacib1716.
* config/aarch64/aarch64-protos.h (aarch64_key_type,
aarch64_post_cfi_startproc): Define.
* config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
* config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
aarch64_handle_pac_ret_protection): Set default sign key to A.
* config/aarch64/aarch64.c (aarch64_expand_epilogue,
aarch64_expand_prologue): Add check for b-key.
* config/aarch64/aarch64.c (aarch64_ra_sign_key,
aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
* config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
* config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
* config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
* config/aarch64/aarch64.md (do_return): Add check for b-key.
* config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
pauth_hint_num_a with pauth_hint_num.
* config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
pauth_hint_num_a with pauth_hint_num.
* config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
* config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
* config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
* config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
* config/aarch64/iterators.md (pauth_hint_num_a): Replace
UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
UNSPEC_AUTIA1716 respectively.
* config/aarch64/iterators.md (pauth_hint_num_a): Rename to pauth_hint_num
and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
* doc/invoke.texi (-mbranch-protection): Add b-key type.
* config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
gcc/testsuite
2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
* 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_b_exception.c: New file.
* gcc.target/aarch64/return_address_sign_ab_exception.c: New file.
* gcc.target/aarch64/return_address_sign_builtin.c: New file
libgcc/
2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
* config/aarch64/aarch64-unwind.h (aarch64_cie_signed_with_b_key): New
function.
* config/aarch64/aarch64-unwind.h (aarch64_post_extract_frame_addr,
aarch64_post_frob_eh_handler_addr): Add check for b-key.
* config/aarch64/aarch64-unwind-h (aarch64_post_extract_frame_addr,
aarch64_post_frob_eh_handler_addr, aarch64_post_frob_update_context):
Rename RA_A_SIGNED_BIT to RA_SIGNED_BIT.
* unwind-dw2-fde.c (get_cie_encoding): Add check for 'B' in augmentation
string.
* unwind-dw2.c (extract_cie_info): Add check for 'B' in augmentation
string.
(RA_A_SIGNED_BIT): Rename to RA_SIGNED_BIT.
From-SVN: r271735
Jakub Jelinek [Wed, 29 May 2019 07:51:43 +0000 (09:51 +0200)]
gimplify.c (struct gimplify_omp_ctx): Add clauses member.
* gimplify.c (struct gimplify_omp_ctx): Add clauses member.
(gimplify_scan_omp_clauses): Initialize ctx->clauses.
(gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
explicit clause on combined parallel into implicit shared clause.
(gimplify_adjust_omp_clauses): Move lastprivate conditional clause
and firstprivate if the decl has one too from combined parallel to
the worksharing construct.
gcc/testsuite/
* c-c++-common/gomp/lastprivate-conditional-2.c (foo): Don't expect
sorry on lastprivate conditional on parallel for.
* c-c++-common/gomp/lastprivate-conditional-3.c (foo): Add tests for
lastprivate conditional warnings on parallel for constructs.
* c-c++-common/gomp/lastprivate-conditional-4.c: New test.
libgomp/
* testsuite/libgomp.c-c++-common/lastprivate_conditional_4.c: Rename
to ...
* testsuite/libgomp.c-c++-common/lastprivate-conditional-4.c: ... this.
* testsuite/libgomp.c-c++-common/lastprivate-conditional-5.c: New test.
* testsuite/libgomp.c-c++-common/lastprivate-conditional-6.c: New test.
From-SVN: r271733
Jakub Jelinek [Wed, 29 May 2019 07:48:37 +0000 (09:48 +0200)]
re PR c/90628 (__builtin_mul_overflow writes to const qualified integer)
PR c/90628
* c-common.c (check_builtin_function_arguments)
<case BUILTIN_*_OVERFLOW>: Diagnose pointer to const qualified integer
as last argument.
* c-c++-common/builtin-arith-overflow-3.c: New test.
From-SVN: r271732
Jakub Jelinek [Wed, 29 May 2019 07:45:49 +0000 (09:45 +0200)]
P1091R3 - Extending structured bindings to be more like var decls P1381R1 - Reference capture of structured bindings
P1091R3 - Extending structured bindings to be more like var decls
P1381R1 - Reference capture of structured bindings
* decl.c (cp_maybe_mangle_decomp): Handle TREE_STATIC decls even at
function scope.
(cp_finish_decomp): Copy over various decl properties from decl to
v[i] in the tuple case.
(grokdeclarator): Allow static, thread_local and __thread for C++2a
and use pedwarn instead of error for older standard revisions.
Make other structured binding diagnostic messages more i18n friendly.
* g++.dg/cpp1z/decomp3.C (test): For static, expect only warning
instead of error and only for c++17_down. Add a thread_local test.
(z2): Add a __thread test.
* g++.dg/cpp2a/decomp1.C: New test.
* g++.dg/cpp2a/decomp1-aux.cc: New file.
* g++.dg/cpp2a/decomp2.C: New test.
* g++.dg/cpp2a/decomp3.C: New test.
From-SVN: r271731
Jakub Jelinek [Wed, 29 May 2019 07:44:50 +0000 (09:44 +0200)]
P1091R3 - Extending structured bindings to be more like var decls P1381R1 - Reference capture of structured bindings
P1091R3 - Extending structured bindings to be more like var decls
P1381R1 - Reference capture of structured bindings
* decl.c (cp_maybe_mangle_decomp): Handle TREE_STATIC decls even at
function scope.
(cp_finish_decomp): Copy over various decl properties from decl to
v[i] in the tuple case.
(grokdeclarator): Allow static, thread_local and __thread for C++2a
and use pedwarn instead of error for older standard revisions.
Make other structured binding diagnostic messages more i18n friendly.
* g++.dg/cpp1z/decomp3.C (test): For static, expect only warning
instead of error and only for c++17_down. Add a thread_local test.
(z2): Add a __thread test.
* g++.dg/cpp2a/decomp1.C: New test.
* g++.dg/cpp2a/decomp1-aux.cc: New file.
* g++.dg/cpp2a/decomp2.C: New test.
* g++.dg/cpp2a/decomp3.C: New test.
From-SVN: r271730
Martin Liska [Wed, 29 May 2019 06:09:02 +0000 (08:09 +0200)]
Remove duplicite dg-compile (PR testsuite/90657).
2019-05-29 Martin Liska <mliska@suse.cz>
PR testsuite/90657
* gcc.dg/ipa/pr90555.c: Remove duplicite dg-compile.
From-SVN: r271729
Bill Schmidt [Wed, 29 May 2019 03:37:29 +0000 (03:37 +0000)]
rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
[gcc]
2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
[gcc/testsuite]
2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
* gcc.target/powerpc/localentry-detect-1.c: New file.
Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>
From-SVN: r271728
Michael Meissner [Wed, 29 May 2019 02:10:59 +0000 (02:10 +0000)]
rtl.h (LABEL_REF_P): New #define.
2019-05-28 Michael Meissner <meissner@linux.ibm.com>
* rtl.h (LABEL_REF_P): New #define.
From-SVN: r271727
GCC Administrator [Wed, 29 May 2019 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271726
John David Anglin [Tue, 28 May 2019 23:24:23 +0000 (23:24 +0000)]
pa.c (hppa_profile_hook): Remove offset adjustment.
* config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
From-SVN: r271720
Jonathan Wakely [Tue, 28 May 2019 19:39:48 +0000 (20:39 +0100)]
PR libstdc++/90634 reduce allocations in filesystem::path construction
PR libstdc++/90634
* include/experimental/bits/fs_path.h (path::path(path&&)): Only call
_M_split_cmpts() for a path with multiple components.
(path::_S_is_dir_sep()): Add missing 'static' keyword to function.
* src/filesystem/path.cc (path::_M_split_cmpts()): Count number of
components and reserve space in vector. Return early when there is
only one component.
* testsuite/27_io/filesystem/path/construct/90634.cc: New test.
* testsuite/experimental/filesystem/path/construct/90634.cc: New test.
From-SVN: r271717
Jonathan Wakely [Tue, 28 May 2019 19:39:41 +0000 (20:39 +0100)]
Fix C++14-only code in testsuite utility
* testsuite/util/testsuite_fs.h (compare_paths): Use three-argument
form of std::equals for C++11 compatibility.
From-SVN: r271716
Rainer Orth [Tue, 28 May 2019 17:27:51 +0000 (17:27 +0000)]
Remove pre-Solaris 11/SPARC unwinding support
* config/sparc/sol2-unwind.h [__arch64__] (sparc64_is_sighandler):
Remove Solaris 9 and 10 support.
(sparc_is_sighandler): Likewise.
From-SVN: r271715
Nathan Sidwell [Tue, 28 May 2019 17:04:12 +0000 (17:04 +0000)]
[C++ PATCH] template specializations
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01844.html
* decl.c (duplicate_decls): Assert a template newdecl has no
specializations.
From-SVN: r271713
Marek Polacek [Tue, 28 May 2019 14:00:29 +0000 (14:00 +0000)]
PR c++/90548 - ICE with generic lambda and empty pack.
* pt.c (tsubst_copy_and_build): Handle pack expansion properly.
* g++.dg/cpp1y/lambda-generic-90548.C: New test.
From-SVN: r271705
Alejandro Martinez [Tue, 28 May 2019 13:48:44 +0000 (13:48 +0000)]
Current vectoriser doesn't support masked loads for SLP.
Current vectoriser doesn't support masked loads for SLP. We should add that, to
allow things like:
void
f (int *restrict x, int *restrict y, int *restrict z, int n)
{
for (int i = 0; i < n; i += 2)
{
x[i] = y[i] ? z[i] : 1;
x[i + 1] = y[i + 1] ? z[i + 1] : 2;
}
}
to be vectorized using contiguous loads rather than LD2 and ST2.
This patch was motivated by SVE, but it is completely generic and should apply
to any architecture with masked loads.
From-SVN: r271704
Rainer Orth [Tue, 28 May 2019 13:37:15 +0000 (13:37 +0000)]
Remove obsolete comment about use_thunk
* config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
Remove obsolete use_thunk reference.
* config/i386/i386.c (x86_output_mi_thunk): Likewise.
* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
* config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
* config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
* config/sh/sh.c (sh_output_mi_thunk): Likewise.
* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
* config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
* config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
From-SVN: r271703
Nathan Sidwell [Tue, 28 May 2019 13:31:16 +0000 (13:31 +0000)]
[PATCH] Commonize anon-name generation
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01699.html
* tree.h (IDENTIFIER_ANON_P): New.
(anon_aggrname_format, anon_aggname_p): Don't declare.
(make_anon_name): Declare.
* lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
(hash_tree): Likewise.
* tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
* tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
(anon_cnt, make_anon_name): New.
gcc/cp/
* cp-tree.h (make_anon_name): Drop declaration.
(TYPE_UNNAMED_P): Use IDENTIFIER_ANON_P.
* cp-lang.c (cxx_dwarf_name): Likewise.
* class.c (find_flexarrays): Likewise.
* decl.c (name_unnamed_type, xref_tag_1): Likewise.
* error.c (dump_aggr_type): Likewise.
* pt.c (push_template_decl_real): Likewise.
* name-lookup.c (consider_binding_level): Likewise.
(anon_cnt, make_anon_name): Delete.
gcc/d/
* types.cc (fixup_anonymous_offset): Use IDENTIFIER_ANON_P.
(layout_aggregate_members): Use make_anon_name.
From-SVN: r271702
Jeff Law [Tue, 28 May 2019 13:16:17 +0000 (07:16 -0600)]
pr50749-qihisi-predec-3.c: Disable loop distribution.
* testsuite/gcc.target/sh/pr50749-qihisi-predec-3.c: Disable
loop distribution.
From-SVN: r271701
Martin Liska [Tue, 28 May 2019 12:05:50 +0000 (14:05 +0200)]
Support again multiple --help options (PR other/90315).
2019-05-28 Martin Liska <mliska@suse.cz>
PR other/90315
* opts-global.c (decode_options): Print help for all
help_option_arguments.
* opts.c (print_help): Add new argument.
(common_handle_option): Remember all values into
help_option_arguments.
* opts.h (print_help): Add new argument.
From-SVN: r271700
Segher Boessenkool [Tue, 28 May 2019 11:45:48 +0000 (13:45 +0200)]
rs6000: Improve p9-dimode* testcases
This removes the unnecessary restriction to 32-bit (all three ways).
It also scans for mtvsr*, not just mtvsrd. Finally, it uses the "wa"
constraints instead of "wi" in the inline asm statements.
gcc/testsuite/
* gcc.target/powerpc/p9-dimode1.c: Don't restrict to -m64. Check for
all mtvsr*, not just mtvsrd. Use "wa" instead of "wi" constraints.
* gcc.target/powerpc/p9-dimode2.c: Ditto.
From-SVN: r271696
Martin Liska [Tue, 28 May 2019 11:42:46 +0000 (13:42 +0200)]
Handle loop fields in IPA ICF (PR ipa/90555).
2019-05-28 Martin Liska <mliska@suse.cz>
PR ipa/90555
* ipa-icf-gimple.c (func_checker::compare_loops): New function.
* ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
(func_checker::compare_bb): Call compare_loops.
2019-05-28 Martin Liska <mliska@suse.cz>
PR ipa/90555
* gcc.dg/ipa/pr90555.c: New test.
From-SVN: r271695
Eric Botcazou [Tue, 28 May 2019 08:51:35 +0000 (08:51 +0000)]
* gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
From-SVN: r271694
Eric Botcazou [Tue, 28 May 2019 08:47:33 +0000 (08:47 +0000)]
implementation_defined_pragmas.rst (Machine_Attribute): Document additional optional parameters.
* doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
Document additional optional parameters.
* sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
more than one optional parameter.
* gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
the list of supported pragmas. Simplify the handling of parameters
and add support for more than one optional parameter.
* gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
(gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
used, cold, hot, target and target_clones.
(begin_subprog_body): Do not create the RTL for the subprogram here.
(handle_noicf_attribute): New static function.
(handle_noipa_attribute): Likewise.
(handle_flatten_attribute): Likewise.
(handle_used_attribute): Likewise.
(handle_cold_attribute): Likewise.
(handle_hot_attribute): Likewise.
(handle_target_attribute): Likewise.
(handle_target_clones_attribute): Likewise.
From-SVN: r271693
Eric Botcazou [Tue, 28 May 2019 08:25:32 +0000 (08:25 +0000)]
trans.c (lvalue_required_for_attribute_p): Return 0 for 'Size too.
* gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
for 'Size too.
(Identifier_to_gnu): Use the actual subtype for a reference to a
packed array in a return statement.
(Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
the prefix in every case.
From-SVN: r271691
Eric Botcazou [Tue, 28 May 2019 08:13:37 +0000 (08:13 +0000)]
trans.c (gnat_to_gnu): Remove superfluous tests on Backend_Overflow_Checks_On_Target and rework comments.
* gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
Backend_Overflow_Checks_On_Target and rework comments.
From-SVN: r271689
Eric Botcazou [Tue, 28 May 2019 08:00:21 +0000 (08:00 +0000)]
trans.c (walk_nesting_tree): New static function.
* gcc-interface/trans.c (walk_nesting_tree): New static function.
(finalize_nrv): Use it to walk the entire nesting tree.
From-SVN: r271685
Eric Botcazou [Tue, 28 May 2019 07:42:53 +0000 (07:42 +0000)]
decl.c (gnat_to_gnu_entity): Remove obsolete test on Is_For_Access_Subtype.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
obsolete test on Is_For_Access_Subtype.
From-SVN: r271683
Eric Botcazou [Tue, 28 May 2019 07:36:02 +0000 (07:36 +0000)]
decl.c (components_to_record): Set a name on the type created for the REP part, if any.
* gcc-interface/decl.c (components_to_record): Set a name on the type
created for the REP part, if any.
* gcc-interface/utils.c (finish_record_type): Only take the maximum
when merging sizes for a variant part at offset 0.
(merge_sizes): Rename has_rep parameter into max.
From-SVN: r271681
Eric Botcazou [Tue, 28 May 2019 07:23:54 +0000 (07:23 +0000)]
utils.c (gnat_internal_attribute_table): Add support for stack_protect attribute.
* gcc-interface/utils.c (gnat_internal_attribute_table): Add support
for stack_protect attribute.
(handle_stack_protect_attribute): New static function.
From-SVN: r271680
Eric Botcazou [Tue, 28 May 2019 07:21:07 +0000 (07:21 +0000)]
decl.c (intrin_arglists_compatible_p): Do not return false if the internal builtin uses a variable list.
* gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
false if the internal builtin uses a variable list.
From-SVN: r271679
Xuepeng Guo [Tue, 28 May 2019 02:45:34 +0000 (02:45 +0000)]
Add GCC support to ENQCMD.
gcc/ChangeLog
2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
* common/config/i386/i386-common.c
(OPTION_MASK_ISA_ENQCMD_SET,
OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
(ix86_handle_option): Handle -menqcmd.
* config.gcc (enqcmdintrin.h): New header file.
* config/i386/cpuid.h (bit_ENQCMD): New bit.
* config/i386/driver-i386.c (host_detect_local_cpu): Handle
-menqcmd.
* config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
function type.
* config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
__builtin_ia32_enqcmds): New builtins.
* config/i386/i386-c.c (__ENQCMD__): New macro.
* config/i386/i386-option.c (ix86_target_string): Add
-menqcmd.
(ix86_valid_target_attribute_inner_p): Likewise.
* config/i386/i386-expand.c
(ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
IX86_BUILTIN_ENQCMDS.
* config/i386/i386.h (TARGET_ENQCMD): New.
* config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
(@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
(movdir64b_<mode>): Parameterize to enable share expansion code
with ENQCMD in function ix86_expand_builtin.
* config/i386/i386.opt: Add -menqcmd.
* config/i386/immintrin.h: Include enqcmdintrin.h.
* config/i386/enqcmdintrin.h: New intrinsic file.
* doc/invoke.texi: Add -menqcmd.
gcc/testsuite/ChangeLog
2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
* gcc.target/i386/enqcmd.c: New test.
* gcc.target/i386/enqcmds.c: Likewise.
* g++.dg/other/i386-2.C: Add -menqcmd.
* g++.dg/other/i386-3.C: Likewise.
* gcc.target/i386/sse-12.c: Likewise.
* gcc.target/i386/sse-13.c: Likewise.
* gcc.target/i386/sse-14.c: Likewise.
* gcc.target/i386/sse-23.c: Likewise.
From-SVN: r271678
GCC Administrator [Tue, 28 May 2019 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271677
Jakub Jelinek [Mon, 27 May 2019 21:33:37 +0000 (23:33 +0200)]
gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional on sections construct.
* gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
on sections construct.
* omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
construct.
(lower_omp_sections): Handle lastprivate conditional.
(lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
lastprivate_conditional_map.
* omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
libgomp/
* testsuite/libgomp.c-c++-common/lastprivate_conditional_4.c: New test.
From-SVN: r271673
Jakub Jelinek [Mon, 27 May 2019 21:31:40 +0000 (23:31 +0200)]
omp-low.c (lower_omp_1): Look through ordered...
* omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
critical, taskgroup and section regions when looking for a region
with non-NULL lastprivate_conditional_map.
* testsuite/libgomp.c-c++-common/lastprivate-conditional-3.c: New test.
From-SVN: r271672
Jakub Jelinek [Mon, 27 May 2019 21:27:00 +0000 (23:27 +0200)]
re PR libgomp/90641 (libgomp.c-c++-common/lastprivate-conditional-1.c etc FAIL)
PR libgomp/90641
* work.c (gomp_init_work_share): Instead of aligning final ordered
value to multiples of long long alignment, align to that the
first part (ordered team ids) and if inline_ordered_team_ids
is not on a long long alignment boundary within the structure,
use __alignof__ (long long) - 1 pad size always.
* loop.c (GOMP_loop_start): Fix *mem computation if
inline_ordered_team_ids is not aligned on long long alignment boundary
within the structure.
* loop-ull.c (GOMP_loop_ull_start): Likewise.
* sections.c (GOMP_sections2_start): Likewise.
From-SVN: r271671
Iain Sandoe [Mon, 27 May 2019 20:06:22 +0000 (20:06 +0000)]
darwin, x86, testsuite - Match codegen
For this test, we can match the codegen expected in the scan-asms
by avoiding the extra indirection that's mandated by the ABI for
common access and by using -mdynamic-no-pic for the 32b case.
gcc/testsuite/
2019-05-27 Iain Sandoe <iain@sandoe.co.uk>
* gcc.target/i386/pr22076.c: Adjust options to
match codegen expected by the scan-asms.
From-SVN: r271670
Ian Lance Taylor [Mon, 27 May 2019 19:21:22 +0000 (19:21 +0000)]
Makefile.am (check-go-tool): Only chmod check-go-dir if it exists.
* Makefile.am (check-go-tool): Only chmod check-go-dir if it
exists.
* Makefile.in: Regenerate.
From-SVN: r271669
Segher Boessenkool [Mon, 27 May 2019 19:12:19 +0000 (21:12 +0200)]
rs6000: Fix sanitizer build (PR90639)
The assembler code needs to say it uses AltiVec instructions.
libsanitizer/
PR target/90639
* tsan/tsan_rtl_ppc64.S: Add ".machine altivec".
From-SVN: r271668
Uros Bizjak [Mon, 27 May 2019 18:33:23 +0000 (20:33 +0200)]
i386.c (ix86_gen_add3): Remove indirect function.
* config/i386/i386.c (ix86_gen_add3): Remove indirect function.
(*ix86_gen_sub3): Ditto.
(*ix86_gen_sub3_carry): Ditto.
(*ix86_gen_one_cmpl2): Ditto.
(*ix86_gen_andsp): Ditto.
(ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
(gen_and2_insn): New static function.
(ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
Use gen_add3_insn instead of ix86_gen_add3.
(ix86_expand_split_stack_prologue): Use gen_add2_insn
instead of ix86_gen_add3.
(legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
Use gen_sub3_insn instead of ix86_gen_sub3.
* config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
instead of ix86_gen_add3.
(ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
(construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
* config/i386/i386-options.c (ix86_option_override_internal):
Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
ix86_gen_one_cmpl2 and ix86_gen_andsp.
From-SVN: r271667
Eric Botcazou [Mon, 27 May 2019 16:08:19 +0000 (16:08 +0000)]
dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index and DW_OP_GNU_const_index opcodes.
* dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
and DW_OP_GNU_const_index opcodes.
From-SVN: r271664
Uros Bizjak [Mon, 27 May 2019 14:37:02 +0000 (16:37 +0200)]
i386.h (STACK_SIZE_MODE): Define.
* config/i386/i386.h (STACK_SIZE_MODE): Define.
From-SVN: r271663
Christophe Lyon [Mon, 27 May 2019 13:37:57 +0000 (13:37 +0000)]
[testsuite,aarch64,arm] PR88440: Fix testcases
2019-05-27 Christophe Lyon <christophe.lyon@linaro.org>
PR tree-optimization/88440
gcc/testsuite/
* gcc.target/aarch64/sve/index_offset_1.c: Add -fno-tree-loop-distribute-patterns.
* gcc.target/aarch64/sve/single_1.c: Likewise.
* gcc.target/aarch64/sve/single_2.c: Likewise.
* gcc.target/aarch64/sve/single_3.c: Likewise.
* gcc.target/aarch64/sve/single_4.c: Likewise.
* gcc.target/aarch64/sve/vec_init_1.c: Likewise.
* gcc.target/aarch64/vect-fmovd-zero.c: Likewise.
* gcc.target/aarch64/vect-fmovf-zero.c: Likewise.
* gcc.target/arm/ivopts.c: Likewise.
From-SVN: r271662
Richard Biener [Mon, 27 May 2019 13:18:12 +0000 (13:18 +0000)]
re PR tree-optimization/90637 (ICE in vect_loop_versioning, at tree-vect-loop-manip.c:3055)
2019-05-27 Richard Biener <rguenther@suse.de>
PR tree-optimization/90637
* tree-ssa-sink.c (statement_sink_location): Honor the
computed sink location for single-uses.
* gcc.dg/gomp/pr90637.c: New testcase.
From-SVN: r271661
Eric Botcazou [Mon, 27 May 2019 11:43:17 +0000 (11:43 +0000)]
trans.c (Call_to_gnu): Do not initialize the temporary created out of addressability concerns if...
* gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
created out of addressability concerns if it's for the _Init parameter
of an initialization procedure.
From-SVN: r271659
Eric Botcazou [Mon, 27 May 2019 11:34:35 +0000 (11:34 +0000)]
ada-builtin-types.def: New file.
* gcc-interface/ada-builtin-types.def: New file.
* gcc-interface/ada-builtins.def: Likewise.
* gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
(BUILT_IN_UNLIKELY): Likewise.
* gcc-interface/trans.c (independent_iterations_p): Initialize the
auto-vector to 16 elements.
(Call_to_gnu): Remove local variable and change the vector of actual
parameters to an auto-vector. Do not convert actual parameters to
the argument type for front-end built-in functions. Add support for
front-end built-in functions.
(build_noreturn_cond): Use internal instead of built-in function.
* gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
(install_builtin_function_types): Likewise.
(install_builtin_functions): Include ada-builtins.def first.
From-SVN: r271658
Eric Botcazou [Mon, 27 May 2019 11:12:28 +0000 (11:12 +0000)]
utils.c (maybe_pad_type): Issue the warning for the specific case of component types preferably.
* gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
specific case of component types preferably.
From-SVN: r271655
Eric Botcazou [Mon, 27 May 2019 11:04:48 +0000 (11:04 +0000)]
trans.c (Identifier_to_gnu): Minor tweaks.
* gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
(gnat_to_gnu): Do not convert the result if it is a reference to an
unconstrained array used as the prefix of an attribute reference that
requires an lvalue.
From-SVN: r271653
Richard Biener [Mon, 27 May 2019 10:52:14 +0000 (10:52 +0000)]
re PR tree-optimization/90610 (526.blender_r miscompared on znver1 with -Ofast -march=native since r271463)
2019-05-27 Richard Biener <rguenther@suse.de>
PR middle-end/90610
* match.pd (vec_perm): Avoid clobbering op0 when not generating
a bit-insert.
From-SVN: r271652
Eric Botcazou [Mon, 27 May 2019 10:44:55 +0000 (10:44 +0000)]
trans.c (Gigi_Types_Compatible): New predicate.
* gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
(Identifier_to_gnu): Use it to assert that the type of the identifier
and that of its entity are compatible for gigi. Rename a couple of
local variables and separate the processing of the result type.
From-SVN: r271650
Eric Botcazou [Mon, 27 May 2019 10:16:04 +0000 (10:16 +0000)]
trans.c (Call_to_gnu): Use the unpadded type when putting back an intermediate conversion the type of...
* gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
putting back an intermediate conversion the type of the actuals.
From-SVN: r271647
Eric Botcazou [Mon, 27 May 2019 09:14:30 +0000 (09:14 +0000)]
trans.c (gnat_to_gnu): Convert the count to the unsigned version of its base type before proceeding.
* gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
count to the unsigned version of its base type before proceeding.
From-SVN: r271646
Richard Biener [Mon, 27 May 2019 07:39:14 +0000 (07:39 +0000)]
re PR testsuite/90615 (several vector test cases fail starting with r271553)
2019-05-27 Richard Biener <rguenther@suse.de>
PR testsuite/90615
* gcc.dg/vect/costmodel/ppc/costmodel-vect-31b.c: Add
-fno-tree-loop-distribute-patterns.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c: Likewise.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-76a.c: Likewise.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c: Likewise.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-1.c: Likewise.
From-SVN: r271645
GCC Administrator [Mon, 27 May 2019 00:16:19 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271644
Ian Lance Taylor [Mon, 27 May 2019 00:14:02 +0000 (00:14 +0000)]
re PR go/90635 (typo in libgo/configure.ac)
PR go/90635
libgo: correct typo in USE_LIBFFI AM_CONDITIONAL
Only affects the case of passing --without-libffi to configure.
Fixes https://gcc.gnu.org/PR90635
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/178998
From-SVN: r271640