gcc.git
5 years agors6000.c (rs6000_call_template_1): Handle pcrel calls here...
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

5 years agore PR c++/90598 (Return type of explicit destructor call wrong)
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

5 years agore PR fortran/90539 (481.wrf slowdown by 25% on Intel Kaby with -Ofast -march=native...
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

5 years ago* tree-ssa/alias-access-spath-1.c: new testcase.
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

5 years agosse.md (*save_multiple<mode>): Rename from save_multiple<mode>.
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

5 years agoconfig.gcc (rx-*-linux*): New target.
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

5 years agotree-ssa-alias.c (same_type_for_tbaa): Return ture if main variants are pointer equiv...
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

5 years agore PR c++/89875 (invalid typeof reference to a member of an incomplete struct accepte...
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

5 years agoAvoid -Wunused-parameter warnings from testsuite utility
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

5 years agoPR libstdc++/85494 use rdseed and rand_s in std::random_device
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

5 years agoThis patch implements the [u]avgM3_floor and [u]avgM3_ceil optabs for SVE2.
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

5 years agore PR fortran/90329 (Incompatibility between gfortran and C lapack calls)
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

5 years agore PR bootstrap/90543 (Build failure on MINGW for gcc-9.1.0)
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

5 years ago[PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key
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

5 years agogimplify.c (struct gimplify_omp_ctx): Add clauses member.
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

5 years agore PR c/90628 (__builtin_mul_overflow writes to const qualified integer)
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

5 years agoP1091R3 - Extending structured bindings to be more like var decls P1381R1 - Reference...
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

5 years agoP1091R3 - Extending structured bindings to be more like var decls P1381R1 - Reference...
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

5 years agoRemove duplicite dg-compile (PR testsuite/90657).
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

5 years agors6000-cpus.def (OTHER_FUTURES_MASK): New #define.
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

5 years agortl.h (LABEL_REF_P): New #define.
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

5 years agoDaily bump.
GCC Administrator [Wed, 29 May 2019 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r271726

5 years agopa.c (hppa_profile_hook): Remove offset adjustment.
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

5 years agoPR libstdc++/90634 reduce allocations in filesystem::path construction
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

5 years agoFix C++14-only code in testsuite utility
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

5 years agoRemove pre-Solaris 11/SPARC unwinding support
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

5 years ago[C++ PATCH] template specializations
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

5 years agoPR c++/90548 - ICE with generic lambda and empty pack.
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

5 years agoCurrent vectoriser doesn't support masked loads for SLP.
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

5 years agoRemove obsolete comment about use_thunk
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

5 years ago[PATCH] Commonize anon-name generation
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

5 years agopr50749-qihisi-predec-3.c: Disable loop distribution.
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

5 years agoSupport again multiple --help options (PR other/90315).
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

5 years agors6000: Improve p9-dimode* testcases
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

5 years agoHandle loop fields in IPA ICF (PR ipa/90555).
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

5 years ago* gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
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

5 years agoimplementation_defined_pragmas.rst (Machine_Attribute): Document additional optional...
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

5 years agotrans.c (lvalue_required_for_attribute_p): Return 0 for 'Size too.
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

5 years agotrans.c (gnat_to_gnu): Remove superfluous tests on Backend_Overflow_Checks_On_Target...
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

5 years agotrans.c (walk_nesting_tree): New static function.
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

5 years agodecl.c (gnat_to_gnu_entity): Remove obsolete test on Is_For_Access_Subtype.
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

5 years agodecl.c (components_to_record): Set a name on the type created for the REP part, if...
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

5 years agoutils.c (gnat_internal_attribute_table): Add support for stack_protect attribute.
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

5 years agodecl.c (intrin_arglists_compatible_p): Do not return false if the internal builtin...
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

5 years agoAdd GCC support to ENQCMD.
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

5 years agoDaily bump.
GCC Administrator [Tue, 28 May 2019 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r271677

5 years agogimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional on sections...
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

5 years agoomp-low.c (lower_omp_1): Look through ordered...
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

5 years agore PR libgomp/90641 (libgomp.c-c++-common/lastprivate-conditional-1.c etc FAIL)
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

5 years agodarwin, x86, testsuite - Match codegen
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

5 years agoMakefile.am (check-go-tool): Only chmod check-go-dir if it exists.
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

5 years agors6000: Fix sanitizer build (PR90639)
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

5 years agoi386.c (ix86_gen_add3): Remove indirect function.
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

5 years agodwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index and DW_OP_GNU_co...
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

5 years agoi386.h (STACK_SIZE_MODE): Define.
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

5 years ago[testsuite,aarch64,arm] PR88440: Fix testcases
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

5 years agore PR tree-optimization/90637 (ICE in vect_loop_versioning, at tree-vect-loop-manip...
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

5 years agotrans.c (Call_to_gnu): Do not initialize the temporary created out of addressability...
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

5 years agoada-builtin-types.def: New file.
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

5 years agoutils.c (maybe_pad_type): Issue the warning for the specific case of component types...
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

5 years agotrans.c (Identifier_to_gnu): Minor tweaks.
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

5 years agore PR tree-optimization/90610 (526.blender_r miscompared on znver1 with -Ofast -march...
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

5 years agotrans.c (Gigi_Types_Compatible): New predicate.
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

5 years agotrans.c (Call_to_gnu): Use the unpadded type when putting back an intermediate conver...
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

5 years agotrans.c (gnat_to_gnu): Convert the count to the unsigned version of its base type...
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

5 years agore PR testsuite/90615 (several vector test cases fail starting with r271553)
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

5 years agoDaily bump.
GCC Administrator [Mon, 27 May 2019 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r271644

5 years agore PR go/90635 (typo in libgo/configure.ac)
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

5 years agore PR go/90614 (gcc-9.1.0/libgo/go/syscall/wait.c:54:22: error: unused parameter...
Ian Lance Taylor [Mon, 27 May 2019 00:10:34 +0000 (00:10 +0000)]
re PR go/90614 (gcc-9.1.0/libgo/go/syscall/wait.c:54:22: error: unused parameter ‘w’ [-Werror=unused-parameter] Continued (uint32_t *w))

PR go/90614
    syscall: avoid unused parameter error if WIFCONTINUED not defined

    Fixes https://gcc.gnu.org/PR90614

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

From-SVN: r271638

5 years agoi386.md (@leave_<mode>): New expander.
Uros Bizjak [Sun, 26 May 2019 22:48:24 +0000 (00:48 +0200)]
i386.md (@leave_<mode>): New expander.

* config/i386/i386.md (@leave_<mode>): New expander.
(*leave): Rename from leave.
(*leave_rex64): Rename from leave_rex64.
(@monitorx_<mode>): Rename from monitorx_<mode>.
(@clzero_<mode>): Rename from clzero_<mode>.
* config/i386/sse.md (@sse3_monitor_<mode>): Rename from
sse3_monitor_<mode>.
* config/i386/i386.c (*ix86_gen_leave): Remove indirect function.
(*ix86_gen_monitor): Ditto.
(*ix86_gen_monitorx): Ditto.
(*ix86_gen_clzero): Ditto.
(*ix86_gen_one_cmpl2): Ditto.
(ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
* config/i386/i386-expand.c (ix86_expand_builtin)
<case IX86_BUILTIN_MONITOR>: Use gen_sse3_monitor
instead of ix86_gen_monitor.
<case IX86_BUILTIN_MONITORX>: Use gen_monitorx
instead of ix86_gen_monitorx.
<case IX86_BUILTIN_CLZERO>: Use gen_clzero
instead of ix86_gen_clzero.
* config/i386/i386-options.c (ix86_option_override_internal):
Do not initialize ix86_gen_leave, ix86_gen_monitor,
ix86_gen_monitorx, ix86_gen_clzero and ix86_gen_one_cmpl2.

* config/i386/i386.md (@tls_global_dynamic_64_<mode>):
Rename from tls_global_dynamic_64_<mode>.
(@tls_local_dynamic_base_64_<mode>): Rename from
tls_local_dynamic_base_64_<mode>.
* config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
Remove indirect function.
(*ix86_gen_tls_local_dynamic_base_64): Ditto.
(legitimize_tls_address): Use gen_tls_global_dynamic_64 function
instead of ix86_gen_tls_global_dynamic_64.
Use gen_tls_local_dynamic_base_64 instead of
ix86_gen_tls_local_dynamic_base_64.
* config/i386/i386-options.c (ix86_option_override_internal):
Do not initialize ix86_gen_tls_global_dynamic_64 and
ix86_gen_tls_local_dynamic_base_64.

* config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
Rename from pro_epilogue_adjust_stack_<mode>_add.
(@pro_epilogue_adjust_stack_sub_<mode>)
Rename from pro_epilogue_adjust_stack_<mode>_sub.
(@allocate_stack_worker_probe_<mode>):
Rename from allocate_stack_worker_probe_<mode>.
(allocate_stack): Use gen_allocate_stack_worker_probe.
(probe_stack): Use gen_probe_stack_1.
(@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
(@adjust_stack_and_probe_<mode>): Rename from
adjust_stack_and_probe<mode>.
(@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
(stack_protect_set): Use gen_stack_protect_set_1.
(@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
(stack_protect_test): Use gen_stack_protect_test_1.
(@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
* config/i386/i386.c (*ix86_gen_allocate_stack_worker):
Remove indirect function.
(*ix86_gen_adjust_stack_and_probe): Ditto.
(*ix86_gen_probe_stack_range): Ditto.
(pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
(ix86_adjust_stack_and_probe_stack_clash): Use
gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
(ix86_adjust_stack_and_probe): Ditto.
(ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
of ix86_gen_probe_stack_range.
(ix86_expand_prologue):  Use gen_pro_epilogue_adjust_stack_sub
instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
* config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
Include insn-opinit.h.  Use code_for_stack_protect_test_1 instead of
CODE_FOR_stack_protect_test_{si,di}.
* config/i386/i386-options.c (ix86_option_override_internal):
Do not initialize ix86_gen_allocate_stack_worker,
ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.

From-SVN: r271636

5 years agoappendix_contributing.xml: Update pointer to C++ standard at ansi.org.
Gerald Pfeifer [Sun, 26 May 2019 19:46:09 +0000 (19:46 +0000)]
appendix_contributing.xml: Update pointer to C++ standard at ansi.org.

* doc/xml/manual/appendix_contributing.xml: Update pointer to
C++ standard at ansi.org.

From-SVN: r271635

5 years agodarwin, x86, testsuite - Amend three PIE tests,
Iain Sandoe [Sun, 26 May 2019 19:35:14 +0000 (19:35 +0000)]
darwin, x86, testsuite - Amend three PIE tests,

Darwin requires PIC code in order to support PIE, amend the test scan-asms
to match this.

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

* gcc.target/i386/pr39013-1.c: Adjust scan-asms for PIE to
account for PIC code on Darwin.
* gcc.target/i386/pr39013-2.c: Likewise.
* gcc.target/i386/pr64317.c: Likewise.

From-SVN: r271634

5 years agoinvoke.texi (Link Options): Many editorial changes around -flinker-output.
Gerald Pfeifer [Sun, 26 May 2019 17:33:52 +0000 (17:33 +0000)]
invoke.texi (Link Options): Many editorial changes around -flinker-output.

* doc/invoke.texi (Link Options): Many editorial changes around
-flinker-output.

From-SVN: r271633

5 years agolinux-unwind.h (pa32_fallback_frame_state): Add cast.
John David Anglin [Sun, 26 May 2019 15:16:50 +0000 (15:16 +0000)]
linux-unwind.h (pa32_fallback_frame_state): Add cast.

* config/pa/linux-unwind.h (pa32_fallback_frame_state): Add cast.

From-SVN: r271631

5 years agore PR fortran/90539 (481.wrf slowdown by 25% on Intel Kaby with -Ofast -march=native...
Thomas Koenig [Sun, 26 May 2019 14:02:51 +0000 (14:02 +0000)]
re PR fortran/90539 (481.wrf slowdown by 25% on Intel Kaby with -Ofast -march=native starting with r271377)

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

PR fortran/90539
* trans-types.c (get_formal_from_actual_arglist): Set rank
and lower bound for assumed size arguments.

From-SVN: r271630

5 years agoAdded ChangeLog entry for last commit.
Rainer Orth [Sun, 26 May 2019 09:23:52 +0000 (09:23 +0000)]
Added ChangeLog entry for last commit.

From-SVN: r271629

5 years agoRemove Solaris 10-only note about -mvect8-ret-in-mem
Rainer Orth [Sun, 26 May 2019 09:21:40 +0000 (09:21 +0000)]
Remove Solaris 10-only note about -mvect8-ret-in-mem

From-SVN: r271628

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

From-SVN: r271627

5 years agodarwin, x86, testsuite - Amend popcnt match string for Darwin.
Iain Sandoe [Sat, 25 May 2019 19:46:53 +0000 (19:46 +0000)]
darwin, x86, testsuite - Amend popcnt match string for Darwin.

Darwin uses a different spelling for popcnt (popcnt instead of popcntw).
Check for this in the test.

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

* gcc.target/i386/pr59874-3.c: Use the spelling of popcnt
expected for Darwin.

From-SVN: r271623

5 years agodarwin, x86, testsuite - Check for an expected error on Darwin.
Iain Sandoe [Sat, 25 May 2019 19:42:05 +0000 (19:42 +0000)]
darwin, x86, testsuite - Check for an expected error on Darwin.

The test requests an alignment which exceeds the maximum object
file aligment for Darwin, rather than skipping it - test that we
see the expected error.

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

* gcc.target/i386/pr89261.c: Test that the alignment required
by the test correctly produces the expected error on Darwin.

From-SVN: r271622

5 years agodarwin, x86, testsuite - require alias on a test using it.
Iain Sandoe [Sat, 25 May 2019 19:36:27 +0000 (19:36 +0000)]
darwin, x86, testsuite - require alias on a test using it.

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

* gcc.target/i386/pr82659-3.c: Require alias support.

From-SVN: r271621

5 years agoPR c++/90572 - wrong disambiguation in friend declaration.
Marek Polacek [Sat, 25 May 2019 14:39:12 +0000 (14:39 +0000)]
PR c++/90572 - wrong disambiguation in friend declaration.

* parser.c (cp_parser_constructor_declarator_p): Don't allow missing
typename for friend declarations.

* g++.dg/cpp2a/typename16.C: New test.
* g++.dg/parse/friend13.C: New test.

From-SVN: r271619

5 years agoDaily bump.
GCC Administrator [Sat, 25 May 2019 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r271618

5 years agore PR target/90530 (Invalid SUBREG insn generated by reload)
John David Anglin [Fri, 24 May 2019 23:12:16 +0000 (23:12 +0000)]
re PR target/90530 (Invalid SUBREG insn generated by reload)

PR target/90530
* config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
DImode to SImode in floating-point registers on 64-bit target.
* config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
register_operand in xmpyu patterns.

From-SVN: r271611

5 years agotree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
Jakub Jelinek [Fri, 24 May 2019 21:31:59 +0000 (23:31 +0200)]
tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.

* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
* tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
OMP_CLAUSE__REDUCTEMP_.
* tree.c (omp_clause_num_ops, omp_clause_code_name): Add
OMP_CLAUSE__CONDTEMP_.
(walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
* tree-pretty-print.c (dump_omp_clause): Likewise.
* tree-nested.c (convert_nonlocal_omp_clauses,
convert_local_omp_clauses): Likewise.
* gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
instead of decimal.  Add GOVD_LASTPRIVATE_CONDITIONAL.
(gimplify_scan_omp_clauses): Don't reject lastprivate conditional
on OMP_FOR.
(gimplify_omp_for): Warn and disable conditional modifier from
lastprivate on loop iterators.
* omp-general.h (struct omp_for_data): Add lastprivate_conditional
member.
* omp-general.c (omp_extract_for_data): Initialize it.
* omp-low.c (struct omp_context): Add lastprivate_conditional_map
member.
(delete_omp_context): Delete it.
(lower_lastprivate_conditional_clauses): New function.
(lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
handle lastprivate conditional clauses.
(lower_reduction_clauses): Add CLIST argument, emit it into
the critical section if any.
(lower_omp_sections): Adjust lower_lastprivate_clauses and
lower_reduction_clauses callers.
(lower_omp_for_lastprivate): Add CLIST argument, pass it through
to lower_lastprivate_clauses.
(lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
clist into a critical section if not emitted there already by
lower_reduction_clauses.
(lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
callers.
(lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
conditional variables.
* omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
clause is present.
(expand_omp_for_generic, expand_omp_for_static_nochunk,
expand_omp_for_static_chunk): Handle lastprivate conditional.
(expand_omp_for): Handle fd.lastprivate_conditional like
fd.have_reductemp.
gcc/testsuite/
* c-c++-common/gomp/lastprivate-conditional-2.c (foo): Don't expect
sorry for omp for.
* c-c++-common/gomp/lastprivate-conditional-3.c: New test.
libgomp/
* testsuite/libgomp.c-c++-common/lastprivate-conditional-1.c: New test.
* testsuite/libgomp.c-c++-common/lastprivate-conditional-2.c: New test.

From-SVN: r271610

5 years agoFix std::midpoint(T*, T*) for reversed arguments
Jonathan Wakely [Fri, 24 May 2019 15:39:35 +0000 (16:39 +0100)]
Fix std::midpoint(T*, T*) for reversed arguments

* include/std/numeric (midpoint(T*, T*)): Fix incorrect result.
* testsuite/26_numerics/midpoint/pointer.cc: Change "compile" test
to "run".

From-SVN: r271606

5 years agoGCN: Wait for exit value to write before exiting.
Andrew Stubbs [Fri, 24 May 2019 15:25:41 +0000 (15:25 +0000)]
GCN: Wait for exit value to write before exiting.

2019-05-24  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn-run.c (main): Set a non-zero return value if the
kernel does not exit cleanly.
* config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.

From-SVN: r271605

5 years agoRevert "* gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE."
Jason Merrill [Fri, 24 May 2019 14:38:44 +0000 (10:38 -0400)]
Revert "* gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE."

This reverts commit ac0f04360cc04e5b80a7d74f7edc47e395d2e744.

From-SVN: r271604

5 years agoFix broken shared_ptr test
Jonathan Wakely [Fri, 24 May 2019 13:00:26 +0000 (14:00 +0100)]
Fix broken shared_ptr test

* testsuite/20_util/shared_ptr/cons/alias-rval.cc: Fix test.
* testsuite/20_util/shared_ptr/cons/alias.cc: Remove unused function.

From-SVN: r271603

5 years agoMakefile.am (BUILDTESTS): Remove test_elf, add test_elf_32 and test_elf_64.
Clement Chigot [Fri, 24 May 2019 11:55:21 +0000 (11:55 +0000)]
Makefile.am (BUILDTESTS): Remove test_elf, add test_elf_32 and test_elf_64.

* Makefile.am (BUILDTESTS): Remove test_elf, add test_elf_32 and
test_elf_64.
* Makefile.in: Regenerate.

From-SVN: r271602

5 years agore PR middle-end/90607 (gcc.dg/pr53265.c FAILs)
Richard Biener [Fri, 24 May 2019 11:31:11 +0000 (11:31 +0000)]
re PR middle-end/90607 (gcc.dg/pr53265.c FAILs)

2019-05-24  Richard Biener  <rguenther@suse.de>

PR testsuite/90607
* tree-loop-distribution.c (struct partition): Add location
member.
(partition_alloc): Initialize all fields.
(generate_memset_builtin): Use the location recorded in the
partition for the generated call.
(generate_memcpy_builtin): Likewise.
(classify_partition): Record the location of a single store
as location for the partition.

* gcc.dg/pr53265.c: Amend for new expected diagnostic.

From-SVN: r271601

5 years agoFix 64-bit addition in prologue.
Andrew Stubbs [Fri, 24 May 2019 11:06:18 +0000 (11:06 +0000)]
Fix 64-bit addition in prologue.

2019-05-24  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
for lo-part.

From-SVN: r271600

5 years ago[aarch64] Change two function declaration types
Matthew Malcomson [Fri, 24 May 2019 10:39:38 +0000 (10:39 +0000)]
[aarch64] Change two function declaration types

Commit r271514 missed changing the type of two functions in
aarch64-protos.h.  The function definitions had been updated to use
uint64_t while the function declarations had been missed.
They were missed since I only tested the patch on aarch64 where
`unsigned long` is the same as `uint64_t`.

This patch updates these declarations in aarch64-protos.h.

Tested by building an aarch64 cross-compiler on arm-none-linux-gnu (so
that `unsigned long` and `uint64_t` are different and would give error
messages), and bootstrapping on aarch64-none-linux-gnu.
Also manually tested command line options to see that
-march=armv8-a+typo prints out the expected flags while using the new
feature flags does not complain about missing flags.

gcc/ChangeLog:

2019-05-24  Matthew Malcomson  <matthew.malcomson@arm.com>

PR target/90588
* common/config/aarch64/aarch64-common.c
(aarch64_rewrite_selected_cpu): Change local temporary variable
type from unsigned long to uint64_t.
* config/aarch64/aarch64-protos.h (aarch64_parse_extension,
aarch64_get_extension_string_for_isa_flags): Change declaration to
match new definition by replacing unsigned long with uint64_t.

From-SVN: r271599

5 years agore PR tree-optimization/90106 (builtin sqrt() ignoring libm's sqrt call result)
Jakub Jelinek [Fri, 24 May 2019 10:15:16 +0000 (12:15 +0200)]
re PR tree-optimization/90106 (builtin sqrt() ignoring libm's sqrt call result)

PR tree-optimization/90106
PR testsuite/90517
* gcc.dg/cdce1.c: Don't scan-assembler, instead -fdump-tree-optimized
and scan-tree-dump for tail call.
* gcc.dg/cdce2.c: Likewise.

From-SVN: r271598

5 years agore PR libgomp/90585 (libgomp hsa plugin ftbfs in the x32 multilib variant)
Jakub Jelinek [Fri, 24 May 2019 08:59:37 +0000 (10:59 +0200)]
re PR libgomp/90585 (libgomp hsa plugin ftbfs in the x32 multilib variant)

PR libgomp/90585
* plugin/plugin-hsa.c: Include gstdint.h.  Include inttypes.h only if
HAVE_INTTYPES_H is defined.
(print_uint64_t): New typedef.
(PRIu64): Define if HAVE_INTTYPES_H is not defined.
(print_kernel_dispatch, run_kernel): Use PRIu64 macro instead of
"lu", cast uint64_t HSA_DEBUG and fprintf arguments to print_uint64_t.
(release_kernel_dispatch): Likewise.  Cast shadow->debug to uintptr_t
before casting to void *.
* plugin/plugin-nvptx.c: Include gstdint.h instead of stdint.h.
* oacc-mem.c: Don't include config.h nor stdint.h.
* target.c: Don't include config.h.
* oacc-cuda.c: Likewise.
* oacc-host.c: Don't include stdint.h.

From-SVN: r271597

5 years agore PR target/90568 (stack protector should use cmp or sub, not xor, to allow macro...
Jakub Jelinek [Fri, 24 May 2019 08:58:50 +0000 (10:58 +0200)]
re PR target/90568 (stack protector should use cmp or sub, not xor, to allow macro-fusion on x86)

PR target/90568
* config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
gen_attr_type just once instead of 4-7 times.  Formatting fixes.
Handle stack_protect_test_<mode> codegen similarly to corresponding
sub instruction.

From-SVN: r271596

5 years agore PR tree-optimization/88440 (size optimization of memcpy-like code)
Richard Biener [Fri, 24 May 2019 08:48:14 +0000 (08:48 +0000)]
re PR tree-optimization/88440 (size optimization of memcpy-like code)

2019-05-23  Richard Biener  <rguenther@suse.de>

PR tree-optimization/88440
* opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
at -O[2s]+.
* tree-loop-distribution.c (generate_memset_builtin): Fold the
generated call.
(generate_memcpy_builtin): Likewise.
(distribute_loop): Pass in whether to only distribute patterns.
(prepare_perfect_loop_nest): Also allow size optimization.
(pass_loop_distribution::execute): When optimizing a loop
nest for size allow pattern replacement.

* gcc.dg/tree-ssa/ldist-37.c: New testcase.
* gcc.dg/tree-ssa/ldist-38.c: Likewise.
* gcc.dg/vect/vect.exp: Add -fno-tree-loop-distribute-patterns.
* gcc.dg/tree-ssa/ldist-37.c: Adjust.
* gcc.dg/tree-ssa/ldist-38.c: Likewise.
* g++.dg/tree-ssa/pr78847.C: Likewise.
* gcc.dg/autopar/pr39500-1.c: Likewise.
* gcc.dg/autopar/reduc-1char.c: Likewise.
* gcc.dg/autopar/reduc-7.c: Likewise.
* gcc.dg/tree-ssa/ivopts-lt-2.c: Likewise.
* gcc.dg/tree-ssa/ivopts-lt.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-1.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-2.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-3.c: Likewise.
* gcc.dg/tree-ssa/predcom-dse-4.c: Likewise.
* gcc.dg/tree-ssa/prefetch-7.c: Likewise.
* gcc.dg/tree-ssa/prefetch-8.c: Likewise.
* gcc.dg/tree-ssa/prefetch-9.c: Likewise.
* gcc.dg/tree-ssa/scev-11.c: Likewise.
* gcc.dg/vect/costmodel/i386/costmodel-vect-31.c: Likewise.
* gcc.dg/vect/costmodel/i386/costmodel-vect-33.c: Likewise.
* gcc.dg/vect/costmodel/x86_64/costmodel-vect-31.c: Likewise.
* gcc.dg/vect/costmodel/x86_64/costmodel-vect-33.c: Likewise.
* gcc.target/i386/pr30970.c: Likewise.
* gcc.target/i386/vect-double-1.c: Likewise.
* gcc.target/i386/vect-double-2.c: Likewise.
* gcc.dg/tree-ssa/gen-vect-2.c: Likewise.
* gcc.dg/tree-ssa/gen-vect-26.c: Likewise.
* gcc.dg/tree-ssa/gen-vect-28.c: Likewise.
* gcc.dg/tree-ssa/gen-vect-32.c: Likewise.
* gfortran.dg/vect/vect-5.f90: Likewise.
* gfortran.dg/vect/vect-8.f90: Likewise.

From-SVN: r271595

5 years agoadd missed Changelog.
Iain Sandoe [Fri, 24 May 2019 07:25:16 +0000 (07:25 +0000)]
add missed Changelog.

From-SVN: r271592

5 years agoDarwin, x86, testsuite - Make match strings more specific.
Iain Sandoe [Fri, 24 May 2019 07:24:26 +0000 (07:24 +0000)]
Darwin, x86, testsuite - Make match strings more specific.

Some of the i386.exp tests fail on Darwin (and at least one passes
incorrectly on Linux) because their scan-asm match strings are too
general.  In some cases the strings also match instances in the .file
and size directives or in comment output.  This patch makes the match
strings more specific.

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

* gcc.target/i386/pconfig-1.c: Scan for the string in the generated
code, not in comments or miscellaneous directives. Adjust expected
count.
* gcc.target/i386/pr18041-1.c: Likewise.
* gcc.target/i386/pr18041-2.c: Likewise.
* gcc.target/i386/wbinvd-1.c: Likewise.
* gcc.target/i386/wbnoinvd-1.c: Likewise.
* gcc.target/i386/pr66819-3.c: Specifically, check that there is no
call to "bar".
* gcc.target/i386/pr66819-4.c: Likewise.
* gcc.target/i386/pr82662.c
* gcc.target/i386/ptwrite2.c: Make the checks look for the specific
destination register, don't try the m32 test on m64 targets.

From-SVN: r271591

5 years agoDarwin, x86, testsuite - Adjust test labels.
Iain Sandoe [Fri, 24 May 2019 07:11:46 +0000 (07:11 +0000)]
Darwin, x86, testsuite - Adjust test labels.

A couple of the i386.exp tests fail because the label spelling used
is different between ELF and Mach-O targets. Adjusted here.

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

* gcc.target/i386/pr67985-2.c: Adjust label checks for
Darwin.
* gcc.target/i386/pr77881.c: Likewise.

From-SVN: r271590