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,  9 Nov 2023 13:02:58 +0000 (GMT)	[thread overview]
Message-ID: <20231109130258.16A91385DC17@sourceware.org> (raw)

https://gcc.gnu.org/g:98219d2638765a521c7ab61c7d9559ccba0cf4b4

commit 98219d2638765a521c7ab61c7d9559ccba0cf4b4
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 1bf71ce47a8..5ebe045c593 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -16357,6 +16357,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 f1202abc00d..d0b7a6d770b 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 ee89f47c468..0ca675ad47c 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -12882,6 +12882,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-09 13:02 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-09 13:02 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-02 13:59 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=20231109130258.16A91385DC17@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).