diff options
Diffstat (limited to 'polly/lib/Analysis/ScopInfo.cpp')
| -rw-r--r-- | polly/lib/Analysis/ScopInfo.cpp | 9 |
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); |

