[PATCH] D95806: [LoopUnrollAndJam] Check if the loops have an Exit Block

Sidharth Baveja via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 1 11:14:05 PST 2021


sidbav created this revision.
sidbav added reviewers: Whitney, bmahjour, etiotto, Meinersbur, dmgreen.
Herald added subscribers: zzheng, hiraditya.
sidbav requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

This resolves an issue posted on Bugzilla. https://bugs.llvm.org/show_bug.cgi?id=48764

This issue took place because loops which did not have an exit block were allowed to unrolled and jam.

This patch ensures that loops which only have an exit block will be allowed to be unrolled and jammed.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D95806

Files:
  llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp


Index: llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
===================================================================
--- llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
+++ llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
@@ -831,6 +831,13 @@
     if (SubLoopsSize != 1)
       return false;
 
+    // If the Loop does not have an exit block, cannot perform unroll and jam
+    if (!L->getExitBlock()) {
+      LLVM_DEBUG(dbgs() << "Won't unroll-and-jam; Loop does not have an exit "
+                           "block\n");
+      return false;
+    }
+
     L = L->getSubLoops()[0];
   } while (L);
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D95806.320530.patch
Type: text/x-patch
Size: 604 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210201/f148a4f8/attachment.bin>


More information about the llvm-commits mailing list