gcc.git
5 years agox86: Don't allocate stack frame nor align stack if not needed
H.J. Lu [Wed, 22 May 2019 18:53:37 +0000 (18:53 +0000)]
x86: Don't allocate stack frame nor align stack if not needed

get_frame_size () returns used stack slots during compilation, which
may be optimized out later.  This patch does the followings:

1. Add stack_frame_required to machine_function to indicate that the
function needs a stack frame.
2. Change ix86_find_max_used_stack_alignment to set stack_frame_required.
3. Always call ix86_find_max_used_stack_alignment to check if stack
frame is needed.

Tested on i686 and x86-64 with

--with-arch=native --with-cpu=native

Tested on AVX512 machine configured with

--with-arch=native --with-cpu=native

gcc/

PR target/88483
* config/i386/i386-options.c (ix86_init_machine_status): Set
stack_frame_required to true.
* config/i386/i386.c (ix86_get_frame_size): New function.
(ix86_frame_pointer_required): Replace get_frame_size with
ix86_get_frame_size.
(ix86_compute_frame_layout): Likewise.
(ix86_find_max_used_stack_alignment): Changed to void.  Set
stack_frame_required.
(ix86_finalize_stack_frame_flags): Always call
ix86_find_max_used_stack_alignment.  Replace get_frame_size with
ix86_get_frame_size.
* config/i386/i386.h (machine_function): Add stack_frame_required.

gcc/testsuite/

PR target/88483
* gcc.target/i386/stackalign/pr88483-1.c: New test.
* gcc.target/i386/stackalign/pr88483-2.c: Likewise.

From-SVN: r271517

5 years agosse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
Uros Bizjak [Wed, 22 May 2019 18:40:58 +0000 (20:40 +0200)]
sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.

* config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.

From-SVN: r271515

5 years ago[aarch64] Introduce flags for SVE2.
Matthew Malcomson [Wed, 22 May 2019 16:09:59 +0000 (16:09 +0000)]
[aarch64] Introduce flags for SVE2.

This patch adds support in the compiler for the architecture feature
flags that binutils will use to enable/disable the new "Future
Architecture Technologies" feature Scalable Vector Extension V2 (SVE2)
announced at Linaro Connect this week.

The "sve2" extension that enables the core sve2 instructions.
This also enables the sve extension, since sve is a requirement of sve2.

Extra optional sve2 features are the bitperm, sm4, aes, and sha3 extensions.
These are all given extra feature flags, "bitperm", "sve2-sm4",
"sve2-aes", and "sve2-sha3" respectively.
The sm4, aes, and sha3 extensions are explicitly marked as sve2
extensions to distinguish them from the corresponding NEON extensions.

When introducing macros to denote these new features we have gone past
what a 32 bit value can represent which means we need to change the type
of those variables working with these feature flags to ensure they use
64 bit quantities.

Tested with bootstrap on aarch64-none-linux-gnu and manually seeing that
-march=armv8-a+typo prints out the expected flags while using the new
feature flags does not complain about a missing flag (until reaching the
assembler).

gcc/ChangeLog:

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

* common/config/aarch64/aarch64-common.c
(struct aarch64_option_extension, struct processor_name_to_arch,
struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
aarch64_contains_opt,
aarch64_get_extension_string_for_isa_flags): Change type of
variables storing flags to uint64_t.
* config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
* config/aarch64/aarch64.c (struct processor,
aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
aarch64_validate_march, aarch64_override_options,
aarch64_option_print, aarch64_handle_attr_isa_flags,
aarch64_declare_function_name, aarch64_start_file): Make flag
variables uint64_t.
* config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
AARCH64_FL_SVE2_BITPERM): New macro feature flags.
* config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
* config/aarch64/driver-aarch64.c
(struct aarch64_arch_extension, struct aarch64_core_data,
struct aarch64_arch_driver_info, host_detect_local_cpu): Make
flag variables uint64_t.
* doc/invoke.texi: Add documentation for new arguments.

From-SVN: r271514

5 years agoFix new coarray failures.
Andrew Stubbs [Wed, 22 May 2019 13:12:08 +0000 (13:12 +0000)]
Fix new coarray failures.

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

gcc/testsuite/
* gfortran.dg/coarray_lock_7.f90: Fix output patterns.

From-SVN: r271513

5 years agoFix fortran size_type_node parameter passing.
Andrew Stubbs [Wed, 22 May 2019 13:12:03 +0000 (13:12 +0000)]
Fix fortran size_type_node parameter passing.

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

gcc/fortran/
* trans-stmt.c (gfc_trans_critical): Use size_type_node for
gfor_fndecl_caf_lock and gfor_fndecl_caf_unlock calls.
(gfc_trans_allocate): Use size_type_node for gfor_fndecl_caf_sync_all
call.

From-SVN: r271512

5 years agofortran/89100: Default widths with -fdec-format-defaults
Janne Blomqvist [Wed, 22 May 2019 11:56:01 +0000 (14:56 +0300)]
fortran/89100: Default widths with -fdec-format-defaults

gcc/fortran ChangeLog:

2019-05-22  Jeff Law  <law@redhat.com>
            Mark Eggleston  <mark.eggleston@codethink.com>

        PR fortran/89100
        * gfortran.texi: Add Default widths for F, G and I format
        descriptors to Extensions section.
        * invoke.texi: Add -fdec-format-defaults
        * io.c (check_format): Use default widths for i, f and g when
        flag_dec_format_defaults is enabled.
        * lang.opt: Add new option.
        * options.c (set_dec_flags): Add SET_BITFLAG for
        flag_dec_format_defaults.

gcc/testsuite ChangeLog:

2019-05-22  Mark Eggleston  <mark.eggleston@codethink.com>

        PR fortran/89100
        * gfortran.dg/fmt_f_default_field_width_1.f90: New test.
        * gfortran.dg/fmt_f_default_field_width_2.f90: New test.
        * gfortran.dg/fmt_f_default_field_width_3.f90: New test.
        * gfortran.dg/fmt_g_default_field_width_1.f90: New test.
        * gfortran.dg/fmt_g_default_field_width_2.f90: New test.
        * gfortran.dg/fmt_g_default_field_width_3.f90: New test.
        * gfortran.dg/fmt_i_default_field_width_1.f90: New test.
        * gfortran.dg/fmt_i_default_field_width_2.f90: New test.
        * gfortran.dg/fmt_i_default_field_width_3.f90: New test.

libgfortran ChangeLog:

2019-05-22  Jeff Law  <law@redhat.com>

        PR fortran/89100
        * io/format.c (parse_format_list): set default width when the
        IOPARM_DT_DEC_EXT flag is set for i, f and g.
        * io/io.h: add default_width_for_integer, default_width_for_float
        and default_precision_for_float.
        * io/write.c (write_boz): extra parameter giving length of data
        corresponding to the type's kind.
        (write_b): pass data length as extra parameter in calls to
        write_boz.
        (write_o): pass data length as extra parameter in calls to
        write_boz.
        (write_z): pass data length as extra parameter in calls to
        write_boz.
        (size_from_kind): also set size is default width is set.
        * io/write_float.def (build_float_string): new paramter inserted
        before result parameter. If default width use values passed
        instead of the values in fnode.
        (FORMAT_FLOAT): macro modified to check for default width and
        calls to build_float_string to pass in default width.
        (get_float_string): set width and precision to defaults when
        needed.

