public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/rguenth/heads/vect-force-slp)] Fail vectorization when not SLP with --param vect-force-slp=1
@ 2023-10-19 13:28 Richard Biener
0 siblings, 0 replies; 6+ messages in thread
From: Richard Biener @ 2023-10-19 13:28 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:f69b6117acae4780b2fafeeddfe58301e048fb6b
commit f69b6117acae4780b2fafeeddfe58301e048fb6b
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 16c458431236..df0ba530606e 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -16312,6 +16312,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 fffa8b1bc64d..ae2fa54fc589 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
@@ -1183,6 +1183,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 ee5f56bbbdaf..4ccb929c532d 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -12735,6 +12735,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)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [gcc(refs/users/rguenth/heads/vect-force-slp)] Fail vectorization when not SLP with --param vect-force-slp=1
@ 2024-02-23 7:31 Richard Biener
0 siblings, 0 replies; 6+ messages in thread
From: Richard Biener @ 2024-02-23 7:31 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:e5d482cbd046c89325670e2675f18b15c9214ca3
commit e5d482cbd046c89325670e2675f18b15c9214ca3
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 4f4ca2b76720..11a8a9cea73b 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -16694,6 +16694,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 5eb045b2e6cf..e1848e6cc2af 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
@@ -1198,6 +1198,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 1dbe1115da4d..ab1600e7d51f 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -13221,6 +13221,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)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [gcc(refs/users/rguenth/heads/vect-force-slp)] Fail vectorization when not SLP with --param vect-force-slp=1
@ 2023-11-09 13:02 Richard Biener
0 siblings, 0 replies; 6+ messages in thread
From: Richard Biener @ 2023-11-09 13:02 UTC (permalink / raw)
To: gcc-cvs
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)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [gcc(refs/users/rguenth/heads/vect-force-slp)] Fail vectorization when not SLP with --param vect-force-slp=1
@ 2023-11-02 13:59 Richard Biener
0 siblings, 0 replies; 6+ messages in thread
From: Richard Biener @ 2023-11-02 13:59 UTC (permalink / raw)
To: gcc-cvs
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)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [gcc(refs/users/rguenth/heads/vect-force-slp)] Fail vectorization when not SLP with --param vect-force-slp=1
@ 2023-10-16 12:49 Richard Biener
0 siblings, 0 replies; 6+ messages in thread
From: Richard Biener @ 2023-10-16 12:49 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:8e15af61ade7bcd8239125904e02f3cfdc445e91
commit 8e15af61ade7bcd8239125904e02f3cfdc445e91
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 eb714d18511d..092948600549 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -16297,6 +16297,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 fffa8b1bc64d..ae2fa54fc589 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
@@ -1183,6 +1183,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 b3a56498595d..527c333544d3 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -12751,6 +12751,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)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [gcc(refs/users/rguenth/heads/vect-force-slp)] Fail vectorization when not SLP with --param vect-force-slp=1
@ 2023-10-06 7:06 Richard Biener
0 siblings, 0 replies; 6+ messages in thread
From: Richard Biener @ 2023-10-06 7:06 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:634772b714a4adf9771fc3ef99c4a47b216575fd
commit 634772b714a4adf9771fc3ef99c4a47b216575fd
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 23083467d47..46dd00f220b 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -16291,6 +16291,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 fffa8b1bc64..ae2fa54fc58 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
@@ -1183,6 +1183,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 cd7c1090d88..830375dd0c4 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -12452,6 +12452,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)
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-02-23 7:31 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-19 13:28 [gcc(refs/users/rguenth/heads/vect-force-slp)] Fail vectorization when not SLP with --param vect-force-slp=1 Richard Biener
-- strict thread matches above, loose matches on Subject: below --
2024-02-23 7:31 Richard Biener
2023-11-09 13:02 Richard Biener
2023-11-02 13:59 Richard Biener
2023-10-16 12:49 Richard Biener
2023-10-06 7:06 Richard Biener
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).