]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
6 years ago2019-05-23 Richard Biener <rguenther@suse.de>
rguenth [Fri, 24 May 2019 08:48:14 +0000 (08:48 +0000)] 
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.

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

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

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

6 years agoDarwin, x86, testsuite - Make match strings more specific.
iains [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.

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

6 years agoDarwin, x86, testsuite - Adjust test labels.
iains [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.

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

6 years agoDarwin, x86, testsuite - Disable tests that cannot pass.
iains [Fri, 24 May 2019 07:05:25 +0000 (07:05 +0000)] 
Darwin, x86, testsuite - Disable tests that cannot pass.

A few of the i386.exp target tests cannot pass on Darwin
because either the port doesn't support a feature, or the
ABI demands sufficiently different codegen that matching
the output with scan-asms would require a different test.

Disabling those tests here.

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

* gcc.target/i386/falign-functions-2.c: Skip for Darwin.
* gcc.target/i386/pr70738-7.c: Likewise.
* gcc.target/i386/pr24414.c: Likewise.

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

6 years agoDaily bump.
gccadmin [Fri, 24 May 2019 00:16:25 +0000 (00:16 +0000)] 
Daily bump.

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

6 years agoFix testsuite bugs
redi [Thu, 23 May 2019 21:41:08 +0000 (21:41 +0000)] 
Fix testsuite bugs

One of the static assertions in 20_util/function_objects/invoke/1.cc was
wrong, but didn't fail because by default it was compiled with
-std=gnu++14 which didn't use that static assertion. Split out the C++17
parts to a new file that always runs with -std=gnu++17, so those checks
are always done.

The 23_containers/unordered_set/allocator/ext_ptr.cc test is supposed to
be a run-time test but was unintentionally compile-only.

* testsuite/20_util/function_objects/invoke/1.cc: Move C++17-specific
tests to ...
* testsuite/20_util/function_objects/invoke/3.cc: New test.
* testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Change
"compile" test to "run".

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

6 years agoLWG 2996 add rvalue overloads for shared_ptr aliasing and casting
redi [Thu, 23 May 2019 21:41:02 +0000 (21:41 +0000)] 
LWG 2996 add rvalue overloads for shared_ptr aliasing and casting

* doc/xml/manual/intro.xml: Document LWG DR 2996 change.
* doc/html/*: Regenerate.
* include/bits/shared_ptr.h (shared_ptr(shared_ptr&&, T*)): Add
rvalue aliasing constructor.
(static_pointer_cast, const_pointer, dynamic_pointer_cast)
(reinterpret_pointer_cast): Add overloads taking rvalues.
* include/bits/shared_ptr_base.h (__shared_ptr(__shared_ptr&&, T*)):
Add rvalue aliasing constructor.
* testsuite/20_util/shared_ptr/casts/1.cc: Change "compile" test to
"run" and check return values as well as types.
* testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
* testsuite/20_util/shared_ptr/casts/rval.cc: New test.
* testsuite/20_util/shared_ptr/cons/alias-rval.cc: New test.
* testsuite/20_util/shared_ptr/cons/alias.cc: Remove unused return
values.

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

6 years agoLWG 2921 remove packaged_task constructors taking allocators
redi [Thu, 23 May 2019 21:40:56 +0000 (21:40 +0000)] 
LWG 2921 remove packaged_task constructors taking allocators

* doc/xml/manual/evolution.xml: Document LWG DR 2921 change.
* doc/xml/manual/intro.xml: Likewise.
* include/std/future (__create_task_state): Add default arguments
to make providing an allocator optional.
(packaged_task::packaged_task(F&&)): Call __create_task_state directly
instead of delegating to another constructor.
(packaged_task::packaged_task(allocator_arg_t, const A&, ...)): Do not
define allocator-extended constructors for C++17 and later.
* testsuite/30_threads/packaged_task/cons/alloc.cc: Only run test for
C++11 and C++14.
* testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise.
* testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise.

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

6 years agodarwin, x86 - disable '-mfentry' for the port.
iains [Thu, 23 May 2019 20:51:04 +0000 (20:51 +0000)] 
darwin, x86 - disable '-mfentry' for the port.

This can't work without special support because placing
the call directly after the function label breaks the
ABI requirement that call sites are 16byte aligned.

gcc/

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

       * config/i386/darwin.h: Reject -mfentry*.
       * doc/sourcebuild.texi: Document mfentry target support.

gcc/testsuite/

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

       * lib/target-supports.exp (check_effective_target_mfentry): New.
       * gcc.target/i386/fentry-override.c: Require effective target mfentry.
       * gcc/testsuite/gcc.target/i386/fentry.c: Likewise
       * gcc.target/i386/fentryname1.c: Likewise
       * gcc.target/i386/fentryname2.c: Likewise
       * gcc.target/i386/fentryname3.c: Likewise
       * gcc.target/i386/nop-mcount.c: Likewise
       * gcc.target/i386/pr82699-2.c: Likewise
       * gcc.target/i386/pr82699-4.c: Likewise
       * gcc.target/i386/pr82699-5.c: Likewise
       * gcc.target/i386/pr82699-6.c: Likewise
       * gcc.target/i386/returninst1.c: Likewise
       * gcc.target/i386/returninst2.c: Likewise
       * gcc.target/i386/returninst3.c : Likewise

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

6 years ago[gcc]
wschmidt [Thu, 23 May 2019 20:33:02 +0000 (20:33 +0000)] 
[gcc]

2019-05-22  Bill Schmidt  <wschmidt@linux.ibm.com>

* config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
Rename to rs6000_global_entry_point_prologue_needed_p.  Return
false for PC-relative functions.
(rs6000_output_function_prologue): Change called function name to
rs6000_global_entry_point_prologue_needed_p.  Emit ".localentry
name,1" for PC-relative functions.
(rs6000_elf_declare_function_name): Change called function name to
rs6000_global_entry_point_prologue_needed_p.

[gcc/testsuite]

2019-05-22  Bill Schmidt  <wschmidt@linux.ibm.com>

* gcc.target/powerpc/localentry-1.c: New file.

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

6 years ago PR target/90552
uros [Thu, 23 May 2019 19:46:56 +0000 (19:46 +0000)] 
PR target/90552
* config/i386/i386.c (gen_rtx_cost):
Use ix86_tune_cost instead of ix86_cost.

testsuite/ChangeLog:

PR target/90552
* gcc.target/i386/pr90552.c: New test.

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

6 years ago2019-05-22 Bill Schmidt <wschmidt@linux.ibm.com>
wschmidt [Thu, 23 May 2019 18:24:22 +0000 (18:24 +0000)] 
2019-05-22  Bill Schmidt  <wschmidt@linux.ibm.com>
    Michael Meissner  <meissner@linux.ibm.com>
    Segher Boessenkool  <segher@kernel.crashing.org>

* config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
OPTION_MASK_PCREL.
(POWERPC_MASKS): Add OPTION_MASK_PCREL.
* config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
(rs6000_fndecl_pcrel_p): Likewise.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Report
error if -mpcrel is requested without -mcpu=future.
(rs6000_opt_masks): Add entry for pcrel.
(rs6000_fndecl_pcrel_p): New function.
(rs6000_pcrel_p): Likewise.
* config/rs6000/rs6000.opt (mpcrel): New option.
* doc/invoke.texi: Document -mpcrel and -mno-pcrel.

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

6 years agoFrom what I understand of the libstdc++/83237 thread at
hp [Thu, 23 May 2019 18:02:05 +0000 (18:02 +0000)] 
From what I understand of the libstdc++/83237 thread at
<https://gcc.gnu.org/ml/gcc-patches/2017-12/msg00573.html>, the
high numbers are not arbitrary, so it seems wrong to try
lowering them, or we'd just waste cycles testing nothing, or
worse, ending up with a bogus error indication.  Better to just
plain disable this part of the test for simulator targets; I
assume the results should be the same on any IEEE-float target,
i.e. no target-specific things going on here that'd raise a need
to cover it everywhere.

With this part of the test disabled, I saw the test finishing in
(time) "124.74s user" where it was before "1120.26s user"
running the cris-elf-run simulator on a "i7-4770K CPU @ 3.50GHz"
host.  Most certainly that indidates that the remainder of the
test is still too much for *some* host+simulator combos, but I'm
happy with the runtime lowered to 1/5 of the timeout (10
minutes) on this particular combination, and I'd think this
fixes timeouts for many other simulator combos too.

This construct (disabling or lowering limits for simulators) is
used elsewhere in the libstdc++ test-suite and in particular the
SIMULATOR_TEST macro is used in the testsuite machinery (though
AFAICT not in testDiscreteDist).

        * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
        Don't run the libstdc++/83237 part on simulator targets.

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

6 years ago2019-05-23 Mark Eggleston <mark.eggleston@codethink.com>
kargl [Thu, 23 May 2019 17:20:58 +0000 (17:20 +0000)] 
2019-05-23  Mark Eggleston  <mark.eggleston@codethink.com>

* gfortran.dg/fmt_f_default_field_width_1.f90: Hide REAL(16) behind
__GFC_REAL_16__.  Add -cpp to dg-options.
* gfortran.dg/fmt_f_default_field_width_2.f90: Ditto.
* gfortran.dg/fmt_f_default_field_width_3.f90: Ditto.
* gfortran.dg/fmt_g_default_field_width_1.f90: Ditto.
* gfortran.dg/fmt_g_default_field_width_2.f90: Ditto.
* gfortran.dg/fmt_g_default_field_width_3.f90: Ditto.

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

6 years ago PR tree-optimization/90576
hubicka [Thu, 23 May 2019 16:07:07 +0000 (16:07 +0000)] 
PR tree-optimization/90576
* tree-ssa-alias.c (compare_sizes): Remove dead calls to
poly_int_tree_p.
(aliasing_component_refs_p): Fix three way size compare conditional;
give up earlier in case we can not decide on equivalence.

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

6 years agoAdd missing feature test macro to C++17 status table
redi [Thu, 23 May 2019 16:01:18 +0000 (16:01 +0000)] 
Add missing feature test macro to C++17 status table

* doc/xml/manual/status_cxx2017.xml: Add feature test macro for
P0040R3.
* doc/html/*: Regenerate.

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

6 years agoAdd infrastructure to support -mcpu=future to represent a future
wschmidt [Thu, 23 May 2019 15:20:33 +0000 (15:20 +0000)] 
Add infrastructure to support -mcpu=future to represent a future
architecture level, as yet unnamed.

[gcc]

2019-05-22  Bill Schmidt  <wschmidt@linux.ibm.com>
    Michael Meissner  <meissner@linux.ibm.com>
    Segher Boessenkool  <segher@kernel.crashing.org>

* config.gcc: Add future cpu.
* config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
* config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
#define.
(POWERPC_MASKS): Add OPTION_MASK_FUTURE.
(RS6000_CPU): New instantiation for future cpu.
* config/rs6000/rs6000-opts.h (enum processor_type): Add
PROCESSOR_FUTURE.
* config/rs6000/rs6000-string.c (expand_compare_loop): Treat
PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
* config/rs6000/rs6000-tables.opt: Regenerate.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
(rs6000_machine_from_flags): Handle future cpu.
(rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
PROCESSOR_POWER9 for now.
(rs6000_adjust_cost): Likewise.
(rs6000_issue_rate): Likewise.
(rs6000_register_move_cost): Likewise.
(rs6000_opt_mask): Add entry for future.
* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
(MASK_FUTURE): New #define.
* config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
* config/rs6000/rs6000.opt (mfuture): New target option.
* doc/invoke.texi (mcpu): Add future cpu.

[gcc/testsuite]

2019-05-22  Bill Schmidt  <wschmidt@linux.ibm.com>

* gcc.target/powerpc/cpu-future.c: New test.

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

6 years agoMake any_cast compare typeinfo as well as function pointers
redi [Thu, 23 May 2019 14:13:18 +0000 (14:13 +0000)] 
Make any_cast compare typeinfo as well as function pointers

It's possible for the function pointer comparison to fail even though
the type is correct, because the function could be defined multiple
times with different addresses when shared libraries are in use.

Retain the function pointer check for the common case where the check
succeeds, but compare typeinfo (if RTTI is enabled) if the first check
fails.

* include/experimental/any (__any_caster): Use RTTI if comparing
addresses fails, to support non-unique addresses in shared libraries.
* include/std/any (__any_caster): Likewise.

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

6 years agoPR libstdc++/90220 fix experimental::any_cast for non-object types
redi [Thu, 23 May 2019 13:39:06 +0000 (13:39 +0000)] 
PR libstdc++/90220 fix experimental::any_cast for non-object types

This corresponds to the fixes done for std::any_cast, but has to be done
without if-constexpr. The dummy specialization of _Manager_internal<_Op>
is used to avoid instantiating the real _Manager_internal<T>::_S_manage
function just to compare its address.

PR libstdc++/90220
* include/experimental/any (__any_caster): Constrain to only be
callable for object types. Use remove_cv_t instead of decay_t.
If the type decays or isn't copy constructible, compare the manager
function to a dummy specialization.
(__any_caster): Add overload constrained for non-object types.
(any::_Manager_internal<_Op>): Add dummy specialization.
* testsuite/experimental/any/misc/any_cast.cc: Test function types
and array types.

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

6 years agoDo not use tree_to_wide_ref that point to a temporary (PR c++/90587).
marxin [Thu, 23 May 2019 12:07:09 +0000 (12:07 +0000)] 
Do not use tree_to_wide_ref that point to a temporary (PR c++/90587).

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

PR c++/90587
* tree-ssa-uninit.c (value_sat_pred_p): The result of &
operation points to a temporary (pointed via tree_to_wide_ref)
that is out of scope after the &.

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

6 years agoPR c++/90592 add missing word "scope" to __func__ docs
redi [Thu, 23 May 2019 11:47:30 +0000 (11:47 +0000)] 
PR c++/90592 add missing word "scope" to __func__ docs

PR c++/90592
* doc/extend.texi (Function Names): Add missing word.

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

6 years ago2019-05-23 Richard Biener <rguenther@suse.de>
rguenth [Thu, 23 May 2019 11:35:16 +0000 (11:35 +0000)] 
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.

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

6 years ago PR target/90568
jakub [Thu, 23 May 2019 11:18:41 +0000 (11:18 +0000)] 
PR target/90568
* config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
of xor.

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

6 years ago * c-ada-spec.c (compare_node): Compare the DECL_UIDs as a last resort.
ebotcazou [Thu, 23 May 2019 10:34:54 +0000 (10:34 +0000)] 
* c-ada-spec.c (compare_node): Compare the DECL_UIDs as a last resort.

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

6 years agoDo not instrument static target_expr for use-after-scope (PR sanitizer/90570).
marxin [Thu, 23 May 2019 10:12:01 +0000 (10:12 +0000)] 
Do not instrument static target_expr for use-after-scope (PR sanitizer/90570).

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

PR sanitizer/90570
* gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
expression similarly to gimplify_decl_expr.
2019-05-23  Martin Liska  <mliska@suse.cz>

PR sanitizer/90570
* g++.dg/asan/pr90570.C: New test.

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

6 years ago * gnat.dg/opt78.ad[sb]: New test.
ebotcazou [Thu, 23 May 2019 09:48:24 +0000 (09:48 +0000)] 
* gnat.dg/opt78.ad[sb]: New test.

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

6 years agox86, testsuite - update fuse-caller-save tests.
iains [Thu, 23 May 2019 09:23:47 +0000 (09:23 +0000)] 
x86, testsuite - update fuse-caller-save tests.

These tests had started to XPASS on pic targets where
the codegen is now as expected.

gcc/testsuite/

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

PR rtl-optimisation/64895
* gcc.target/i386/fuse-caller-save-rec.c: Remove XFAILs.
* gcc.target/i386/fuse-caller-save.c: Likewise.
* gcc.target/i386/fuse-caller-save-xmm.c: Adjust tests for
PIC cases, remove XFAILs.

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

6 years agoAdd whitespace between operator and operand
redi [Thu, 23 May 2019 09:15:42 +0000 (09:15 +0000)] 
Add whitespace between operator and operand

* cp-tree.h (CP_AGGREGATE_TYPE_P): Fix whitespace.

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

6 years agoRemove conflict marker from ChangeLog
redi [Thu, 23 May 2019 08:46:45 +0000 (08:46 +0000)] 
Remove conflict marker from ChangeLog

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

6 years agoRemove resolved TODO comment
redi [Thu, 23 May 2019 08:46:40 +0000 (08:46 +0000)] 
Remove resolved TODO comment

* init.c (std_placement_new_fn_p): Remove outdated TODO comment that
was resolved by r254694.

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

6 years ago[PR90510] Adjust 'brig.dg/test/gimple/packed.hsail'
tschwinge [Thu, 23 May 2019 08:22:56 +0000 (08:22 +0000)] 
[PR90510] Adjust 'brig.dg/test/gimple/packed.hsail'

... for r271463 "Fix PR90510, VEC_PERM -> BIT_INSERT folding".

gcc/testsuite/
PR middle-end/90510
* brig.dg/test/gimple/packed.hsail: Adjust.

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

6 years ago2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
prathamesh3492 [Thu, 23 May 2019 07:49:27 +0000 (07:49 +0000)] 
2019-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* cse.c (cse_dump_path): s/dump_file/f.

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

6 years ago * g++.dg/cpp2a/is-constant-evaluated8.C: New test.
jakub [Thu, 23 May 2019 07:21:34 +0000 (07:21 +0000)] 
* g++.dg/cpp2a/is-constant-evaluated8.C: New test.

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

6 years agoThere was a regression for gfortran.dg/fmt_en.f90 for cris-elf
hp [Thu, 23 May 2019 02:18:49 +0000 (02:18 +0000)] 
There was a regression for gfortran.dg/fmt_en.f90 for cris-elf
that on inspection was due to it having acquired a truncation
call through the runtime.  I updated that and the new tests that
had "Fortran runtime error: required ftruncate or chsize support
not present" messages in gfortran.log, ran past cris-elf and
committed as obvious.  See also
<https://gcc.gnu.org/ml/gcc-patches/2008-05/msg00975.html> from
which I copy-pasted most of this message.  (Yep, 11 years ago.)

gcc/testsuite:
* gfortran.dg/dec_io_1.f90, gfortran.dg/dtio_1.f90,
gfortran.dg/dtio_12.f90, gfortran.dg/fmt_en.f90,
gfortran.dg/namelist_89.f90: Gate test on effective_target
fd_truncate.

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

6 years agoBulletproof -fdiagnostics-format=json against bad locations (PR c++/90462)
dmalcolm [Thu, 23 May 2019 00:42:03 +0000 (00:42 +0000)] 
Bulletproof -fdiagnostics-format=json against bad locations (PR c++/90462)

PR c++/90462 reports an ICE with -fdiagnostics-format=json when
attempting to serialize a malformed location to JSON.

The compound location_t in question has meaningful "caret" and "start"
locations, but has UNKNOWN_LOCATION for its "finish" location,
leading to a NULL pointer dereference when attempting to build a JSON
string for the filename.

This patch bulletproofs the JSON output so that attempts to write
a JSON object for a location with a NULL file will lead to an object
with no "file" key, and attempts to write a compound location with
UNKNOWN_LOCATION for its start or finish will lead to the corresponding
JSON child object being omitted.

This patch also adds a json::object::get member function, for self-testing
the above.

gcc/ChangeLog:
PR c++/90462
* diagnostic-format-json.cc: Include "selftest.h".
(json_from_expanded_location): Only add "file" key for non-NULL
file strings.
(json_from_location_range): Don't add "start" and "finish"
children if they are UNKNOWN_LOCATION.
(selftest::test_unknown_location): New selftest.
(selftest::test_bad_endpoints): New selftest.
(selftest::diagnostic_format_json_cc_tests): New function.
* json.cc (json::object::get): New function.
(selftest::test_object_get): New selftest.
(selftest::json_cc_tests): Call it.
* json.h (json::object::get): New decl.
* selftest-run-tests.c (selftest::run_tests): Call
selftest::diagnostic_format_json_cc_tests.
* selftest.h (selftest::diagnostic_format_json_cc_tests): New
decl.

gcc/testsuite/ChangeLog:
PR c++/90462
* g++.dg/pr90462.C: New test.

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

6 years agoDaily bump.
gccadmin [Thu, 23 May 2019 00:16:17 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago * g++.dg/cpp1y/udlit-char-template-neg.C: Expect the error on a
mpolacek [Wed, 22 May 2019 22:56:00 +0000 (22:56 +0000)] 
* g++.dg/cpp1y/udlit-char-template-neg.C: Expect the error on a
different line.  Check the column number too.

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

6 years agoPR libstdc++/90557 fix path assignment that alters source
redi [Wed, 22 May 2019 22:14:34 +0000 (22:14 +0000)] 
PR libstdc++/90557 fix path assignment that alters source

PR libstdc++/90557
* src/c++17/fs_path.cc (path::_List::operator=(const _List&)): Fix
reversed arguments to uninitialized_copy_n.
* testsuite/27_io/filesystem/path/assign/copy.cc: Check that source
is unchanged by copy assignment.
* testsuite/util/testsuite_fs.h (compare_paths): Use std::equal to
compare path components.

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

6 years agoAdd support for constructors and destuctors on GCN
ams [Wed, 22 May 2019 22:14:08 +0000 (22:14 +0000)] 
Add support for constructors and destuctors on GCN

2019-05-22  Kwok Cheung Yeung  <kcy@codesourcery.com>
            Andrew Stubbs  <amd@codesourcery.com>

gcc/
* config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
* config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
(kernel): Rename to...
(main_kernel): ... this.
(load_image): Load _init_array and _fini_array kernels.
(run): Add argument for kernel to run.
(main): Run init_array_kernel before main_kernel, and
fini_array_kernel after.
* config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
amdgpu_hsa_kernel attribute on functions.
(gcn_disable_constructors): Delete.
(TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
* config/gcn/crt0.c (size_t): Define.
(_init_array, _fini_array): New.
(__preinit_array_start, __preinit_array_end,
__init_array_start, __init_array_end,
__fini_array_start, __fini_array_end): Declare weak references.

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

6 years agoFix trampoline execution failures on GCN5.
ams [Wed, 22 May 2019 22:14:02 +0000 (22:14 +0000)] 
Fix trampoline execution failures on GCN5.

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

gcc/
* config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.

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

6 years ago * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
jason [Wed, 22 May 2019 22:00:14 +0000 (22:00 +0000)] 
* gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.

The front end shouldn't produce a GENERIC COND_EXPR of TREE_ADDRESSABLE
type.

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

6 years ago PR c++/20408 - unnecessary code for empty struct.
jason [Wed, 22 May 2019 21:39:08 +0000 (21:39 +0000)] 
PR c++/20408 - unnecessary code for empty struct.

Here initializing the argument from a TARGET_EXPR isn't an empty class
copy even though the type is !TREE_ADDRESSABLE, so we should check
simple_empty_class_p.

* call.c (build_call_a): Use simple_empty_class_p.

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

6 years agoPR libstdc++/77691 fix resource_adaptor failures due to max_align_t bugs
redi [Wed, 22 May 2019 20:29:39 +0000 (20:29 +0000)] 
PR libstdc++/77691 fix resource_adaptor failures due to max_align_t bugs

Remove the hardcoded whitelist of allocators expected to return memory
aligned to alignof(max_align_t), because that doesn't work when the
platform's malloc() and GCC's max_align_t do not agree what the largest
fundamental alignment is. It's also sub-optimal for user-defined
allocators that return memory suitable for any fundamental alignment.

Instead use a hardcoded list of alignments that are definitely supported
by the platform malloc, and use a copy of the allocator rebound to a POD
type with the requested alignment. Only allocate an oversized
buffer to use with std::align for alignments larger than any of the
hardcoded values.

For 32-bit Solaris x86 do not include alignof(max_align_t) in the
hardcoded values.

PR libstdc++/77691
* include/experimental/memory_resource: Add system header pragma.
(__resource_adaptor_common::__guaranteed_alignment): Remove.
(__resource_adaptor_common::_Types)
(__resource_adaptor_common::__new_list)
(__resource_adaptor_common::_New_list)
(__resource_adaptor_common::_Alignments)
(__resource_adaptor_common::_Fund_align_types): New utilities for
creating a list of types with fundamental alignments.
(__resource_adaptor_imp::do_allocate): Call new _M_allocate function.
(__resource_adaptor_imp::do_deallocate): Call new _M_deallocate
function.
(__resource_adaptor_imp::_M_allocate): New function that first tries
to use an allocator rebound to a type with a fundamental alignment.
(__resource_adaptor_imp::_M_deallocate): Likewise for deallocation.
* testsuite/experimental/memory_resource/new_delete_resource.cc:
Adjust expected allocation sizes.
* testsuite/experimental/memory_resource/resource_adaptor.cc: Remove
xfail.

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

6 years ago PR c++/86485 - simple_empty_class_p
jason [Wed, 22 May 2019 19:48:05 +0000 (19:48 +0000)] 
PR c++/86485 - simple_empty_class_p

Yet another tweak that would have fixed this bug: we should treat INIT_EXPR
and MODIFY_EXPR differently for determining whether this is a simple empty
class copy, since a TARGET_EXPR on the RHS is direct initialization if
INIT_EXPR but copy if MODIFY_EXPR.

* cp-gimplify.c (simple_empty_class_p): Also true for MODIFY_EXPR.

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

6 years ago * gcc.target/i386/vect-signbitf.c (dg-final): Improve
uros [Wed, 22 May 2019 19:15:33 +0000 (19:15 +0000)] 
* gcc.target/i386/vect-signbitf.c (dg-final): Improve
scan-assembler-not string to avoid false matching on 32bit targets.

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

6 years agox86: Don't allocate stack frame nor align stack if not needed
hjl [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.

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

6 years ago * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
uros [Wed, 22 May 2019 18:40:58 +0000 (18:40 +0000)] 
* config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.

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

6 years ago[aarch64] Introduce flags for SVE2.
matmal01 [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.

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

6 years agoFix new coarray failures.
ams [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.

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

6 years agoFix fortran size_type_node parameter passing.
ams [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.

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

6 years agofortran/89100: Default widths with -fdec-format-defaults
jb [Wed, 22 May 2019 11:56:01 +0000 (11:56 +0000)] 
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.

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

6 years ago2019-05-22 Richard Biener <rguenther@suse.de>
rguenth [Wed, 22 May 2019 11:52:19 +0000 (11:52 +0000)] 
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.

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

6 years agoDo not use quotes in tests (PR testsuite/90564).
marxin [Wed, 22 May 2019 09:35:39 +0000 (09:35 +0000)] 
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.

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

6 years agoFix wrong escaping of brackets (PR testsuite/90564).
marxin [Wed, 22 May 2019 08:25:07 +0000 (08:25 +0000)] 
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.

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

6 years ago2019-05-22 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Wed, 22 May 2019 08:23:07 +0000 (08:23 +0000)] 
2019-05-22  Paolo Carlini  <paolo.carlini@oracle.com>

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

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

6 years ago2019-05-22 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Wed, 22 May 2019 08:16:08 +0000 (08:16 +0000)] 
2019-05-22  Paolo Carlini  <paolo.carlini@oracle.com>

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

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

6 years agodarwin, testsuite fix PR27221
iains [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.

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

6 years agoStrip target_clones in copy attribute (PR lto/90500).
marxin [Wed, 22 May 2019 07:45:17 +0000 (07:45 +0000)] 
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.

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

6 years ago2019-05-22 Richard Biener <rguenther@suse.de>
rguenth [Wed, 22 May 2019 07:44:24 +0000 (07:44 +0000)] 
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.

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

6 years ago2019-05-22 Richard Biener <rguenther@suse.de>
rguenth [Wed, 22 May 2019 07:26:32 +0000 (07:26 +0000)] 
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.

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

6 years ago[RS6000] Don't pass -many to the assembler
amodra [Wed, 22 May 2019 04:34:26 +0000 (04:34 +0000)] 
[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.

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

6 years ago PR middle-end/90553
hp [Wed, 22 May 2019 00:43:23 +0000 (00:43 +0000)] 
PR middle-end/90553
* gcc.dg/torture/pr90553.c: New test.

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

6 years ago PR middle-end/90553
hp [Wed, 22 May 2019 00:35:32 +0000 (00:35 +0000)] 
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.

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

6 years agoIn <https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01417.html>:
hp [Wed, 22 May 2019 00:30:42 +0000 (00:30 +0000)] 
In <https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01417.html>:
...a change introduced in r94104 where BITS_PER_WORD was chosen
perhaps 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.

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

6 years agoDaily bump.
gccadmin [Wed, 22 May 2019 00:16:22 +0000 (00:16 +0000)] 
Daily bump.

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

6 years ago/cp
paolo [Tue, 21 May 2019 23:11:26 +0000 (23:11 +0000)] 
/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.

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

6 years ago/cp
paolo [Tue, 21 May 2019 22:26:42 +0000 (22:26 +0000)] 
/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.

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

6 years ago/cp
paolo [Tue, 21 May 2019 22:26:10 +0000 (22:26 +0000)] 
/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.

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

6 years agoLWG 3062 - Unnecessary decay_t in is_execution_policy_v
rodgertq [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.

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

6 years agors6000: wz -> d+p7
segher [Tue, 21 May 2019 22:08:20 +0000 (22:08 +0000)] 
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.

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

6 years agors6000: wl -> d+p6
segher [Tue, 21 May 2019 22:07:19 +0000 (22:07 +0000)] 
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.

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

6 years agors6000: wm -> wa+p8v
segher [Tue, 21 May 2019 22:06:25 +0000 (22:06 +0000)] 
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.

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

6 years agors6000: wk -> ws+p8v
segher [Tue, 21 May 2019 22:05:25 +0000 (22:05 +0000)] 
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.

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

6 years agors6000: wj -> wi+p8v
segher [Tue, 21 May 2019 22:04:41 +0000 (22:04 +0000)] 
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.

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

6 years agors6000: wh -> d+p8v
segher [Tue, 21 May 2019 22:03:37 +0000 (22:03 +0000)] 
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.

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

6 years ago DR 1940 - static_assert in anonymous unions.
mpolacek [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.

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

6 years ago PR target/90547
uros [Tue, 21 May 2019 17:57:11 +0000 (17:57 +0000)] 
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.

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

6 years agopreserve more debug stmts in gimple jump threading
aoliva [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.

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

6 years agoFix dg-require-* syntax
ro [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.

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

6 years agodarwin, testsuite - fix PR 67958
iains [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.

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

6 years agodarwin, testsuite - fix PR 63891.
iains [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.

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

6 years ago * config/i386/sse.md (VF1_AVX2): New mode iterator.
uros [Tue, 21 May 2019 16:00:37 +0000 (16:00 +0000)] 
* config/i386/sse.md (VF1_AVX2): New mode iterator.
(signbit<mode>2): New expander

testsuite/ChangeLog:

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

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

6 years ago PR bootstrap/87338
law [Tue, 21 May 2019 15:42:00 +0000 (15:42 +0000)] 
PR bootstrap/87338
* dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.

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

6 years ago[C++ PATCH] Using decls
nathan [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.

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

6 years ago * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
uros [Tue, 21 May 2019 15:17:57 +0000 (15:17 +0000)] 
* config/i386/cpuid.h (__cpuid): For 32bit targets, zero
%ebx and %ecx bafore calling cpuid with leaf 1 or
non-constant leaf argument.

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

6 years agolibfortran/90038: Document new wait=.false. implementation
jb [Tue, 21 May 2019 15:17:44 +0000 (15:17 +0000)] 
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.

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

6 years ago[C++ PATCH] Using decls
nathan [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.

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

6 years agoPR libstdc++/90252 fix effective-target check for TBB
redi [Tue, 21 May 2019 13:50:41 +0000 (13:50 +0000)] 
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.

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

6 years agoFix names of _Lock_policy constants in libstdc++ manual
redi [Tue, 21 May 2019 13:50:35 +0000 (13:50 +0000)] 
Fix names of _Lock_policy constants in libstdc++ manual

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

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

6 years agoPR90545, gcc.target/powerpc/fold-vec-splats-floatdouble.c fails
amodra [Tue, 21 May 2019 13:36:04 +0000 (13:36 +0000)] 
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.

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

6 years ago2019-05-21 Richard Biener <rguenther@suse.de>
rguenth [Tue, 21 May 2019 12:01:00 +0000 (12:01 +0000)] 
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.

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

6 years agoAdd missing "" for dg-require-ifunc.
marxin [Tue, 21 May 2019 11:07:00 +0000 (11:07 +0000)] 
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.

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

6 years agoDon't split non-critical edges in crited
vlad [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.

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

6 years agotree-ssa-uninit: suppress more spurious warnings
vlad [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.

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

6 years agocontrib/mklog: Open files in text mode
jb [Tue, 21 May 2019 08:37:05 +0000 (08:37 +0000)] 
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.

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

6 years agoEnable -O2 for pr90263.c test.
marxin [Tue, 21 May 2019 07:33:41 +0000 (07:33 +0000)] 
Enable -O2 for pr90263.c test.

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

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

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

6 years agoc-family/
ebotcazou [Tue, 21 May 2019 07:00:45 +0000 (07:00 +0000)] 
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.

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

6 years agoConvert contrib/mklog script to Python 3
jb [Tue, 21 May 2019 06:59:16 +0000 (06:59 +0000)] 
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.

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

6 years agofix diagnostic quoting/spelling in rs6000
marxin [Tue, 21 May 2019 06:55:56 +0000 (06:55 +0000)] 
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.

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