[MLIR] Fix TestAffineDataCopy for test cases with no load ops
authorUday Bondhugula <uday@polymagelabs.com>
Sun, 2 May 2021 09:40:22 +0000 (15:10 +0530)
committerUday Bondhugula <uday@polymagelabs.com>
Mon, 3 May 2021 17:12:52 +0000 (22:42 +0530)
Add missing check in -test-affine-data-copy without which a test case
that has no affine.loads at all would crash this test pass. Fix two
clang-tidy warnings in the file while at this. (Not adding a test case
given the triviality.)

Differential Revision: https://reviews.llvm.org/D101719

mlir/test/lib/Dialect/Affine/TestAffineDataCopy.cpp

index b2d454b..593e549 100644 (file)
@@ -76,6 +76,8 @@ void TestAffineDataCopy::runOnFunction() {
       }
     }
   }
+  if (!load)
+    return;
 
   AffineCopyOptions copyOptions = {/*generateDma=*/false,
                                    /*slowMemorySpace=*/0,
@@ -95,7 +97,7 @@ void TestAffineDataCopy::runOnFunction() {
   // Promote any single iteration loops in the copy nests and simplify
   // load/stores.
   SmallVector<Operation *, 4> copyOps;
-  for (auto nest : copyNests)
+  for (Operation *nest : copyNests) {
     // With a post order walk, the erasure of loops does not affect
     // continuation of the walk or the collection of load/store ops.
     nest->walk([&](Operation *op) {
@@ -106,12 +108,13 @@ void TestAffineDataCopy::runOnFunction() {
       else if (auto storeOp = dyn_cast<AffineStoreOp>(op))
         copyOps.push_back(storeOp);
     });
+  }
 
   // Promoting single iteration loops could lead to simplification of
   // generated load's/store's, and the latter could anyway also be
   // canonicalized.
   RewritePatternSet patterns(&getContext());
-  for (auto op : copyOps) {
+  for (Operation *op : copyOps) {
     patterns.clear();
     if (isa<AffineLoadOp>(op)) {
       AffineLoadOp::getCanonicalizationPatterns(patterns, &getContext());