summaryrefslogtreecommitdiffstats
path: root/polly/lib/Transform/ScheduleOptimizer.cpp
diff options
context:
space:
mode:
authorRoman Gareev <gareevroman@gmail.com>2016-06-03 18:46:29 +0000
committerRoman Gareev <gareevroman@gmail.com>2016-06-03 18:46:29 +0000
commit4b8c7aeb62793fbdee043d134abb342e529aeba0 (patch)
tree254dc2486050e8739142d5c34743870733b27ff3 /polly/lib/Transform/ScheduleOptimizer.cpp
parentdfec58e80ce1c4c0213a587ac41688c3d31a2e96 (diff)
downloadbcm5719-llvm-4b8c7aeb62793fbdee043d134abb342e529aeba0.tar.gz
bcm5719-llvm-4b8c7aeb62793fbdee043d134abb342e529aeba0.zip
[FIX] Fix potential issue related to subtraction from an unsigned 0 in circularShiftOutputDims
Reported-by: Mehdi Amini <mehdi.amini@apple.com> Contributed-by: Michael Kruse <llvm@meinersbur.de> Differential Revision: http://reviews.llvm.org/D20969 llvm-svn: 271705
Diffstat (limited to 'polly/lib/Transform/ScheduleOptimizer.cpp')
-rw-r--r--polly/lib/Transform/ScheduleOptimizer.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/polly/lib/Transform/ScheduleOptimizer.cpp b/polly/lib/Transform/ScheduleOptimizer.cpp
index 784c970ad63..36df4f23635 100644
--- a/polly/lib/Transform/ScheduleOptimizer.cpp
+++ b/polly/lib/Transform/ScheduleOptimizer.cpp
@@ -463,8 +463,10 @@ static bool containsMatrMult(__isl_keep isl_map *PartialSchedule) {
///
/// @param IslMap The isl map to be modified.
static __isl_give isl_map *circularShiftOutputDims(__isl_take isl_map *IslMap) {
- auto InputDimsId = isl_map_get_tuple_id(IslMap, isl_dim_in);
auto DimNum = isl_map_dim(IslMap, isl_dim_out);
+ if (DimNum == 0)
+ return IslMap;
+ auto InputDimsId = isl_map_get_tuple_id(IslMap, isl_dim_in);
IslMap = isl_map_move_dims(IslMap, isl_dim_in, 0, isl_dim_out, DimNum - 1, 1);
IslMap = isl_map_move_dims(IslMap, isl_dim_out, 0, isl_dim_in, 0, 1);
return isl_map_set_tuple_id(IslMap, isl_dim_in, InputDimsId);
OpenPOWER on IntegriCloud