aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-data-refs.c
diff options
context:
space:
mode:
authorIra Rosen <ira.rosen@linaro.org>2011-05-31 12:31:04 +0000
committerIra Rosen <irar@gcc.gnu.org>2011-05-31 12:31:04 +0000
commit8f7de592d33e84831f3122a7f27ca05c7d308c69 (patch)
treec62c699cd03a0617508a60b9be36816b8cff5f73 /gcc/tree-vect-data-refs.c
parent8d8a3bda40b0fa5aeb801287f0e2e79affe26c54 (diff)
downloadgcc-8f7de592d33e84831f3122a7f27ca05c7d308c69.zip
gcc-8f7de592d33e84831f3122a7f27ca05c7d308c69.tar.gz
gcc-8f7de592d33e84831f3122a7f27ca05c7d308c69.tar.bz2
re PR tree-optimization/49093 (ICE in vect_enhance_data_refs_alignment() with volatile inside peeled loop)
PR tree-optimization/49093 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile data references. From-SVN: r174477
Diffstat (limited to 'gcc/tree-vect-data-refs.c')
-rw-r--r--gcc/tree-vect-data-refs.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index ee05997..5023710 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -2584,6 +2584,16 @@ vect_analyze_data_refs (loop_vec_info loop_vinfo,
return false;
}
+ if (TREE_THIS_VOLATILE (DR_REF (dr)))
+ {
+ if (vect_print_dump_info (REPORT_UNVECTORIZED_LOCATIONS))
+ {
+ fprintf (vect_dump, "not vectorized: volatile type ");
+ print_gimple_stmt (vect_dump, stmt, 0, TDF_SLIM);
+ }
+ return false;
+ }
+
base = unshare_expr (DR_BASE_ADDRESS (dr));
offset = unshare_expr (DR_OFFSET (dr));
init = unshare_expr (DR_INIT (dr));