Remove obsolete comment about use_thunk

2019-05-26 Thread Rainer Orth
When reviewing how this patch

[PATCH] gcc: move assemble_start_function / assemble_end_function to 
output_mi_thunk
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg00722.html

might affect Solaris, I noticed an obsolete comment

 Note that use_thunk calls assemble_start_function et al.  */

that in one form or another is present in several targets, but has been
wrong for almost 10 years when r154736 ripped out those calls to
assemble_*_function in use_thunk.

The following patch corrects this.  Bootstrapped on i386-pc-solaris2.11
and sparc-sun-solaris2.11; I didn't bother to try and build cc1 on all
other affected targets, though.

Ok for mainline?  I guess this is obvious.

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


2019-05-25  Rainer Orth  

* config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
Remove obsolete use_thunk reference.
* config/i386/i386.c (x86_output_mi_thunk): Likewise.
* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
* config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
* config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
* config/sh/sh.c (sh_output_mi_thunk): Likewise.
* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
* config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
* config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.

# HG changeset patch
# Parent  74a1aea7c39d71273fd4f28d937e03f593e92778
Remove obsolete comment about use_thunk

diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -8514,8 +8514,7 @@ alpha_output_mi_thunk_osf (FILE *file, t
 
   /* Run just enough of rest_of_compilation to get the insns emitted.
  There's not really enough bulk here to make other passes such as
- instruction scheduling worth while.  Note that use_thunk calls
- assemble_start_function and assemble_end_function.  */
+ instruction scheduling worth while.  */
   insn = get_insns ();
   shorten_branches (insn);
   assemble_start_function (thunk_fndecl, fnname);
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -19983,8 +19983,7 @@ x86_output_mi_thunk (FILE *file, tree th
 }
   emit_barrier ();
 
-  /* Emit just enough of rest_of_compilation to get the insns emitted.
- Note that use_thunk calls assemble_start_function et al.  */
+  /* Emit just enough of rest_of_compilation to get the insns emitted.  */
   insn = get_insns ();
   shorten_branches (insn);
   assemble_start_function (thunk_fndecl, fnname);
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -11033,8 +11033,7 @@ ia64_output_mi_thunk (FILE *file, tree t
 
   /* Run just enough of rest_of_compilation to get the insns emitted.
  There's not really enough bulk here to make other passes such as
- instruction scheduling worth while.  Note that use_thunk calls
- assemble_start_function and assemble_end_function.  */
+ instruction scheduling worth while.  */
 
   emit_all_insn_group_barriers (NULL);
   insn = get_insns ();
diff --git a/gcc/config/nios2/nios2.c b/gcc/config/nios2/nios2.c
--- a/gcc/config/nios2/nios2.c
+++ b/gcc/config/nios2/nios2.c
@@ -4519,8 +4519,7 @@ nios2_asm_output_mi_thunk (FILE *file, t
 
   /* Run just enough of rest_of_compilation to get the insns emitted.
  There's not really enough bulk here to make other passes such as
- instruction scheduling worth while.  Note that use_thunk calls
- assemble_start_function and assemble_end_function.  */
+ instruction scheduling worth while.  */
   insn = get_insns ();
   shorten_branches (insn);
   assemble_start_function (thunk_fndecl, fnname);
diff --git a/gcc/config/or1k/or1k.c b/gcc/config/or1k/or1k.c
--- a/gcc/config/or1k/or1k.c
+++ b/gcc/config/or1k/or1k.c
@@ -2112,8 +2112,7 @@ or1k_output_mi_thunk (FILE *file, tree t
 
   /* Run just enough of rest_of_compilation to get the insns emitted.
  There's not really enough bulk here to make other passes such as
- instruction scheduling worth while.  Note that use_thunk calls
- assemble_start_function and assemble_end_function.  */
+ instruction scheduling worth while.  */
   insn = get_insns ();
   shorten_branches (insn);
   assemble_start_function (thunk_fndecl, fnname);
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -29296,8 +29296,7 @@ rs6000_output_mi_thunk (FILE *file, tree
 
   /* Run just enough of rest_of_compilation to get the insns emitted.
  There's not really enough bulk here to make other passes such as
- 

[doc] Remove Solaris 10-only note about -mvect8-ret-in-mem

2019-05-26 Thread Rainer Orth
I noticed one more doc snippet that became obsolete with the removal of
Solaris 10 support, namely invoke.texi's description of
-mvect8-ret-in-mem.  I noticed that it mentions that the default of the
Solaris Studio compilers changed after Studio 12.1, but Studio 12.3 is
the first release to support Solaris 11, so I ripped out all the Solaris
specifics in that description since it's now VxWorks-only.

Tested with make doc/gcc.info and inspecting the result, installed on
mainline.

Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


2019-05-25  Rainer Orth  

* doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
pre-Solaris 11 referene and most Studio compiler details.

# HG changeset patch
# Parent  0268859a92383138d29f38168bb4ee57884c1bb5
Remove Solaris 10-only note about -mvect8-ret-in-mem

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -27802,12 +27802,10 @@ the system libraries and startup modules
 @item -mvect8-ret-in-mem
 @opindex mvect8-ret-in-mem
 Return 8-byte vectors in memory instead of MMX registers.  This is the
-default on Solaris@tie{}8 and 9 and VxWorks to match the ABI of the Sun
-Studio compilers until version 12.  Later compiler versions (starting
-with Studio 12 Update@tie{}1) follow the ABI used by other x86 targets, which
-is the default on Solaris@tie{}10 and later.  @emph{Only} use this option if
-you need to remain compatible with existing code produced by those
-previous compiler versions or older versions of GCC@.
+default on VxWorks to match the ABI of the Sun Studio compilers until
+version 12.  @emph{Only} use this option if you need to remain
+compatible with existing code produced by those previous compiler
+versions or older versions of GCC@.
 
 @item -mpc32
 @itemx -mpc64


New Swedish PO file for 'gcc' (version 9.1.0)

2019-05-26 Thread Translation Project Robot
Hello, gentle maintainer.

This is a message from the Translation Project robot.

A revised PO file for textual domain 'gcc' has been submitted
by the Swedish team of translators.  The file is available at:

https://translationproject.org/latest/gcc/sv.po

(This file, 'gcc-9.1.0.sv.po', has just now been sent to you in
a separate email.)

All other PO files for your package are available in:

https://translationproject.org/latest/gcc/

Please consider including all of these in your next release, whether
official or a pretest.

Whenever you have a new distribution with a new version number ready,
containing a newer POT file, please send the URL of that distribution
tarball to the address below.  The tarball may be just a pretest or a
snapshot, it does not even have to compile.  It is just used by the
translators when they need some extra translation context.

The following HTML page has been updated:

https://translationproject.org/domain/gcc.html

If any question arises, please contact the translation coordinator.

Thank you for all your work,

The Translation Project robot, in the
name of your translation coordinator.




[patch, fortran, committed] Set rank and lower bound for assumed size arguments

2019-05-26 Thread Thomas Koenig

Hello world,

in the absence of a test case for PR 90539, I'm taking a shotgun
approach: Fix something that appears strange in the debug logs
and see if this more or less accidentally fixes the problem.
If not, at least there is one fewer point to look at.

I have committed the attached patch as obvious and simple,
r271630.

Regards

Thomas

2019-05-26  Thomas Koenig  

PR fortran/90539
* trans-types.c (get_formal_from_actual_arglist): Set rank
and lower bound for assumed size arguments.
Index: trans-types.c
===
--- trans-types.c	(Revision 271376)
+++ trans-types.c	(Arbeitskopie)
@@ -3010,6 +3010,10 @@ get_formal_from_actual_arglist (gfc_symbol *sym, g
 		{
 		  s->attr.dimension = 1;
 		  s->as = gfc_get_array_spec ();
+		  s->as->rank = 1;
+		  s->as->lower[0] = gfc_get_int_expr (gfc_index_integer_kind,
+		  &a->expr->where, 1);
+		  s->as->upper[0] = NULL;
 		  s->as->type = AS_ASSUMED_SIZE;
 		}
 	}


[committed] hppa: Fix warning in pa32_fallback_frame_state

2019-05-26 Thread John David Anglin
The attached patch fixes a warning in pa32_fallback_frame_state.

Tested on hppa-unknown-linux-gnu.  Committed to gcc-9 branch and trunk.

Dave
-- 
John David Anglin  dave.ang...@bell.net

2019-05-26  John David Anglin  

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

Index: config/pa/linux-unwind.h
===
--- config/pa/linux-unwind.h(revision 271614)
+++ config/pa/linux-unwind.h(working copy)
@@ -130,7 +130,7 @@
 return _URC_END_OF_STACK;

   frame = (struct rt_sigframe *)(sp + off);
-  sc = &frame->uc.uc_mcontext;
+  sc = (struct sigcontext *)&frame->uc.uc_mcontext;

   new_cfa = sc->sc_gr[30];
   fs->regs.cfa_how = CFA_REG_OFFSET;


Re: [committed] hppa: Fix warning in pa32_fallback_frame_state

2019-05-26 Thread Andreas Schwab
On Mai 26 2019, John David Anglin  wrote:

> Index: config/pa/linux-unwind.h
> ===
> --- config/pa/linux-unwind.h  (revision 271614)
> +++ config/pa/linux-unwind.h  (working copy)
> @@ -130,7 +130,7 @@
>  return _URC_END_OF_STACK;
>
>frame = (struct rt_sigframe *)(sp + off);
> -  sc = &frame->uc.uc_mcontext;
> +  sc = (struct sigcontext *)&frame->uc.uc_mcontext;

Why is it not better to use the correct type?

Andreas.

-- 
Andreas Schwab, sch...@linux-m68k.org
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."


Make possible 'scan-tree-dump' of 'lower_omp_target' mapping kinds

2019-05-26 Thread Thomas Schwinge
Hi!

To establish some suitable testsuite coverage for a task that I'm working
on, I need to do 'scan-tree-dump' of 'lower_omp_target' mapping kinds.
Is the attached OK?

Any suggestions about whether/how to restrict the (effective?) targets
this gets run for, because no doubt there are target-specific bits at
least in the alignment chosen.  The attached test case passes for
x86_64-pc-linux-gnu with '--target_board=unix\{,-m32,-mx32\}'.  (I didn't
verify the mappings generated, but just documented the status quo.)

If approving this patch, please respond with "Reviewed-by: NAME "
so that your effort will be recorded in the commit log, see
.


Grüße
 Thomas


From ba19ef0d5aebf2604e6625d1cca81fc477801966 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge 
Date: Sun, 26 May 2019 18:33:26 +0200
Subject: [PATCH] Make possible 'scan-tree-dump' of 'lower_omp_target' mapping
 kinds

	gcc/
	* omp-low.c (lower_omp_target): Dump mapping kinds.
	gcc/testsuite/
	* c-c++-common/gomp/lower_omp_target-mappings-1.c: New file.
---
 gcc/omp-low.c | 103 +++---
 .../gomp/lower_omp_target-mappings-1.c|  49 +
 2 files changed, 136 insertions(+), 16 deletions(-)
 create mode 100644 gcc/testsuite/c-c++-common/gomp/lower_omp_target-mappings-1.c

diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index faab5d384280..79468289d88f 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -9218,15 +9218,23 @@ lower_omp_taskreg (gimple_stmt_iterator *gsi_p, omp_context *ctx)
 static void
 lower_omp_target (gimple_stmt_iterator *gsi_p, omp_context *ctx)
 {
+  pretty_printer pp;
   tree clauses;
   tree child_fn, t, c;
   gomp_target *stmt = as_a  (gsi_stmt (*gsi_p));
   gbind *tgt_bind, *bind, *dep_bind = NULL;
   gimple_seq tgt_body, olist, ilist, fplist, new_body;
   location_t loc = gimple_location (stmt);
+  const char *loc_str = NULL;
   bool offloaded, data_region;
   unsigned int map_cnt = 0;
 
+  if (dump_file && (dump_flags & TDF_DETAILS))
+{
+  dump_location (&pp, loc);
+  loc_str = pp_formatted_text (&pp);
+}
+
   offloaded = is_gimple_omp_offloaded (stmt);
   switch (gimple_omp_target_kind (stmt))
 {
@@ -9687,7 +9695,8 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, omp_context *ctx)
 	if (TREE_CODE (s) != INTEGER_CST)
 	  TREE_STATIC (TREE_VEC_ELT (t, 1)) = 0;
 
-	unsigned HOST_WIDE_INT tkind, tkind_zero;
+	unsigned HOST_WIDE_INT tkind, tkind_align;
+	unsigned HOST_WIDE_INT tkind_zero, tkind_zero_align;
 	switch (OMP_CLAUSE_CODE (c))
 	  {
 	  case OMP_CLAUSE_MAP:
@@ -9743,25 +9752,43 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, omp_context *ctx)
  < (HOST_WIDE_INT_C (1U) << talign_shift));
 	gcc_checking_assert (tkind_zero
  < (HOST_WIDE_INT_C (1U) << talign_shift));
-	talign = ceil_log2 (talign);
-	tkind |= talign << talign_shift;
-	tkind_zero |= talign << talign_shift;
-	gcc_checking_assert (tkind
+	{
+	  unsigned int talign2 = ceil_log2 (talign);
+	  tkind_align = tkind | (talign2 << talign_shift);
+	  tkind_zero_align = tkind_zero | (talign2 << talign_shift);
+	}
+	gcc_checking_assert (tkind_align
  <= tree_to_uhwi (TYPE_MAX_VALUE (tkind_type)));
-	gcc_checking_assert (tkind_zero
+	gcc_checking_assert (tkind_zero_align
  <= tree_to_uhwi (TYPE_MAX_VALUE (tkind_type)));
-	if (tkind == tkind_zero)
-	  x = build_int_cstu (tkind_type, tkind);
+	if (tkind_align == tkind_zero_align)
+	  x = build_int_cstu (tkind_type, tkind_align);
 	else
 	  {
 		TREE_STATIC (TREE_VEC_ELT (t, 2)) = 0;
 		x = build3 (COND_EXPR, tkind_type,
 			fold_build2 (EQ_EXPR, boolean_type_node,
 	 unshare_expr (s), size_zero_node),
-			build_int_cstu (tkind_type, tkind_zero),
-			build_int_cstu (tkind_type, tkind));
+			build_int_cstu (tkind_type, tkind_zero_align),
+			build_int_cstu (tkind_type, tkind_align));
 	  }
 	CONSTRUCTOR_APPEND_ELT (vkind, purpose, x);
+
+	if (dump_file && (dump_flags & TDF_DETAILS))
+	  {
+		fprintf (dump_file, "Mapping %s%s [%u] '",
+			 loc_str,
+			 IDENTIFIER_POINTER (DECL_NAME (ctx->cb.dst_fn)),
+			 (unsigned int) tree_to_uhwi (purpose));
+		print_generic_expr (dump_file, ovar, dump_flags);
+		fprintf (dump_file, "': size = ");
+		print_generic_expr (dump_file, s, dump_flags);
+		fprintf (dump_file, ", kind = %u/%u, align = %u\n",
+			 (unsigned int) tkind,
+			 (unsigned int) tkind_zero,
+			 talign);
+	  }
+
 	if (nc && nc != c)
 	  c = nc;
 	break;
@@ -9826,12 +9853,29 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, omp_context *ctx)
 
 	gcc_checking_assert (tkind
  < (HOST_WIDE_INT_C (1U) << talign_shift));
-	talign = ceil_log2 (talign);
-	tkind |= talign << talign_shift;
-	gcc_checking_assert (tkind
+	{
+	  unsigned int talign2 = ceil_log2 (talign);
+	  tkind_align = tkind | (talign2 << talign_shift);

Re: Incremental LTO linking part 7: documentation

2019-05-26 Thread Gerald Pfeifer
On Tue, 8 May 2018, Jan Hubicka wrote:
> this patch adds documentation of -flinker-output.
> 
>   * doc/invoke.texi (-flinker-output): Document

I found a follow-up patch to this in a local tree that had been
sitting there for a while, had a another look, and now committed
it.

Sandra, if you could have another pass that would be really good;
I'm sure you'll be able to further improve.

Gerald

2019-05-26  Gerald Pfeifer  

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

Index: doc/invoke.texi
===
--- doc/invoke.texi (revision 271632)
+++ doc/invoke.texi (working copy)
@@ -13141,44 +13141,48 @@ Options}.
 
 @item -flinker-output=@var{type}
 @opindex flinker-output
-This option controls the code generation of the link time optimizer.  By
-default the linker output is determined by the linker plugin automatically. For
-debugging the compiler and in the case of incremental linking to non-lto object
-file is desired, it may be useful to control the type manually.
+This option controls code generation of the link time optimizer.  By
+default the linker output is automatically determined by the linker
+plugin.  For debugging the compiler and if incremental linking with a 
+non-LTO object file is desired, it may be useful to control the type
+manually.
 
-If @var{type} is @samp{exec} the code generation is configured to produce 
static
-binary. In this case @option{-fpic} and @option{-fpie} are both disabled.
+If @var{type} is @samp{exec} code generation produces a static
+binary. In this case @option{-fpic} and @option{-fpie} are both
+disabled.
 
-If @var{type} is @samp{dyn} the code generation is configured to produce shared
-library. In this case @option{-fpic} or @option{-fPIC} is preserved, but not
-enabled automatically.  This makes it possible to build shared libraries 
without
-position independent code on architectures this is possible, i.e.@: on x86.
+If @var{type} is @samp{dyn} code generation produces a shared
+library.  In this case @option{-fpic} or @option{-fPIC} is preserved,
+but not enabled automatically.  This allows to build shared libraries
+without position independent code on architectures where this is
+possible, i.e.@: on x86.
 
-If @var{type} is @samp{pie} the code generation is configured to produce
-@option{-fpie} executable. This result in similar optimizations as @samp{exec}
-except that @option{-fpie} is not disabled if specified at compilation time.
+If @var{type} is @samp{pie} code generation produces an @option{-fpie}
+executable. This results in similar optimizations as @samp{exec}
+except that @option{-fpie} is not disabled if specified at compilation
+time.
 
 If @var{type} is @samp{rel} the compiler assumes that incremental linking is
 done.  The sections containing intermediate code for link-time optimization are
 merged, pre-optimized, and output to the resulting object file. In addition, if
 @option{-ffat-lto-objects} is specified the binary code is produced for future
-non-lto linking. The object file produced by incremental linking will be 
smaller
-than a static library produced from the same object files.  At link-time the
+non-LTO linking. The object file produced by incremental linking will be 
smaller
+than a static library produced from the same object files.  At link time the
 result of incremental linking will also load faster to compiler than a static
-library assuming that majority of objects in the library are used.
+library assuming that the majority of objects in the library are used.
 
-Finally @samp{nolto-rel} configure compiler to for incremental linking where
-code generation is forced, final binary is produced and the intermediate code
-for later link-time optimization is stripped. When multiple object files are
-linked together the resulting code will be optimized better than with link time
-optimizations disabled (for example, the cross-module inlining will happen),
-most of benefits of whole program optimizations are however lost. 
+Finally @samp{nolto-rel} configures the compiler for incremental linking where
+code generation is forced, a final binary is produced and the intermediate
+code for later link-time optimization is stripped. When multiple object files
+are linked together the resulting code will be optimized better than with
+link-time optimizations disabled (for example, cross-module inlining will
+happen), most of benefits of whole program optimizations are however lost. 
 
 During the incremental link (by @option{-r}) the linker plugin will default to
 @option{rel}. With current interfaces to GNU Binutils it is however not
-possible to link incrementally LTO objects and non-LTO objects into a single
+possible to incrementally link LTO objects and non-LTO objects into a single
 mixed object file.  In the case any of object files in incremental link cannot
-be used for link-time optimization the linker plugin will

Re: [gomp] Add langhook, so that Fortran can privatize variables by reference

2019-05-26 Thread Thomas Schwinge
Hi!

On Tue, 18 Oct 2005 03:01:40 -0400, Jakub Jelinek  wrote:
> --- gcc/omp-low.c.jj  2005-10-15 12:00:06.0 +0200
> +++ gcc/omp-low.c 2005-10-18 08:46:23.0 +0200
> @@ -126,7 +126,7 @@ is_variable_sized (tree expr)
>  static inline bool
>  is_reference (tree decl)
>  {
> -  return TREE_CODE (TREE_TYPE (decl)) == REFERENCE_TYPE;
> +  return lang_hooks.decls.omp_privatize_by_reference (decl);
>  }

With the same implementation, this function nowadays is known as
'omp_is_reference' ('gcc/omp-general.c'), and is used in 'omp-*' files
only.  The gimplifier directly calls
'lang_hooks.decls.omp_privatize_by_reference'.

Will it be OK to commit the obvious patch to get rid of the
'omp_is_reference' function?  Whenever I see it used in 'omp-*' files, I
wonder and have to look up what special things it might be doing -- but
it actually isn't.

gcc/
* omp-general.c (omp_is_reference): Don't define.  Adjust all users.


Grüße
 Thomas


signature.asc
Description: PGP signature


[libstdc++,doc] doc/xml/manual/support.xml - link adjustment and simplification

2019-05-26 Thread Gerald Pfeifer
The links adjustment I would just have committed right away, but
I'd also like to suggest swe simplify the section: the following
paragraph doesn't really add much, but duplicates the external
link.

Thoughts?

Gerald

2019-05-26  Gerald Pfeifer  

* doc/xml/manual/support.xml: Adjust link to www.aristeia.com.
Shorten the section a bit.

Index: doc/xml/manual/support.xml
===
--- doc/xml/manual/support.xml  (revision 271632)
+++ doc/xml/manual/support.xml  (working copy)
@@ -170,7 +170,7 @@
 
 
 In his book http://www.w3.org/1999/xlink";
-  xlink:href="http://www.aristeia.com/books.html";>Effective
+  xlink:href="https://www.aristeia.com/books.html";>Effective
   C++, Scott Meyers points out that the best way
 to solve this problem is to not overload on pointer-vs-integer
 types to begin with.  He also offers a way to make your own magic
@@ -177,11 +177,6 @@
 NULL that will match pointers before it
 matches integers.
 
-See the
-  http://www.w3.org/1999/xlink";
-  xlink:href="http://www.aristeia.com/books.html";>Effective
-  C++ CD example.
-
   
 
 


[wwwdocs,Fortran] adjust ftncheck reference in readings.html

2019-05-26 Thread Gerald Pfeifer
Committed.

(This is really just changing http to https plus reformatting of
this paragraph to avoid overly long lines.)

Gerald

Index: readings.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/readings.html,v
retrieving revision 1.310
diff -u -r1.310 readings.html
--- readings.html   3 Dec 2018 17:20:20 -   1.310
+++ readings.html   26 May 2019 17:48:43 -
@@ -447,9 +447,9 @@
   
   
 Test suite of
-http://www.dsm.fordham.edu/~ftnchek/";>ftnchek, included in
-its distribution. It contains some illegal code and therefore makes it
-possible to stress the compiler error handling.
+https://www.dsm.fordham.edu/~ftnchek/";>ftnchek,
+included in its distribution. It contains some illegal code and
+therefore makes it possible to stress the compiler error handling.
   
   
 http://flibs.sourceforge.net";>Checking


[PATCH, Darwin, X86, testsuite] Amend scan-asms on three PIE tests.

2019-05-26 Thread Iain Sandoe
Darwin requires PIC code in order to support PIE.
Amend the test scan-asms to match this.

tested on x86_64-darwin16 and x86_64-linux-gnu 
(--target_board=unix\{-m32,-m64\}\{,-fpic\})
aplied to mainline,
thanks
Iain

2019-05-26  Iain Sandoe  

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

diff --git a/gcc/testsuite/gcc.target/i386/pr39013-1.c 
b/gcc/testsuite/gcc.target/i386/pr39013-1.c
index ac22746..78b1702 100644
--- a/gcc/testsuite/gcc.target/i386/pr39013-1.c
+++ b/gcc/testsuite/gcc.target/i386/pr39013-1.c
@@ -12,5 +12,9 @@ main (void)
   return foo () + bar ();
 }
 
-/* { dg-final { scan-assembler "foo@PLT" } } */
-/* { dg-final { scan-assembler "bar@PLT" } } */
+/* { dg-final { scan-assembler "foo@PLT" { target { ! *-*-darwin* } } } } */
+/* { dg-final { scan-assembler "bar@PLT" { target { ! *-*-darwin* } } } } */
+
+/* Darwin's dynamic linker does PIE without indirection.  */
+/* { dg-final { scan-assembler {call[ \t]_foo} { target *-*-darwin* } } } */
+/* { dg-final { scan-assembler {call[ \t]_bar} { target *-*-darwin* } } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr39013-2.c 
b/gcc/testsuite/gcc.target/i386/pr39013-2.c
index 3040d81..f441290 100644
--- a/gcc/testsuite/gcc.target/i386/pr39013-2.c
+++ b/gcc/testsuite/gcc.target/i386/pr39013-2.c
@@ -12,5 +12,9 @@ main (void)
   return foo () + bar ();
 }
 
-/* { dg-final { scan-assembler "foo@PLT" } } */
-/* { dg-final { scan-assembler "bar@PLT" } } */
+/* { dg-final { scan-assembler "foo@PLT" { target { ! *-*-darwin* } } } } */
+/* { dg-final { scan-assembler "bar@PLT" { target { ! *-*-darwin* } } } } */
+
+/* Darwin's dynamic linker does PIE without indirection.  */
+/* { dg-final { scan-assembler {call[ \t]_foo} { target *-*-darwin* } } } */
+/* { dg-final { scan-assembler {call[ \t]_bar} { target *-*-darwin* } } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr64317.c 
b/gcc/testsuite/gcc.target/i386/pr64317.c
index 9e13da6..3fbdccd 100644
--- a/gcc/testsuite/gcc.target/i386/pr64317.c
+++ b/gcc/testsuite/gcc.target/i386/pr64317.c
@@ -2,9 +2,14 @@
 /* { dg-require-effective-target ia32 } */
 /* { dg-require-effective-target pie } */
 /* { dg-options "-O2 -fpie" } */
-/* { dg-final { scan-assembler "addl\[ \\t\]+\[$\]_GLOBAL_OFFSET_TABLE_, %ebx" 
} } */
-/* { dg-final { scan-assembler "movl\[ \\t\]+c@GOTOFF\[(\]%ebx\[)\]" } } */
-/* { dg-final { scan-assembler-not "movl\[ \\t\]+\[0-9]+\[(\]%esp\[)\], %ebx" 
} } */
+/* { dg-final { scan-assembler "addl\[ \\t\]+\[$\]_GLOBAL_OFFSET_TABLE_, %ebx" 
{ target { ! *-*-darwin* } } } } */
+/* { dg-final { scan-assembler "movl\[ \\t\]+c@GOTOFF\[(\]%ebx\[)\]" { target 
{ ! *-*-darwin* } } } } */
+/* { dg-final { scan-assembler-not "movl\[ \\t\]+\[0-9]+\[(\]%esp\[)\], %ebx" 
{ target { ! *-*-darwin* } } } } */
+
+/* Check PIC access to c and t1 on Darwin (PIC is default, needed for PIE).  */
+/* { dg-final { scan-assembler {_c-L1\$pb\(%} { target *-*-darwin* } } } */
+/* { dg-final { scan-assembler {_t1.[0-9]+-L1\$pb\(%} { target *-*-darwin* } } 
} */
+
 long c = 1;
 
 int bar();



[wwwdocs] readings.html - www.adaic.org has moved to https

2019-05-26 Thread Gerald Pfeifer
Committed.

Gerald

Index: readings.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/readings.html,v
retrieving revision 1.311
diff -u -r1.311 readings.html
--- readings.html   26 May 2019 17:50:01 -  1.311
+++ readings.html   26 May 2019 19:39:10 -
@@ -532,20 +532,20 @@

  http://www.ada-auth.org/ais.html";>Ada Issues

-   http://www.adaic.org/ada-resources/standards/";>List of
+   https://www.adaic.org/ada-resources/standards/";>List of
  Ada standards (Ada Information Clearinghouse):

- http://www.adaic.org/resources/add_content/standards/05aarm/html/AA-TTL.html";>Annotated
+ https://www.adaic.org/resources/add_content/standards/05aarm/html/AA-TTL.html";>Annotated
Ada 2005 Reference Manual
- http://www.adaic.org/resources/add_content/standards/05rm/html/RM-TTL.html";>Ada 2005
+ https://www.adaic.org/resources/add_content/standards/05rm/html/RM-TTL.html";>Ada 2005
Reference Manual
- http://www.adaic.org/resources/add_content/standards/05rat/html/Rat-TTL.html";>Ada 2005
+ https://www.adaic.org/resources/add_content/standards/05rat/html/Rat-TTL.html";>Ada 2005
Rationale
- http://www.adaic.org/resources/add_content/standards/95aarm/AARM_HTML/AA-TTL.html";>
+ https://www.adaic.org/resources/add_content/standards/95aarm/AARM_HTML/AA-TTL.html";>
  Annotated Ada 95 Reference Manual
- http://www.adaic.org/resources/add_content/standards/95lrm/ARM_HTML/RM-TTL.html";>
+ https://www.adaic.org/resources/add_content/standards/95lrm/ARM_HTML/RM-TTL.html";>
  Ada 95 Reference Manual
- http://www.adaic.org/resources/add_content/standards/95rat/rat95html/rat95-contents.html";>
+ https://www.adaic.org/resources/add_content/standards/95rat/rat95html/rat95-contents.html";>
  Ada 95 Rationale
  http://archive.adaic.com/standards/83lrm/html/ada_lrm.html";>
  Ada 83 Reference Manual


[libstdc++,doc] Update pointer to C++ standard at ansi.org.

2019-05-26 Thread Gerald Pfeifer
Committed.

(I wish we had better tooling to push changes like this to older
branches more easily.)

Gerald

2019-05-26  Gerald Pfeifer  

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

Index: doc/xml/manual/appendix_contributing.xml
===
--- doc/xml/manual/appendix_contributing.xml(revision 271632)
+++ doc/xml/manual/appendix_contributing.xml(working copy)
@@ -48,7 +48,7 @@
  http://www.w3.org/1999/xlink"; 
xlink:href="https://www.ansi.org";>ANSI.
  (And if you've already registered with them you can http://www.w3.org/1999/xlink";
- 
xlink:href="https://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2fIEC+14882%3a2014";>buy
+ 
xlink:href="https://webstore.ansi.org/Standards/ISO/ISOIEC148822014";>buy
  the standard on-line.)

   


Re: [committed] hppa: Fix warning in pa32_fallback_frame_state

2019-05-26 Thread John David Anglin
On 2019-05-26 12:13 p.m., Andreas Schwab wrote:
> On Mai 26 2019, John David Anglin  wrote:
>
>> Index: config/pa/linux-unwind.h
>> ===
>> --- config/pa/linux-unwind.h (revision 271614)
>> +++ config/pa/linux-unwind.h (working copy)
>> @@ -130,7 +130,7 @@
>>  return _URC_END_OF_STACK;
>>
>>frame = (struct rt_sigframe *)(sp + off);
>> -  sc = &frame->uc.uc_mcontext;
>> +  sc = (struct sigcontext *)&frame->uc.uc_mcontext;
> Why is it not better to use the correct type?
I can't remember the full details why "struct sigcontext *" was used for the 
type of sc
but I think it was done to avoid the renaming of the fields in the mcontext_t 
type.

Dave

-- 
John David Anglin  dave.ang...@bell.net



[PATCH, i386]: Use parametrized insn pattern names

2019-05-26 Thread Uros Bizjak
No functional changes.

2019-05-26  Uroš Bizjak  

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

2019-05-26  Uroš Bizjak  

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

2019-05-26  Uroš Bizjak  

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

Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.

Committed to mainline SVN.

Uros.
Index: config/i386/i386-expand.c
===
--- config/i386/i386-expand.c   (revision 271603)
+++ config/i386/i386-expand.c   (working copy)
@@ -11067,8 +11067,8 @@ ix86_expand_builtin (tree exp, rtx target, rtx sub
op2 = copy_to_mode_reg (SImode, op2);
 
   emit_insn (fcode == IX86_BUILTIN_MONITOR 
-? ix86_gen_monitor (op0, op1, op2)
-: ix86_gen_monitorx (op0, op1, op2));
+? gen_sse3_monitor (Pmode, op0, op1, op2)
+: gen_monitorx (Pmode, op0, op1, op2));
   return 0;
 
 case IX86_BUILTIN_MWAIT:
@@ -11180,7 +11180,7 @@ ix86_expand_builtin (tree exp, rtx target, rtx sub
   op0 = expand_normal (arg0);
   if (!REG_P (op0))
op0 = ix86_zero_extend_to_Pmode (op0);
-  emit_insn (ix86_gen_clzero (op0));
+  emit_insn (gen_clzero (Pmode, op0));
   return 0;
 
 case IX86_BUILTIN_CLDEMOTE:
Index: config/i386/i386-options.c
===
--- config/i386/i386-options.c  (revision 271603)
+++ config/i386/i386-options.c  (working copy)
@@ -2552,38 +2552,12 @@ ix86_option_override_internal (bool main_args_p,
   if (!TARGET_64BIT_P (opts->x_ix86_isa_flags) && !opts->x_fla

libgo patch committed: Avoid error if WIFCONTINUED not defined

2019-05-26 Thread Ian Lance Taylor
This libgo patch avoids an unused parameter error if WIFCONTINUED is
not defined on the system.  This fixes GCC PR 90614.  Bootstrapped and
ran Go tests on x86_64-pc-linux-gnu.  Committed to trunk and GCC 9
branch.

Ian
Index: gcc/go/gofrontend/MERGE
===
--- gcc/go/gofrontend/MERGE (revision 271322)
+++ gcc/go/gofrontend/MERGE (working copy)
@@ -1,4 +1,4 @@
-54aacecc8167bfba8420cb7b245787ff80bde61b
+578c4fb6132801db8e9d11d741d2394e07c5a398
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: libgo/go/syscall/wait.c
===
--- libgo/go/syscall/wait.c (revision 271182)
+++ libgo/go/syscall/wait.c (working copy)
@@ -51,7 +51,7 @@ extern _Bool Continued (uint32_t *w)
   __asm__ (GOSYM_PREFIX "syscall.WaitStatus.Continued");
 
 _Bool
-Continued (uint32_t *w)
+Continued (uint32_t *w __attribute__ ((unused)))
 {
   return WIFCONTINUED (*w) != 0;
 }


libgo patch committed: Fix typo in USE_LIBFFI AM_CONDITIONAL

2019-05-26 Thread Ian Lance Taylor
This libgo patch corrects a typo in the USE_LIBFFI AM_CONDITIONAL in
the libgo/Makefile.am.  This only affects the case of passing
--without-libffi to configure.  This fixes GCC PR 90635.  Bootstrapped
and ran Go testsuite on x86_64-pc-linux-gnu.  Committed to mainline.

Ian
Index: gcc/go/gofrontend/MERGE
===
--- gcc/go/gofrontend/MERGE (revision 271638)
+++ gcc/go/gofrontend/MERGE (working copy)
@@ -1,4 +1,4 @@
-578c4fb6132801db8e9d11d741d2394e07c5a398
+3995d545f1e112c682753f342eaef0877551a649
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: libgo/configure.ac
===
--- libgo/configure.ac  (revision 271182)
+++ libgo/configure.ac  (working copy)
@@ -128,7 +128,7 @@ if test "$with_libffi" != no; then
 fi
 AC_SUBST(LIBFFI)
 AC_SUBST(LIBFFIINCS)
-AM_CONDITIONAL(USE_LIBFFI, test "$with_liffi" != "no")
+AM_CONDITIONAL(USE_LIBFFI, test "$with_libffi" != "no")
 
 # See if the user wants to configure without libatomic. This is useful if we 
are
 # on an architecture for which libgo does not need an atomic support library 
and


Re: Business Consultation

2019-05-26 Thread Giacomo Ascenzi
I strongly represent Sir Fu Huang CEO from Japan; I would like to discuss a 
business opportunity with you. Kindly REPLY for further details. Thanks


Re: *ping* Re: [PATCH] PR fortran/89100 Default widths for i, f and g format specifiers in format strings

2019-05-26 Thread Christophe Lyon
On Fri, 24 May 2019 at 16:25, Steve Kargl
 wrote:
>
> On Fri, May 24, 2019 at 12:33:51PM +0200, Jakub Jelinek wrote:
> > On Fri, May 24, 2019 at 11:28:34AM +0100, Mark Eggleston wrote:
> > > > FAIL: gfortran.dg/fmt_f_default_field_width_3.f90   -O   (test for
> > > > errors, line 33)
> > > > PASS: gfortran.dg/fmt_f_default_field_width_3.f90   -O  (test for 
> > > > excess errors)
> > > >
> > > > that is, it seems there's no error message generated for line 33.
> > > >
> > > > Christophe
> > > >
> > >
> > > There is no error for line 33 because it isn't included in the compilation
> > > because __GFC_REAL_16__ isn't defined. DejaGnu doesn't know this and the
> > > dg-warning directive for this line is still processed.
> > >
> > > I don't know enough about DejaGnu directives to determine whether this
> > > situation can be handled. Does anybody know how to deal with a line that 
> > > if
> > > compiled a warning message output and if not compiled there is no output?
> > >
> > > Is the easiest solution to omit the test code where kind=16?
> >
> > You can do (pseudo patch, untested):
> >  #ifdef __GFC_REAL_16__
> >   real_16 = 4.18
> > - write(buffer, fmt) ':',real_16,':' ! { dg-error "Positive width 
> > required" }
> > + write(buffer, fmt) ':',real_16,':' ! { dg-error "Positive width 
> > required" "" { target fortran_real_16 } }
> >  #endif
> >
> > Effective target fortran_real_16 should be true whenever:
> > real(kind=16) :: x
> > x = cos (x)
> > end
> > compiles and links into an executable without diagnostics.
> >
>
> Christophe, can you test Jakub's proposed fix?  If it passes,
> I'll update the other testcases.
>

Yes, it's really as simple as:
diff --git a/gcc/testsuite/gfortran.dg/fmt_f_default_field_width_3.f90
b/gcc/testsuite/gfortran.dg/fmt_f_default_field_width_3.f90
index 81ed352..b924b00 100644
--- a/gcc/testsuite/gfortran.dg/fmt_f_default_field_width_3.f90
+++ b/gcc/testsuite/gfortran.dg/fmt_f_default_field_width_3.f90
@@ -30,6 +30,6 @@ program test

 #ifdef __GFC_REAL_16__
 real_16 = 4.18
-write(buffer, fmt) ':',real_16,':' ! { dg-error "Nonnegative
width required" }
+write(buffer, fmt) ':',real_16,':' ! { dg-error "Nonnegative
width required" "" { target fortran_real_16 } }
 #endif
 end

because check_effective_target_fortran_real_16 already exists in
target-supports.exp (since 2011!)

Christophe



> --
> Steve


Re: [PATCH] Fix PR88440, enable mem* detection at -O[2s]

2019-05-26 Thread Christophe Lyon
On Thu, 23 May 2019 at 13:32, Richard Biener  wrote:
>
> On Wed, 22 May 2019, Richard Biener wrote:
>
> >
> > This enables -ftree-loop-distribute-patterns at -O[2s] and also
> > arranges cold loops to be still processed but for pattern
> > recognition to save code-size.
> >
> > Bootstrap and regtest running on x86_64-unknown-linux-gnu.
> >
> > Martin has done extensive compile-time testing on SPEC
> > identifying only a single regression I'll have a look into.
>
> The reason for the compile-time regression is the complexity
> heuristic in LRA no longer choosing "simple" algorithms and
> the LIVE problem in particular being awfully slow.
>
> Unsurprisingly testing has also revealed loads of testsuite
> fallout which I deal with in the patch as committed below.
> Sorry for any further fallout on other targets (which I do
> expect).
>

Hi 
Richard,http://people.linaro.org/~christophe.lyon/cross-validation/gcc/trunk/271588/report-build-info.html

Indeed git bisect pointed me to this commit when checking
the regressions on arm & aarch64 reported at:
http://people.linaro.org/~christophe.lyon/cross-validation/gcc/trunk/271588/report-build-info.html

Since I'm a bit later in reporting, I'm not sure you've fixed them already?
(I didn't notice follow-ups)
Looking at this patch, it seems adding -fno-tree-loop-distribute-patterns to
dg-options is the standard way of fixing the regressions?

Christophe

> Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.
>
> Richard.
>
> 2019-05-23  Richard Biener  
>
> 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.
>
> Index: gcc/opts.c
> ===
> --- gcc/opts.c  (revision 271513)
> +++ gcc/opts.c  (working copy)
> @@ -550,7 +550,7 @@ static const struct default_options defa
>  { OPT_LEVELS_3_PLUS, OPT_fpredictive_commoning, NULL, 1 },
>  { OPT_LEVELS_3_PLUS, OPT_fsplit_loops, NULL, 1 },
>  { OPT_LEVELS_3_PLUS, OPT_fsplit_paths, NULL, 1 },
> -{ OPT_LEVELS_3_PLUS, OPT_ftree_loop_distribute_patterns, NULL, 1 },
> +{ OPT_LEVELS_2_PLUS, OPT_ftree_loop_distribute_patterns, NULL, 1 },
>  { OPT_LEVELS_3_PLUS, OPT_ftree_loop_distribution, NULL, 1 },
>  { OPT_LEVELS_3_PLUS, OPT_ftree_loop_vectorize, NULL, 1 },
>  { OPT_LEVELS_3_PLUS, OPT_ftree_partial_pre, NULL, 1 },
> Index: gcc/testsuite/g++.dg/tree-ssa/pr78847.C
> ===
> --- gcc/testsuite/g++.dg/tree-ssa/pr78847.C (revision 271513)
> +++ gcc/testsuite/g++.dg/tree-ssa/pr78847.C (working copy)
> @@ -1,6 +1,6 @@
>  /* { dg-do compile } */
>  /* { dg-require-effective-target c++14 } */
> -/* { dg-options "-O3 -fdump-tree-ldist" } */
> +/* { dg-option