aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorYuri Rumyantsev <ysrumyan@gmail.com>2016-07-01 09:42:01 +0000
committerKirill Yukhin <kyukhin@gcc.gnu.org>2016-07-01 09:42:01 +0000
commit677ef4dd37b714f10e0147bff70afe47f2dea30b (patch)
treeb13fcbb0d9636b6593ea7023c65448628cec55db /gcc
parent02c19e2bc72d519ca08ceff0ae0824c676085cf3 (diff)
downloadgcc-677ef4dd37b714f10e0147bff70afe47f2dea30b.zip
gcc-677ef4dd37b714f10e0147bff70afe47f2dea30b.tar.gz
gcc-677ef4dd37b714f10e0147bff70afe47f2dea30b.tar.bz2
re PR tree-optimization/70729 (Loop marked with omp simd pragma is not vectorized)
PR tree-optimization/70729 gcc/ * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field of loop since it can be not valid after transformation. From-SVN: r237907
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-vectorizer.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 153c10e..685847b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
+
+ PR tree-optimization/70729
+ * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
+ of loop since it can be not valid after transformation.
+
2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.c (thumb_reload_in_hi): Delete.
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 2669813..9fbd183 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -204,6 +204,10 @@ adjust_simduid_builtins (hash_table<simduid_to_vf> *htab)
gcc_assert (TREE_CODE (arg) == SSA_NAME);
simduid_to_vf *p = NULL, data;
data.simduid = DECL_UID (SSA_NAME_VAR (arg));
+ /* Need to nullify loop safelen field since it's value is not
+ valid after transformation. */
+ if (bb->loop_father && bb->loop_father->safelen > 0)
+ bb->loop_father->safelen = 0;
if (htab)
{
p = htab->find (&data);