* [PATCH] Disable slp in loop vectorizer when cost model is very-cheap.
@ 2021-08-23 2:41 liuhongt
2021-08-23 12:10 ` Richard Sandiford
0 siblings, 1 reply; 2+ messages in thread
From: liuhongt @ 2021-08-23 2:41 UTC (permalink / raw)
To: gcc-patches; +Cc: richard.sandiford, rguenther, crazylh, hubicka
Performance impact for the commit with option:
-march=x86-64 -O2 -ftree-vectorize -fvect-cost-model=very-cheap
SPEC2017 fprate
503.bwaves_r BuildSame
507.cactuBSSN_r -0.04
508.namd_r 0.14
510.parest_r -0.54
511.povray_r 0.10
519.lbm_r BuildSame
521.wrf_r 0.64
526.blender_r -0.32
527.cam4_r 0.17
538.imagick_r 0.09
544.nab_r BuildSame
549.fotonik3d_r BuildSame
554.roms_r BuildSame
997.specrand_fr -0.09
Geometric mean: 0.02
SPEC2017 intrate
500.perlbench_r 0.26
502.gcc_r 0.21
505.mcf_r -0.09
520.omnetpp_r BuildSame
523.xalancbmk_r BuildSame
525.x264_r -0.41
531.deepsjeng_r BuildSame
541.leela_r 0.13
548.exchange2_r BuildSame
557.xz_r BuildSame
999.specrand_ir BuildSame
Geometric mean: 0.02
EEMBC: no regression, only improvement or build the same, the below is
improved benchmarks.
mp2decoddata1 7.59
mp2decoddata2 31.80
mp2decoddata3 12.15
mp2decoddata4 11.16
mp2decoddata5 11.19
mp2decoddata1 7.06
mp2decoddata2 24.12
mp2decoddata3 10.83
mp2decoddata4 10.04
mp2decoddata5 10.07
Survived regression test.
Ok for trunk?
gcc/ChangeLog:
PR tree-optimization/100089
* tree-vectorizer.c (try_vectorize_loop_1): Disable slp in
loop vectorizer when cost model is very-cheap.
---
gcc/tree-vectorizer.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index b9709a613d5..8a5b8735546 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -1033,7 +1033,10 @@ try_vectorize_loop_1 (hash_table<simduid_to_vf> *&simduid_to_vf_htab,
only non-if-converted parts took part in BB vectorization. */
if (flag_tree_slp_vectorize != 0
&& loop_vectorized_call
- && ! loop->inner)
+ && ! loop->inner
+ /* This would purely be a workaround and should be removed
+ once the PR100089 is fixed. */
+ && flag_vect_cost_model != VECT_COST_MODEL_VERY_CHEAP)
{
basic_block bb = loop->header;
bool require_loop_vectorize = false;
--
2.18.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] Disable slp in loop vectorizer when cost model is very-cheap.
2021-08-23 2:41 [PATCH] Disable slp in loop vectorizer when cost model is very-cheap liuhongt
@ 2021-08-23 12:10 ` Richard Sandiford
0 siblings, 0 replies; 2+ messages in thread
From: Richard Sandiford @ 2021-08-23 12:10 UTC (permalink / raw)
To: liuhongt; +Cc: gcc-patches, rguenther, crazylh, hubicka
liuhongt <hongtao.liu@intel.com> writes:
> Performance impact for the commit with option:
> -march=x86-64 -O2 -ftree-vectorize -fvect-cost-model=very-cheap
>
> SPEC2017 fprate
> 503.bwaves_r BuildSame
> 507.cactuBSSN_r -0.04
> 508.namd_r 0.14
> 510.parest_r -0.54
> 511.povray_r 0.10
> 519.lbm_r BuildSame
> 521.wrf_r 0.64
> 526.blender_r -0.32
> 527.cam4_r 0.17
> 538.imagick_r 0.09
> 544.nab_r BuildSame
> 549.fotonik3d_r BuildSame
> 554.roms_r BuildSame
> 997.specrand_fr -0.09
> Geometric mean: 0.02
>
> SPEC2017 intrate
> 500.perlbench_r 0.26
> 502.gcc_r 0.21
> 505.mcf_r -0.09
> 520.omnetpp_r BuildSame
> 523.xalancbmk_r BuildSame
> 525.x264_r -0.41
> 531.deepsjeng_r BuildSame
> 541.leela_r 0.13
> 548.exchange2_r BuildSame
> 557.xz_r BuildSame
> 999.specrand_ir BuildSame
> Geometric mean: 0.02
>
> EEMBC: no regression, only improvement or build the same, the below is
> improved benchmarks.
>
> mp2decoddata1 7.59
> mp2decoddata2 31.80
> mp2decoddata3 12.15
> mp2decoddata4 11.16
> mp2decoddata5 11.19
> mp2decoddata1 7.06
> mp2decoddata2 24.12
> mp2decoddata3 10.83
> mp2decoddata4 10.04
> mp2decoddata5 10.07
>
> Survived regression test.
> Ok for trunk?
>
> gcc/ChangeLog:
>
> PR tree-optimization/100089
> * tree-vectorizer.c (try_vectorize_loop_1): Disable slp in
> loop vectorizer when cost model is very-cheap.
> ---
> gcc/tree-vectorizer.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
> index b9709a613d5..8a5b8735546 100644
> --- a/gcc/tree-vectorizer.c
> +++ b/gcc/tree-vectorizer.c
> @@ -1033,7 +1033,10 @@ try_vectorize_loop_1 (hash_table<simduid_to_vf> *&simduid_to_vf_htab,
> only non-if-converted parts took part in BB vectorization. */
> if (flag_tree_slp_vectorize != 0
> && loop_vectorized_call
> - && ! loop->inner)
> + && ! loop->inner
> + /* This would purely be a workaround and should be removed
> + once the PR100089 is fixed. */
s/the //.
OK with that change, thanks.
Richard
> + && flag_vect_cost_model != VECT_COST_MODEL_VERY_CHEAP)
> {
> basic_block bb = loop->header;
> bool require_loop_vectorize = false;
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-08-23 12:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-23 2:41 [PATCH] Disable slp in loop vectorizer when cost model is very-cheap liuhongt
2021-08-23 12:10 ` Richard Sandiford
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).