public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Richard Biener <rguenth@gcc.gnu.org>
To: gcc-cvs@gcc.gnu.org
Subject: [gcc(refs/users/rguenth/heads/vect-force-slp)] Fail vectorization when not SLP with --param vect-force-slp=1
Date: Thu,  2 Nov 2023 13:59:10 +0000 (GMT)	[thread overview]
Message-ID: <20231102135910.54FCF385770B@sourceware.org> (raw)

https://gcc.gnu.org/g:b4cc3c4df162551cc26a69a656d75e7f14791ff0

commit b4cc3c4df162551cc26a69a656d75e7f14791ff0
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Aug 23 10:48:32 2023 +0200

    Fail vectorization when not SLP with --param vect-force-slp=1
    
    The following adds --param vect-force-slp allowing to indicate failure
    when not all stmts participating in loop vectorization are using
    SLP vectorization.
    
    This is intended for transitioning and debugging.
    
    Enabling this without further changes results in the following
    within vect.exp on x86_64
    
                    === g++ Summary ===
    
    -# of expected passes           619
    +# of expected passes           546
    +# of unexpected failures       73
    
                    === gcc Summary ===
    
    -# of expected passes           8835
    -# of expected failures         256
    +# of expected passes           7271
    +# of unexpected failures       1564
    +# of unexpected successes      12
    +# of expected failures         244
    
                    === gfortran Summary ===
    
    -# of expected passes           171
    +# of expected passes           144
    +# of unexpected failures       27
    
            * params.opt (-param=vect-force-slp=): New, default to 0.
            * doc/invoke.texi (--param vect-force-slp): Document.
            * tree-vect-stmts.cc (vect_analyze_stmt): With
            --param vect-force-slp=1 fail vectorization when not using SLP.

Diff:
---
 gcc/doc/invoke.texi    | 4 ++++
 gcc/params.opt         | 4 ++++
 gcc/tree-vect-stmts.cc | 6 ++++++
 3 files changed, 14 insertions(+)

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 6e776a0faa19..84b60c4c2508 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -16336,6 +16336,10 @@ this parameter.  The default value of this parameter is 50.
 @item vect-induction-float
 Enable loop vectorization of floating point inductions.
 
+@item vect-force-slp
+Fail vectorization when falling back to non-SLP.  This is intended for
+debugging only.
+
 @item vrp-sparse-threshold
 Maximum number of basic blocks before VRP uses a sparse bitmap cache.
 
diff --git a/gcc/params.opt b/gcc/params.opt
index f1202abc00d0..d0b7a6d770b0 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
@@ -1191,6 +1191,10 @@ The maximum factor which the loop vectorizer applies to the cost of statements i
 Common Joined UInteger Var(param_vect_induction_float) Init(1) IntegerRange(0, 1) Param Optimization
 Enable loop vectorization of floating point inductions.
 
+-param=vect-force-slp=
+Common Joined UInteger Var(param_vect_force_slp) Init(0) IntegerRange(0, 1) Param Optimization
+Fail vectorization when falling back to non-SLP.
+
 -param=vrp-sparse-threshold=
 Common Joined UInteger Var(param_vrp_sparse_threshold) Init(3000) Optimization Param
 Maximum number of basic blocks before VRP uses a sparse bitmap cache.
diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index 799b4ab10c7f..74daf0f2d45b 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -12896,6 +12896,12 @@ vect_analyze_stmt (vec_info *vinfo,
       return opt_result::success ();
     }
 
+  if (param_vect_force_slp && !node)
+    return opt_result::failure_at (stmt_info->stmt,
+				   "not vectorized:"
+				   " not part of SLP but SLP forced: %G",
+				   stmt_info->stmt);
+
   ok = true;
   if (!bb_vinfo
       && (STMT_VINFO_RELEVANT_P (stmt_info)

             reply	other threads:[~2023-11-02 13:59 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-02 13:59 Richard Biener [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-05-13 14:26 Richard Biener
2024-02-23  7:31 Richard Biener
2023-11-09 13:02 Richard Biener
2023-10-19 13:28 Richard Biener
2023-10-16 12:49 Richard Biener
2023-10-06  7:06 Richard Biener

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231102135910.54FCF385770B@sourceware.org \
    --to=rguenth@gcc.gnu.org \
    --cc=gcc-cvs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).