From-SVN: r271511

5 years agoalias.c (ao_ref_from_mem): Move stack-slot sharing rewrite ...
Richard Biener [Wed, 22 May 2019 11:52:19 +0000 (11:52 +0000)]
alias.c (ao_ref_from_mem): Move stack-slot sharing rewrite ...

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

* alias.c (ao_ref_from_mem): Move stack-slot sharing
rewrite ...
* emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.

From-SVN: r271510

5 years agoDo not use quotes in tests (PR testsuite/90564).
Martin Liska [Wed, 22 May 2019 09:35:39 +0000 (11:35 +0200)]
Do not use quotes in tests (PR testsuite/90564).

2019-05-22  Martin Liska  <mliska@suse.cz>

PR testsuite/90564
* gcc.target/powerpc/pr80315-1.c: Remove usage of quotes.
* gcc.target/powerpc/pr80315-2.c: Likewise.
* gcc.target/powerpc/pr80315-3.c: Likewise.
* gcc.target/powerpc/pr80315-4.c: Likewise.

From-SVN: r271509

5 years agoFix wrong escaping of brackets (PR testsuite/90564).
Martin Liska [Wed, 22 May 2019 08:25:07 +0000 (10:25 +0200)]
Fix wrong escaping of brackets (PR testsuite/90564).

2019-05-22  Martin Liska  <mliska@suse.cz>

PR testsuite/90564
* gcc.target/powerpc/pr80315-1.c: Add one extra \ to escape
brackets.
* gcc.target/powerpc/pr80315-2.c: Likewise.
* gcc.target/powerpc/pr80315-3.c: Likewise.
* gcc.target/powerpc/pr80315-4.c: Likewise.

From-SVN: r271508

5 years agodecltype-pr66548.C: Reinstate correct version.
Paolo Carlini [Wed, 22 May 2019 08:23:07 +0000 (08:23 +0000)]
decltype-pr66548.C: Reinstate correct version.

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

      * g++.dg/cpp0x/decltype-pr66548.C: Reinstate correct version.

From-SVN: r271507

5 years agodecltype-pr66548.C: Remove, mistakenly added.
Paolo Carlini [Wed, 22 May 2019 08:16:08 +0000 (08:16 +0000)]
decltype-pr66548.C: Remove, mistakenly added.

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

      * g++.dg/cpp0x/decltype-pr66548.C: Remove, mistakenly added.

From-SVN: r271506

5 years agodarwin, testsuite fix PR27221
Iain Sandoe [Wed, 22 May 2019 07:51:59 +0000 (07:51 +0000)]
darwin, testsuite fix PR27221

The test can't succeed on 32b powerpc Darwin since the
ABI demands a different result to the tested one.

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

PR testsuite/27221
* g++.dg/ext/alignof2.C: XFAIL for 32bit Darwin.

From-SVN: r271505

5 years agoStrip target_clones in copy attribute (PR lto/90500).
Martin Liska [Wed, 22 May 2019 07:45:17 +0000 (09:45 +0200)]
Strip target_clones in copy attribute (PR lto/90500).

2019-05-22  Martin Liska  <mliska@suse.cz>

PR lto/90500
* c-attribs.c (handle_copy_attribute): Do not copy
target_clones attribute.
2019-05-22  Martin Liska  <mliska@suse.cz>

PR lto/90500
* gcc.target/i386/pr90500-1.c: Make the test-case valid
now.
2019-05-22  Martin Liska  <mliska@suse.cz>

PR lto/90500
* doc/extend.texi: Document the change.

From-SVN: r271504

