summaryrefslogtreecommitdiffstats
path: root/polly/lib/Analysis/ScopInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'polly/lib/Analysis/ScopInfo.cpp')
-rw-r--r--polly/lib/Analysis/ScopInfo.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp
index 006ea878888..ab5469634e9 100644
--- a/polly/lib/Analysis/ScopInfo.cpp
+++ b/polly/lib/Analysis/ScopInfo.cpp
@@ -2564,6 +2564,15 @@ void Scop::hoistInvariantLoads() {
continue;
isl_map *AccessRelation = MA->getAccessRelation();
+
+ // Skip accesses that have an empty access relation. These can be caused
+ // by multiple offsets with a type cast in-between that cause the overall
+ // byte offset to be not divisible by the new types sizes.
+ if (isl_map_is_empty(AccessRelation)) {
+ isl_map_free(AccessRelation);
+ continue;
+ }
+
if (isl_map_involves_dims(AccessRelation, isl_dim_in, 0,
Stmt.getNumIterators())) {
isl_map_free(AccessRelation);
OpenPOWER on IntegriCloud