https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70729

--- Comment #11 from Yuri Rumyantsev <ysrumyan at gmail dot com> ---
Richard,

I slightly modify the patch proposed by you:
1. Apply loop->safelen check only if lim is invoked before loop vectorization
since its value could be non-correct (I simply add bool param to it).
2. I prohibit to apply this check if loop contains unanalyzed memory references
(e.g. calls, clobbers etc.).
With these changes all regressions related to omp simd support were disappeared
and the following failures left (because of changing order of transformation):

 FAIL: gcc.dg/autopar/outer-6.c scan-tree-dump-times parloops2 "parallelizing
inner loop" 0
FAIL: gcc.dg/pr41783.c scan-tree-dump pre "pretmp[^\\n]* = a_global_var;"
FAIL: gcc.dg/tree-ssa/loadpre10.c scan-tree-dump-times pre "Eliminated: 1" 1
FAIL: gcc.dg/tree-ssa/loadpre23.c scan-tree-dump-times pre "Eliminated: 1" 1
FAIL: gcc.dg/tree-ssa/loadpre24.c scan-tree-dump-times pre "Eliminated: 1" 1
FAIL: gcc.dg/tree-ssa/loadpre25.c scan-tree-dump-times pre "Eliminated: 1" 1
FAIL: gcc.dg/tree-ssa/loadpre4.c scan-tree-dump-times pre "Eliminated: 1" 1
FAIL: gcc.dg/tree-ssa/loadpre8.c scan-tree-dump-times pre "Eliminated: 1" 1
FAIL: gcc.dg/tree-ssa/ssa-pre-16.c scan-tree-dump-times pre "Eliminated: 1" 1
FAIL: gcc.dg/tree-ssa/ssa-pre-18.c scan-tree-dump pre "Replaced foo \\(f.y\\)"
FAIL: gcc.dg/tree-ssa/ssa-pre-20.c scan-tree-dump pre "New PHIs: 2"
FAIL: gcc.dg/tree-ssa/ssa-pre-3.c scan-tree-dump-times pre "Eliminated: 2" 1
FAIL: gfortran.dg/pr42108.f90   -O   scan-tree-dump pre "in all uses of
countm1[^\n]* / "
FAIL: gfortran.dg/vect/fast-math-vect-8.f90   -O   scan-tree-dump-times vect
"vectorized 1 loops" 1

What is your opinion?

Reply via email to