5 years agore PR tree-optimization/90450 (Hash function in gather_mem_refs_stmt does not match...
Richard Biener [Wed, 22 May 2019 07:44:24 +0000 (07:44 +0000)]
re PR tree-optimization/90450 (Hash function in gather_mem_refs_stmt does not match with mem_ref_hasher::equal)

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

PR tree-optimization/90450
* tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
(mem_ref_hasher::equal): Check it.
(mem_ref_alloc): Initialize it.
(gather_mem_refs_stmt): Set it.

From-SVN: r271503

5 years agogimple-fold.c (arith_code_with_undefined_signed_overflow): Add ABS_EXPR.
Richard Biener [Wed, 22 May 2019 07:26:32 +0000 (07:26 +0000)]
gimple-fold.c (arith_code_with_undefined_signed_overflow): Add ABS_EXPR.

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

* gimple-fold.c (arith_code_with_undefined_signed_overflow):
Add ABS_EXPR.
(rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
as ABSU_EXPR.

* gcc.dg/tree-ssa/ssa-lim-13.c: New testcase.

From-SVN: r271501

5 years ago[RS6000] Don't pass -many to the assembler
Alan Modra [Wed, 22 May 2019 04:34:26 +0000 (14:04 +0930)]
[RS6000] Don't pass -many to the assembler

I'd like to remove -many from the options passed by default to the
assembler, on the grounds that a gcc bug in instruction selection (eg.
emitting a power9 insn for -mcpu=power8) is better found at assembly
time than run time.

For now, just do this when --enable-checking or gcc is not a release.

This patch also emits .machine assembler directives for ELF targets
when functions are compiled for different cpus via attributes or
pragmas.  That's necessary when the initial -m<cpu> option passed to
the assembler doesn't enable the superset of all opcodes emitted, as
seen by a failure of gcc.target/powerpc/clone2.c without .machine
when building gcc for power8.

rs6000_machine_from_flags deliberately uses ISA_2_4_MASKS rather than
ISA_2_2_MASKS for power5 because "friz" and other similar instructions
enabled by gcc with TARGET_FPRND are enabled in gas by "-mpower5".
(gas -mpower5 supports power5+ too.)  rs6000-cpus.def puts
OPTION_MASK_FPRND in ISA_2_4_MASKS, so ISA_2_4_MASKS is the one to use
in deciding to pass "-mpower5" to gas.

O3-pr70130.c also failed on an earlier version of this patch (when
only testing one ISA bit to determine .machine).  This is a test for a
power7 vector bug, but on power8 hw check_vect_support_and_set_flags
passes -mpower8-vector which means the test isn't exercising the
original bug exactly.  I reckon that is wrong, and similary for other
vector testcases that ask for a specific cpu.  I've fixed it here by
explicitly passing -mno-power8-vector and similar vector options.

* config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
(ASM_CPU_SPEC): Conditionally add -many.
* config/rs6000/rs6000.c (rs6000_machine): New static var.
(rs6000_machine_from_flags, emit_asm_machine): New functions..
(rs6000_file_start): ..extracted from here, and modified to
test all ISA bits.
(rs6000_output_function_prologue): Emit .machine as necessary.
* testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c: Don't use
power mnemonics.
* testsuite/gcc.dg/vect/O3-pr70130.c: Disable default options
added by check_vect_support_and_set_flags.
* testsuite/gcc.dg/vect/pr48765.c: Likewise.
* testsuite/gfortran.dg/vect/pr45714-b.f: Likewise.

From-SVN: r271500

5 years agore PR middle-end/90553 (Register allocation allocates post-incremented address-load...
Hans-Peter Nilsson [Wed, 22 May 2019 00:43:23 +0000 (00:43 +0000)]
re PR middle-end/90553 (Register allocation allocates post-incremented address-load of call to call-clobbered register)

PR middle-end/90553
* gcc.dg/torture/pr90553.c: New test.

From-SVN: r271499

5 years agore PR middle-end/90553 (Register allocation allocates post-incremented address-load...
Hans-Peter Nilsson [Wed, 22 May 2019 00:35:32 +0000 (00:35 +0000)]
re PR middle-end/90553 (Register allocation allocates post-incremented address-load of call to call-clobbered register)

PR middle-end/90553
* ira-lives.c (process_bb_node_lives): Consider defs
for a call insn to be die before the call, not after.

From-SVN: r271498

5 years agoIn <https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01417.html>...
Hans-Peter Nilsson [Wed, 22 May 2019 00:30:42 +0000 (00:30 +0000)]
In <https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01417.html>...

In <https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01417.html>:
...a change introduced in r94104 where BITS_PER_WORD was chosenperhaps because we expect register-sized writes into this area.

See <https://gcc.gnu.org/ml/gcc-patches/2005-01/msg01564.html>
for the r94104 change.

* function.c (assign_parm_setup_block): Raise alignment of
stacked parameter only for STRICT_ALIGNMENT targets.

From-SVN: r271497

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

From-SVN: r271496

5 years agoparser.c (cp_parser_template_declaration_after_parameters): Use DECL_SOURCE_LOCATION...
Paolo Carlini [Tue, 21 May 2019 23:11:26 +0000 (23:11 +0000)]
parser.c (cp_parser_template_declaration_after_parameters): Use DECL_SOURCE_LOCATION in literal operator template errors.

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

* parser.c (cp_parser_template_declaration_after_parameters): Use
DECL_SOURCE_LOCATION in literal operator template errors.

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

* g++.dg/cpp0x/udlit-tmpl-arg-neg2.C: Check locations too.
* g++.dg/cpp0x/udlit-tmpl-parms-neg.C: Likewise.

From-SVN: r271492

5 years agore PR c++/67184 (Missed optimization with C++11 final specifier)
Paolo Carlini [Tue, 21 May 2019 22:26:42 +0000 (22:26 +0000)]
re PR c++/67184 (Missed optimization with C++11 final specifier)

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

PR c++/67184
PR c++/69445
* call.c (build_over_call): Devirtualize when the final overrider
comes from the base.

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

PR c++/67184
PR c++/69445
* g++.dg/other/final3.C: New.
* g++.dg/other/final4.C: Likewise.
* g++.dg/other/final5.C: Likewise.

From-SVN: r271491

5 years agore PR c++/67184 (Missed optimization with C++11 final specifier)
Paolo Carlini [Tue, 21 May 2019 22:26:10 +0000 (22:26 +0000)]
re PR c++/67184 (Missed optimization with C++11 final specifier)

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

PR c++/67184
PR c++/69445
* call.c (build_over_call): Devirtualize when the final overrider
comes from the base.

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

PR c++/67184
PR c++/69445
* g++.dg/other/final3.C: New.
* g++.dg/other/final4.C: Likewise.
* g++.dg/other/final5.C: Likewise.

From-SVN: r271490

5 years agoLWG 3062 - Unnecessary decay_t in is_execution_policy_v
Thomas Rodgers [Tue, 21 May 2019 22:15:00 +0000 (22:15 +0000)]
LWG 3062 - Unnecessary decay_t in is_execution_policy_v

    * include/pstl/execution_defs.h (__enable_if_execution_policy):
    Use std::__remove_cvref_t when building with GCC.

From-SVN: r271489

5 years agors6000: wz -> d+p7
Segher Boessenkool [Tue, 21 May 2019 22:08:20 +0000 (00:08 +0200)]
rs6000: wz -> d+p7

* config/rs6000/constraints.md (define_register_constraint "wz"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wz.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271488

5 years agors6000: wl -> d+p6
Segher Boessenkool [Tue, 21 May 2019 22:07:19 +0000 (00:07 +0200)]
rs6000: wl -> d+p6

* config/rs6000/constraints.md (define_register_constraint "wl"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wl.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271487

5 years agors6000: wm -> wa+p8v
Segher Boessenkool [Tue, 21 May 2019 22:06:25 +0000 (00:06 +0200)]
rs6000: wm -> wa+p8v

* config/rs6000/constraints.md (define_register_constraint "wm"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wm.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271486

5 years agors6000: wk -> ws+p8v
Segher Boessenkool [Tue, 21 May 2019 22:05:25 +0000 (00:05 +0200)]
rs6000: wk -> ws+p8v

* config/rs6000/constraints.md (define_register_constraint "wk"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wk.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271485

5 years agors6000: wj -> wi+p8v
Segher Boessenkool [Tue, 21 May 2019 22:04:41 +0000 (00:04 +0200)]
rs6000: wj -> wi+p8v

Also deletes VS_64dm, it's unused.

* config/rs6000/constraints.md (define_register_constraint "wj"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wj.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
(VS_64dm): Delete.
* config/rs6000/vsx.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271484

5 years agors6000: wh -> d+p8v
Segher Boessenkool [Tue, 21 May 2019 22:03:37 +0000 (00:03 +0200)]
rs6000: wh -> d+p8v

This replaces the "wh" constraint by "d", with isa "p8v".

* config/rs6000/constraints.md (define_register_constraint "wh"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wh.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271483

5 years agoDR 1940 - static_assert in anonymous unions.
Marek Polacek [Tue, 21 May 2019 21:25:23 +0000 (21:25 +0000)]
DR 1940 - static_assert in anonymous unions.

* g++.dg/DRs/dr1940.C: New test.

From-SVN: r271482

5 years agore PR target/90547 (ICE in gen_lowpart_general, at rtlhooks.c:63)
Uros Bizjak [Tue, 21 May 2019 17:57:11 +0000 (19:57 +0200)]
re PR target/90547 (ICE in gen_lowpart_general, at rtlhooks.c:63)

PR target/90547
* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
Avoid calling gen_lowpart with CONST operand.

testsuite/ChangeLog:

PR target/90547
* gcc.target/i386/pr90547.c: New test.

From-SVN: r271479

5 years agopreserve more debug stmts in gimple jump threading
Alexandre Oliva [Tue, 21 May 2019 17:09:13 +0000 (17:09 +0000)]
preserve more debug stmts in gimple jump threading

Gimple jump threading does not duplicate forwarder blocks that might
be present before or after the second copied block.  This silently
drops debug binds and markers that might be present in them.  This
patch attempts to preserve them.

For blocks after either copied block, we attempt to append debug stmts
to the copied block, if it does not end with a block-ending stmt.
Failing that, for blocks between both copied blocks, we prepend its
debug stmts to the copy of the second block.

If everything fails, we still drop debug stmts on the floor, though
preexisting code consolidates debug binds in the block that threading
flows into, so only markers are really lost.  We can't do much better
than that without conditional binds and markers, or debug stmts in
edges, or somesuch.

If we append debug stmts to a reusable template block, we copy it
after splitting out the debug stmts, and before putting them back.

for  gcc/ChangeLog

* tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
field template_last_to_copy.
(ssa_create_duplicates): Set it, and use it.  Attempt to
preserve more debug stmts.

From-SVN: r271477

5 years agoFix dg-require-* syntax
Rainer Orth [Tue, 21 May 2019 16:59:39 +0000 (16:59 +0000)]
Fix dg-require-* syntax

* gcc.dg/Wattribute-alias.c: Pass emtpy arg to dg-require-ifunc.

* gcc.c-torture/execute/20030125-1.c: Pass emtpy arg to dg-require-weak.

* gcc.dg/torture/ftrapv-2.c: Pass empty arg to dg-require-fork.

* gcc.target/i386/pr84723-1.c: Remove dg-require-ifunc.
* gcc.target/i386/pr84723-2.c: Likewise.
* gcc.target/i386/pr84723-3.c: Likewise.
* gcc.target/i386/pr84723-4.c: Likewise.
* gcc.target/i386/pr84723-5.c: Likewise.

From-SVN: r271476

5 years agodarwin, testsuite - fix PR 67958
Iain Sandoe [Tue, 21 May 2019 16:33:48 +0000 (16:33 +0000)]
darwin, testsuite - fix PR 67958

These tests require specific scan-asms in some cases because
of the different codegen for Dawin.  Added some explanations
too.

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

PR testsuite/67958
* gcc.target/i386/pr32219-1.c: Adjust scan-asms for Darwin, comment
the differences.
* gcc.target/i386/pr32219-2.c: Likewise.
* gcc.target/i386/pr32219-3.c: Likewise.
* gcc.target/i386/pr32219-4.c: Likewise.
* gcc.target/i386/pr32219-5.c: Likewise.
* gcc.target/i386/pr32219-6.c: Likewise.
* gcc.target/i386/pr32219-7.c: Likewise.
* gcc.target/i386/pr32219-8.c: Likewise.

From-SVN: r271475

5 years agodarwin, testsuite - fix PR 63891.
Iain Sandoe [Tue, 21 May 2019 16:24:25 +0000 (16:24 +0000)]
darwin, testsuite - fix PR 63891.

This is a testcase failing because one part of the codegen is
(correctly) generating the scan-asm-not signature.

Fixed by altering the build options.

gcc/testsuite/

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

PR target/63891
* gcc.dg/darwin-weakimport-3.c: Adjust options and explain
the reasons.

From-SVN: r271474

5 years agosse.md (VF1_AVX2): New mode iterator.
Uros Bizjak [Tue, 21 May 2019 16:00:37 +0000 (18:00 +0200)]
sse.md (VF1_AVX2): New mode iterator.

* config/i386/sse.md (VF1_AVX2): New mode iterator.
(signbit<mode>2): New expander

testsuite/ChangeLog:

* gcc.target/i386/vect-signbitf.c: New test.

From-SVN: r271473

5 years agore PR bootstrap/87338 (gcc 8.2 fails to bootstrap on ia64)
James Clarke [Tue, 21 May 2019 15:42:00 +0000 (15:42 +0000)]
re PR bootstrap/87338 (gcc 8.2 fails to bootstrap on ia64)

PR bootstrap/87338
* dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.

From-SVN: r271472

5 years ago[C++ PATCH] Using decls
Nathan Sidwell [Tue, 21 May 2019 15:31:28 +0000 (15:31 +0000)]
[C++ PATCH] Using decls

https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01411.html
* name-lookup.c (do_nonmember_using_decl): Drop INSERT_P
parameter.  Document.
(finish_nonmember_using_decl): Adjust do_nonmember_using_decl
calls.  Remove stray FIXME comment.

From-SVN: r271471

5 years agocpuid.h (__cpuid): For 32bit targets...
Uros Bizjak [Tue, 21 May 2019 15:17:57 +0000 (17:17 +0200)]
cpuid.h (__cpuid): For 32bit targets...

* config/i386/cpuid.h (__cpuid): For 32bit targets, zero
%ebx and %ecx bafore calling cpuid with leaf 1 or
non-constant leaf argument.

From-SVN: r271469

5 years agolibfortran/90038: Document new wait=.false. implementation
Janne Blomqvist [Tue, 21 May 2019 15:17:44 +0000 (18:17 +0300)]
libfortran/90038: Document new wait=.false. implementation

2019-05-21  Janne Blomqvist  <jb@gcc.gnu.org>

PR libfortran/90038
* intrinsic.texi (EXECUTE_COMMAND_LINE): Explain new
wait=.false. implementation.

From-SVN: r271468

5 years ago[C++ PATCH] Using decls
Nathan Sidwell [Tue, 21 May 2019 14:33:24 +0000 (14:33 +0000)]
[C++ PATCH] Using decls

https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01396.html
gcc/cp/
* name-lookup.h (struct cp_binding_level): Drop usings field.
(finish_namespace_using_decl, finish_local_using_decl): Replace with ...
(finish_nonmember_using_decl): ... this.
* name-lookup.c (push_using_decl_1, push_using_decl):
(do_nonmember_using_decl): ... here.  Add INSERT_P arg.  Reimplement.
(validate_nonmember_using_decl, finish_namespace_using_decl)
(finish_local_using_decl): Replace with ...
(finish_nonmember_using_decl): ... this.  Drop DECL parm.
* parser.c (cp_parser_using_declaration): Don't do lookup here.
* pt.c (tsubst_expr): Do not do using decl lookup here.

gcc/testsuite/
* g++.dg/lookup/using53.C: Adjust diagnostic.

libcc1/
* libcp1plugin.cc (plugin_add_using_decl): Use
finish_nonmember_using_decl.

From-SVN: r271467

5 years agoPR libstdc++/90252 fix effective-target check for TBB
Jonathan Wakely [Tue, 21 May 2019 13:50:41 +0000 (14:50 +0100)]
PR libstdc++/90252 fix effective-target check for TBB

PR libstdc++/90252
* testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
Use "additional_flags" to pass -ltbb to v3_target_compile command.
Use check_v3_target_prop_cached to cache the result of the test.

From-SVN: r271466

5 years agoFix names of _Lock_policy constants in libstdc++ manual
Jonathan Wakely [Tue, 21 May 2019 13:50:35 +0000 (14:50 +0100)]
Fix names of _Lock_policy constants in libstdc++ manual

* doc/xml/manual/shared_ptr.xml: Fix names of lock policy constants.

From-SVN: r271465

5 years agoPR90545, gcc.target/powerpc/fold-vec-splats-floatdouble.c fails
Alan Modra [Tue, 21 May 2019 13:36:04 +0000 (23:06 +0930)]
PR90545, gcc.target/powerpc/fold-vec-splats-floatdouble.c fails

I figure a tweak to register_move_cost is better than sprinkling ?s
in instruction operand alternatives.

PR target/90545
* config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
power9 direct move cost.
* testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c:
Correct comments and rename functions to suit parameters.

From-SVN: r271464

5 years agore PR tree-optimization/90510 (Unnecessary permutation)
Richard Biener [Tue, 21 May 2019 12:01:00 +0000 (12:01 +0000)]
re PR tree-optimization/90510 (Unnecessary permutation)

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

PR middle-end/90510
* fold-const.c (fold_read_from_vector): New function.
* fold-const.h (fold_read_from_vector): Declare.
* match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
single-element insert permutations.  Canonicalize selector
further and fix issue with last commit.

* gcc.target/i386/pr90510.c: New testcase.

From-SVN: r271463

5 years agoAdd missing "" for dg-require-ifunc.
Martin Liska [Tue, 21 May 2019 11:07:00 +0000 (13:07 +0200)]
Add missing "" for dg-require-ifunc.

2019-05-21  Martin Liska  <mliska@suse.cz>

* gcc.target/i386/pr90500-1.c: Add missing '""'.
* gcc.target/i386/pr90500-2.c: Likewise.

From-SVN: r271462

5 years agoDon't split non-critical edges in crited
Vladislav Ivanishin [Tue, 21 May 2019 10:45:32 +0000 (10:45 +0000)]
Don't split non-critical edges in crited

gcc/ChangeLog:

        * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
parameter with default value false to declaration.
        (split_edges_for_insertion): New inline function.  Wrapper for
split_critical_edges with for_edge_insertion_p = true.
        * tree-cfg.c (split_critical_edges): Don't split non-critical
edges if for_edge_insertion_p is false.  Fix whitespace.
        * tree-ssa-pre.c (pass_pre::execute): Call
split_edges_for_insertion instead of split_critical_edges.
        * gcc/tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
        * gcc/tree-ssa-sink.c (pass_sink_code::execute): Ditto.
(pass_data_sink_code): Update function name in the comment.

From-SVN: r271461

5 years agotree-ssa-uninit: suppress more spurious warnings
Vladislav Ivanishin [Tue, 21 May 2019 10:39:05 +0000 (10:39 +0000)]
tree-ssa-uninit: suppress more spurious warnings

* tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
        around is_value_included_in that knows how to handle BIT_AND_EXPR.
        (is_pred_expr_subset_of): Use the new function.  Handle more cases where
        code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
        positives.

testsuite/
        * gcc.dg/uninit-28-gimple.c: New test.
        * gcc.dg/uninit-29-gimple.c: New test.
        * gcc.dg/uninit-30-gimple.c: New test.
        * gcc.dg/uninit-31-gimple.c: New test.

From-SVN: r271460

5 years agocontrib/mklog: Open files in text mode
Janne Blomqvist [Tue, 21 May 2019 08:37:05 +0000 (11:37 +0300)]
contrib/mklog: Open files in text mode

Due to the python 3 conversion, files should be opened in text mode,
matching stdin/stdout.

2019-05-21  Janne Blomqvist  <jb@gcc.gnu.org>

* mklog: Open files in text mode.

From-SVN: r271459

5 years agoEnable -O2 for pr90263.c test.
Martin Liska [Tue, 21 May 2019 07:33:41 +0000 (09:33 +0200)]
Enable -O2 for pr90263.c test.

2019-05-21  Martin Liska  <mliska@suse.cz>

* gcc.dg/pr90263.c: Add -O2.

From-SVN: r271458

5 years agoc-ada-spec.h (enum cpp_operation): Add IS_ASSIGNMENT_OPERATOR.
Eric Botcazou [Tue, 21 May 2019 07:00:45 +0000 (07:00 +0000)]
c-ada-spec.h (enum cpp_operation): Add IS_ASSIGNMENT_OPERATOR.

c-family/
* c-ada-spec.h (enum cpp_operation): Add IS_ASSIGNMENT_OPERATOR.
* c-ada-spec.c (print_assignment_operator): New function.
(dump_ada_declaration) <FUNCTION_DECL>: Call it do dump explicit copy
assignment operators declared as methods and filter out the others.
cp/
* decl2.c (cpp_check) <IS_ASSIGNMENT_OPERATOR>: New case.

From-SVN: r271457

5 years agoConvert contrib/mklog script to Python 3
Janne Blomqvist [Tue, 21 May 2019 06:59:16 +0000 (09:59 +0300)]
Convert contrib/mklog script to Python 3

Upstream will drop support for Python 2.x on January 1, 2020.  This
patch converts the contrib/mklog script to Python 3.  The process for
the conversion was as follows.

- Use the futurize tool (https://python-future.org ) to apply the
  print_with_import, except, and dict transformations.

- Remove the "from __future__ import print_function".

- Change the shebang line to search for python3 in the environment.

- Modify the run() function to return a str instead of bytes.

- Update the copyright year.

contrib/ChangeLog:

2019-05-21  Janne Blomqvist  <jb@gcc.gnu.org>

        * mklog: Convert to Python 3.

From-SVN: r271456

5 years agofix diagnostic quoting/spelling in rs6000
Martin Liska [Tue, 21 May 2019 06:55:56 +0000 (08:55 +0200)]
fix diagnostic quoting/spelling in rs6000

2019-05-21  Martin Liska  <mliska@suse.cz>

* config/rs6000/driver-rs6000.c (elf_platform): Do not use
an extra newline.
* config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
(altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
vec_lvsr.
* config/rs6000/rs6000.c (rs6000_option_override_internal):
Quote a C type.
(rs6000_function_arg): Likewise.
(rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
(rs6000_expand_ternop_builtin): Use interval syntax.
(get_element_number): Likewise.
(altivec_expand_builtin): Likewise.
(rs6000_get_function_versions_dispatcher): Quote target_clones.

Fix test-suite.
2019-05-21  Martin Liska  <mliska@suse.cz>

* gcc.target/powerpc/ppc64-abi-warn-1.c: Wrap a type.
* gcc.target/powerpc/pr80315-1.c: Use new interval format.
* gcc.target/powerpc/pr80315-2.c: Likewise.
* gcc.target/powerpc/pr80315-3.c: Likewise.
* gcc.target/powerpc/pr80315-4.c: Likewise.
* gcc.target/powerpc/warn-lvsl-lvsr.c: Wrap builtin names.

From-SVN: r271455

5 years agoMove a test-case (PR testsuite/90551).
Martin Liska [Tue, 21 May 2019 06:55:07 +0000 (08:55 +0200)]
Move a test-case (PR testsuite/90551).

2019-05-21  Martin Liska  <mliska@suse.cz>

PR testsuite/90551
* pr90263.c: Move from gcc.c-torture/compile
into gcc.dg.

From-SVN: r271454

5 years agotbb-backend effective target should check ability to link TBB
Thomas Rodgers [Tue, 21 May 2019 04:37:45 +0000 (04:37 +0000)]
tbb-backend effective target should check ability to link TBB

    PR libstdc++/90252
    * testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
    Changed v3_target_compile check from preprocess to executable.
    Added "-ltbb" to v3_target_compile flags.

From-SVN: r271451

5 years agoCheck TBB version in tbb-backed effective target check
Thomas Rodgers [Tue, 21 May 2019 01:06:32 +0000 (01:06 +0000)]
Check TBB version in tbb-backed effective target check

      * testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
      Add check for Thread Building Blocks 2018 or later.

From-SVN: r271450

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

From-SVN: r271449

5 years agore PR testsuite/90503 (gcc.target/i386/pr22076.c FAILs)
Uros Bizjak [Mon, 20 May 2019 22:24:38 +0000 (00:24 +0200)]
re PR testsuite/90503 (gcc.target/i386/pr22076.c FAILs)

PR testsuite/90503
* gcc.target/i386/pr22076.c (dg-options): Add -mno-sse2.
Remove -flax-vector-conversions.
(dg-additional-options): Remove.
(test): Change to void.  Declare m0 and m1 as __m64 and
cast initializer in a proper way.  Do not return result.
(dg-final): Scan for 2 instances of movq.

From-SVN: r271445

5 years ago* es.po, sv.po: Update.
Joseph Myers [Mon, 20 May 2019 22:22:36 +0000 (23:22 +0100)]
* es.po, sv.po: Update.

From-SVN: r271443

5 years agore PR testsuite/90503 (gcc.target/i386/pr22076.c FAILs)
Uros Bizjak [Mon, 20 May 2019 22:01:32 +0000 (00:01 +0200)]
re PR testsuite/90503 (gcc.target/i386/pr22076.c FAILs)

PR testsuite/90503
* gcc.target/i386/pr22076.c (dg-options): Add -mno-sse2.

From-SVN: r271442

5 years agogfortran.texi: Remove reference to the ASSIGN statement...
Mark Eggleston [Mon, 20 May 2019 21:49:33 +0000 (15:49 -0600)]
gfortran.texi: Remove reference to the ASSIGN statement...

* gfortran.texi: Remove reference to the ASSIGN statement, capitalise
complex, state that padding is with spaces and modify the Hollerith
constant examples.

From-SVN: r271441

5 years agore PR c++/59813 (tail-call elimination didn't fire for left-shift of char to cout)
Jakub Jelinek [Mon, 20 May 2019 21:33:46 +0000 (23:33 +0200)]
re PR c++/59813 (tail-call elimination didn't fire for left-shift of char to cout)

PR c++/59813
PR target/90418
* function.h (struct function): Add calls_eh_return member.
* gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
gimplifying __builtin_eh_return call.
* tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
to cfun.
(expand_call_inline): Or in src_cfun->calls_eh_return into
dst_cfun->calls_eh_return.
* tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
cfun->calls_eh_return.
* lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
* lto-streamer-out.c (output_struct_function_base): Write
calls_eh_return.

From-SVN: r271440

5 years agore PR libgomp/90527 (alloc.c:72:7: error: implicit declaration of function ‘posix_mem...
Jakub Jelinek [Mon, 20 May 2019 21:29:17 +0000 (23:29 +0200)]
re PR libgomp/90527 (alloc.c:72:7: error: implicit declaration of function ‘posix_memalign’)

PR libgomp/90527
* alloc.c (_GNU_SOURCE): Define.

From-SVN: r271438

5 years agoFix test failure due to Networking TS headers using mutexes
Jonathan Wakely [Mon, 20 May 2019 20:21:15 +0000 (21:21 +0100)]
Fix test failure due to Networking TS headers using mutexes

Only include the Networking headers for targets with Gthreads, so that
the uses of std::mutex and std::condition_variable don't cause errors.

* testsuite/experimental/names.cc: Only include Networking TS headers
on targets with the necessary Gthreads support.

From-SVN: r271437

5 years agoCWG 2094 - volatile scalars are trivially copyable.
Marek Polacek [Mon, 20 May 2019 19:10:57 +0000 (19:10 +0000)]
CWG 2094 - volatile scalars are trivially copyable.

PR c++/85679
* tree.c (trivially_copyable_p): Don't check CP_TYPE_VOLATILE_P for
scalar types.

* g++.dg/ext/is_trivially_constructible1.C: Change the expected result
for volatile int.
* g++.dg/ext/is_trivially_copyable.C: New test.

* testsuite/20_util/is_trivially_copyable/value.cc: Change the expected
result for volatile int.

From-SVN: r271435

5 years agoname-lookup.c (finish_using_directive): Don't issue inform() if the warning didn...
Marek Polacek [Mon, 20 May 2019 19:04:52 +0000 (19:04 +0000)]
name-lookup.c (finish_using_directive): Don't issue inform() if the warning didn't trigger.

* name-lookup.c (finish_using_directive): Don't issue inform() if the
warning didn't trigger.  Add quoting.  Tweak the inform message.

* g++.dg/lookup/strong-using2.C: New test.

From-SVN: r271432

5 years agopt.c (convert_template_argument): Add a diagnostic for the [temp.arg]/2 ambiguity...
Marek Polacek [Mon, 20 May 2019 18:59:05 +0000 (18:59 +0000)]
pt.c (convert_template_argument): Add a diagnostic for the [temp.arg]/2 ambiguity case.

* pt.c (convert_template_argument): Add a diagnostic for the
[temp.arg]/2 ambiguity case.

* g++.dg/cpp2a/nontype-class17.C: New test.

From-SVN: r271431

5 years ago* g++.dg/ext/utf8-2.C: Accept both "char" and "char8_t" in aka.
Marek Polacek [Mon, 20 May 2019 18:23:06 +0000 (18:23 +0000)]
* g++.dg/ext/utf8-2.C: Accept both "char" and "char8_t" in aka.

From-SVN: r271430

5 years agoWtype-limits-Wextra.c: Adjust expected output after recent diagnostic cleanups.
Jeff Law [Mon, 20 May 2019 18:17:33 +0000 (12:17 -0600)]
Wtype-limits-Wextra.c: Adjust expected output after recent diagnostic cleanups.

* gcc.dg/Wtype-limits-Wextra.c: Adjust expected output after
recent diagnostic cleanups.

From-SVN: r271429

5 years agocp-tree.h: Remove remnants of CONV_NONCONVERTING.
Paolo Carlini [Mon, 20 May 2019 18:00:46 +0000 (18:00 +0000)]
cp-tree.h: Remove remnants of CONV_NONCONVERTING.

2019-05-20  Paolo Carlini  <paolo.carlini@oracle.com>

* cp-tree.h: Remove remnants of CONV_NONCONVERTING.

From-SVN: r271428

5 years agoAdd myself to MAINTAINERS
Vladislav Ivanishin [Mon, 20 May 2019 15:33:12 +0000 (15:33 +0000)]
Add myself to MAINTAINERS

2019-05-20  Vladislav Ivanishin  <vlad@ispras.ru>

* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r271425

5 years ago[testsuite] PR90106 Fix cdce3.c testcase
Christophe Lyon [Mon, 20 May 2019 15:01:46 +0000 (15:01 +0000)]
[testsuite] PR90106 Fix cdce3.c testcase

2019-05-20  Christophe Lyon  <christophe.lyon@linaro.org>

PR tree-optimization/90106
* gcc.dg/cdce3.c: Add hard_float effective target.

From-SVN: r271424

5 years agoTweak gcc.dg/torture/pta-ptrarith-3.c
Marc Glisse [Mon, 20 May 2019 14:58:53 +0000 (16:58 +0200)]
Tweak gcc.dg/torture/pta-ptrarith-3.c

2019-05-20  Marc Glisse  <marc.glisse@inria.fr>

* gcc.dg/torture/pta-ptrarith-3.c: Relax the matched pattern.

From-SVN: r271423

5 years ago[i386] Fold __builtin_ia32_shufpd to VEC_PERM_EXPR
Marc Glisse [Mon, 20 May 2019 14:53:29 +0000 (16:53 +0200)]
[i386] Fold __builtin_ia32_shufpd to VEC_PERM_EXPR

2019-05-20  Marc Glisse  <marc.glisse@inria.fr>

PR rtl-optimization/43147
* config/i386/i386.c (ix86_gimple_fold_builtin): Handle
IX86_BUILTIN_SHUFPD.

From-SVN: r271422

5 years agoFix failing tests for use of non-reserved names
Jonathan Wakely [Mon, 20 May 2019 14:38:21 +0000 (15:38 +0100)]
Fix failing tests for use of non-reserved names

Defining 'ptr' fails on Solaris because it's used in <netdb.h>.

Including the Filesystem TS header fails if the TS support wasn't
enabled by configure.

* testsuite/17_intro/names.cc: Do not check 'ptr' on Solaris.
* testsuite/experimental/names.cc: Include <experimental/filesystem>
conditionally.

From-SVN: r271421

5 years ago[C++ PATCH] Commonixe using directive finishing
Nathan Sidwell [Mon, 20 May 2019 13:49:53 +0000 (13:49 +0000)]
[C++ PATCH] Commonixe using directive finishing

https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01251.html
gcc/cp/
* name-lookup.c (finish_namespace_using_directive)
(finish_local_using_directive): Merge to ...
(finish_using_directive): ... here.  Handle both contexts.
* name-lookup.h (finish_namespace_using_directive)
(finish_local_using_directive): Replace with ...
(finish_using_directive): ... this.
* parser.c (cp_parser_using_directive): Adjust.
* pt.c (tsubst_expr): Likewise.

libcc1/
* libcp1plugin.cc (plugin_add_using_namespace): Call renamed
finish_using_directive.

From-SVN: r271420

5 years agotree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
Jan Hubicka [Mon, 20 May 2019 13:37:11 +0000 (15:37 +0200)]
tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...

* tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
(refs_may_alias_p_1): ... here; update stats.
(refs_may_alias_p): Do not update stats here.

From-SVN: r271419

5 years ago[C++ PATCH] namespace using directives
Nathan Sidwell [Mon, 20 May 2019 12:46:54 +0000 (12:46 +0000)]
[C++ PATCH] namespace using directives

https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01245.html
* cp-tree.h (struct lang_decl_ns): Remove usings field.
(DECL_NAMESPACE_USING): Delete.
* name-lookup.c (name_lookup::search_usings): Use namespace's
binding scope.
(name_lookup::queue_namespae): Likewise.
(finish_namespace_using_directive, push_namespace): Likewise.
(has_using_namespace_std_directive): Just search the entire
binding stack.

From-SVN: r271416

5 years agodarwin, testsuite - fix PR58321
Iain Sandoe [Mon, 20 May 2019 12:28:18 +0000 (12:28 +0000)]
darwin, testsuite - fix PR58321

Darwin doesn't emit a .file directive by default
and one of the scan-asm hits for ELF targets comes from
this directive. Adjust for Darwin and explain.

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

PR testsuite/58321
* gcc.target/i386/memcpy-strategy-3.c: Adjust count for Darwin and
add a comment as to the reason for the difference.
* gcc.target/i386/memset-strategy-1.c: Likewise.

From-SVN: r271415

5 years agotree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR doesn't produce pointers.
Richard Biener [Mon, 20 May 2019 12:02:35 +0000 (12:02 +0000)]
tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR doesn't produce pointers.

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

* tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
doesn't produce pointers.
{TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
the first operand points to.

From-SVN: r271414

5 years agotree-ssa-alias.c (compare_sizes): New function.
Jan Hubicka [Mon, 20 May 2019 12:01:40 +0000 (14:01 +0200)]
tree-ssa-alias.c (compare_sizes): New function.

* tree-ssa-alias.c (compare_sizes): New function.
(sompare_type_sizes): New function
(aliasing_component_refs_p): Use it.
(indirect_ref_may_alias_decl_p): Likewise.

From-SVN: r271413

5 years agoPR c++/90532 Ensure __is_constructible(T[]) is false
Jonathan Wakely [Mon, 20 May 2019 11:32:51 +0000 (12:32 +0100)]
PR c++/90532 Ensure __is_constructible(T[]) is false

An array of an unknown bound is an incomplete type, so no object of such
a type can be constructed. This means __is_constructible should always
be false for an array of unknown bound.

This patch also changes the std::is_default_constructible trait to use
std::is_constructible, which now gives the right answer for arrays of
unknown bound.

gcc/cp:

PR c++/90532 Ensure __is_constructible(T[]) is false
* method.c (is_xible_helper): Return error_mark_node for construction
of an array of unknown bound.

gcc/testsuite:

PR c++/90532 Ensure __is_constructible(T[]) is false
* g++.dg/ext/90532.C: New test.

libstdc++-v3:

PR c++/90532 Ensure __is_constructible(T[]) is false
* include/std/type_traits (__do_is_default_constructible_impl)
(__is_default_constructible_atom, __is_default_constructible_safe):
Remove.
(is_default_constructible): Use is_constructible.
* testsuite/20_util/is_constructible/value.cc: Check int[] case.
* testsuite/20_util/is_default_constructible/value.cc: Likewise.
* testsuite/20_util/is_trivially_constructible/value.cc: Likewise.
* testsuite/20_util/is_trivially_default_constructible/value.cc:
Likewise.

From-SVN: r271412

5 years agoReject -mx32 on Solaris/x86
Rainer Orth [Mon, 20 May 2019 11:26:43 +0000 (11:26 +0000)]
Reject -mx32 on Solaris/x86

* config/i386/sol2.h (CC1_SPEC): Reject -mx32.

From-SVN: r271411

5 years agoFix %e in Solaris specs
Rainer Orth [Mon, 20 May 2019 11:22:40 +0000 (11:22 +0000)]
Fix %e in Solaris specs

* config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
(LIBLSAN_EARLY_SPEC): Likewise.
* config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.

From-SVN: r271410

5 years agostd::allocator::deallocate support sized-deallocation
Pádraig Brady [Mon, 20 May 2019 11:15:03 +0000 (11:15 +0000)]
std::allocator::deallocate support sized-deallocation

Pass the size to the allocator so that it may optimize deallocation.
This was seen to significantly reduce the work required in jemalloc,
with about 40% reduction in CPU cycles in the free path.

Note jemalloc >= 5.2 is required to fix a crash with 0 sizes.

2019-05-20  Pádraig Brady  <pbrady@fb.com>

* libstdc++-v3/include/ext/new_allocator.h (deallocate): Pass the size
to the deallocator with -fsized-deallocation.

From-SVN: r271409

5 years agoFix test bug with mismatched alignment in allocate/deallocate
Jonathan Wakely [Mon, 20 May 2019 11:14:56 +0000 (12:14 +0100)]
Fix test bug with mismatched alignment in allocate/deallocate

* testsuite/experimental/memory_resource/new_delete_resource.cc: Fix
test by passing correct alignment to deallocate function.

From-SVN: r271408

5 years agoAdd missing ATTRIBUTE_UNUSED for ix86_libc_has_fast_function.
Martin Liska [Mon, 20 May 2019 10:48:46 +0000 (12:48 +0200)]
Add missing ATTRIBUTE_UNUSED for ix86_libc_has_fast_function.

2019-05-20  Martin Liska  <mliska@suse.cz>

* config/i386/i386.c (ix86_libc_has_fast_function):
Add ATTRIBUTE_UNUSED for the argument.

From-SVN: r271406

5 years agogimple-match-head.c: Include vec-perm-indices.h.
Richard Biener [Mon, 20 May 2019 10:33:54 +0000 (10:33 +0000)]
gimple-match-head.c: Include vec-perm-indices.h.

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

* gimple-match-head.c: Include vec-perm-indices.h.
* generic-match-head.c: Likewise.
* fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
is included.
* fold-const.c (fold_vec_perm): Export.
(fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
(match.pd): ...here.

From-SVN: r271404

5 years agocfgloop.h (struct loop): Add simdlen member.
Jakub Jelinek [Mon, 20 May 2019 09:49:07 +0000 (11:49 +0200)]
cfgloop.h (struct loop): Add simdlen member.

* cfgloop.h (struct loop): Add simdlen member.
* cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
* omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
* tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
as new argument to autovectorize_vector_sizes target hook.  If
loop->simdlen, pick up vector size where the vectorization factor
is equal to loop->simd, and if there is none, fall back to the first
successful one.
(vect_transform_loop): Adjust autovectorize_vector_sizes target hook
caller.
* omp-low.c (omp_clause_aligned_alignment): Likewise.
* omp-general.c (omp_max_vf): Likewise.
* optabs-query.c (can_vec_mask_load_store_p): Likewise.
* tree-vect-slp.c (vect_slp_bb): Likewise.
* target.def (autovectorize_vector_sizes): Add ALL argument and
document it.
* doc/tm.texi: Adjust documentation.
* targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
* targhooks.h (default_autovectorize_vector_sizes): Likewise.
* config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
bool argument.
* config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
* config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
* config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
* config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise.  If
true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
preferred vector size is not 512-bit or 256-bit, just put those
unpreferred ones last.

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

From-SVN: r271403

5 years ago[testsuite] aarch64,arm Add missing quotes to expected error message
Christophe Lyon [Mon, 20 May 2019 09:12:03 +0000 (09:12 +0000)]
[testsuite] aarch64,arm Add missing quotes to expected error message

2019-05-20  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/target_attr_10.c: Add quotes to expected
error message.
* gcc.target/arm/attr-neon-builtin-fail.c: Likewise.

From-SVN: r271402

5 years agoAdd missing default default_libc_has_fast_function implementation.
Martin Liska [Mon, 20 May 2019 09:11:04 +0000 (11:11 +0200)]
Add missing default default_libc_has_fast_function implementation.

2019-05-20  Martin Liska  <mliska@suse.cz>

* targhooks.c (default_libc_has_fast_function): New function.
* targhooks.h (default_libc_has_fast_function): Likewise.

From-SVN: r271401

5 years agoCome up with hook libc_has_fast_function (PR middle-end/90263).
Martin Liska [Mon, 20 May 2019 07:55:00 +0000 (09:55 +0200)]
Come up with hook libc_has_fast_function (PR middle-end/90263).

2019-05-20  Martin Liska  <mliska@suse.cz>

PR middle-end/90263
* builtins.c (expand_builtin_memory_copy_args): When having a
target with fast mempcpy implementation do now use memcpy.
* config/i386/i386.c (ix86_libc_has_fast_function): New.
(TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
* doc/tm.texi: Likewise.
* doc/tm.texi.in: Likewise.
* target.def:
* expr.c (emit_block_move_hints): Add 2 new arguments.
* expr.h (emit_block_move_hints): Bail out when libcall
to memcpy would be used.
2019-05-20  Martin Liska  <mliska@suse.cz>

PR middle-end/90263
* gcc.c-torture/compile/pr90263.c: New test.
* lib/target-supports.exp: Add check_effective_target_glibc.

From-SVN: r271400

5 years agoAdd vertical spacing in order to separate functions.
Martin Liska [Mon, 20 May 2019 07:53:42 +0000 (09:53 +0200)]
Add vertical spacing in order to separate functions.

2019-05-20  Martin Liska  <mliska@suse.cz>

* profile-count.c: Add vertical spacing in order
to separate functions.
* profile-count.h: Likewise.

From-SVN: r271399

5 years agoDo not use full qualified names if possible.
Martin Liska [Mon, 20 May 2019 07:53:31 +0000 (09:53 +0200)]
Do not use full qualified names if possible.

2019-05-20  Martin Liska  <mliska@suse.cz>

* profile-count.h: Do not use full qualified
names if possible.
* profile-count.c (profile_count::to_frequency): Likewise.

From-SVN: r271398

5 years agoUse capital letters for enum value names.
Martin Liska [Mon, 20 May 2019 07:53:18 +0000 (09:53 +0200)]
Use capital letters for enum value names.

2019-05-20  Martin Liska  <mliska@suse.cz>

* profile-count.h (enum profile_quality): Use capital letters
for enum value names.  Use the adjusted names.
* profile-count.c: Use the adjusted names.

From-SVN: r271397

5 years agore PR middle-end/90518 (ICE: in emit_move_insn, at expr.c:3745 in gcc.dg/gimplefe...
Richard Biener [Mon, 20 May 2019 07:18:10 +0000 (07:18 +0000)]
re PR middle-end/90518 (ICE: in emit_move_insn, at expr.c:3745 in gcc.dg/gimplefe-40.c)

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

PR testsuite/90518
* gcc.dg/gimplefe-40.c: Restrict to targets with appropriate
vector support.
* gcc.dg/gimplefe-41.c: Likewise.

From-SVN: r271396

5 years ago[PATCH] Fix PR 81721: ICE with PCH and Pragma warning and C++ operator
Andrew Pinski [Mon, 20 May 2019 06:59:06 +0000 (06:59 +0000)]
[PATCH] Fix PR 81721: ICE with PCH and Pragma warning and C++ operator

libcpp/ChangeLog:
2019-05-19  Andrew Pinski  <apinski@marvell.com>

        PR pch/81721
        * lex.c (cpp_token_val_index <case SPELL_OPERATOR>): If tok->flags
        has NAMED_OP set, then return CPP_TOKEN_FLD_NODE.

gcc/testsuite/ChangeLog:
2019-05-19  Andrew Pinski  <apinski@marvell.com>

        PR pch/81721
        * g++.dg/pch/operator-1.C: New testcase.
        * g++.dg/pch/operator-1.Hs: New file.

From-SVN: r271395

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

From-SVN: r271394

5 years agors6000: Delete the "wH" and "wI" constraints
Segher Boessenkool [Mon, 20 May 2019 00:14:36 +0000 (02:14 +0200)]
rs6000: Delete the "wH" and "wI" constraints

This replaces "wH" by "v", "wI" by "d", and when both are allowed it
uses "wa"; all with isa "p8v".

* config/rs6000/constraints.md (define_register_constraint "wH"):
Delete.
(define_register_constraint "wI"): Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
resp. "d", or with "wa" as appropriate, all with "p8v".
* config/rs6000/vsx.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.

From-SVN: r271390