[PATCH] D98263: [LoopInterchange] fix tightlyNested() in LoopInterchange legality

Whitney Tsang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 23 08:04:56 PDT 2021


Whitney added a comment.

I am fine with this change now, but in the future we should try to

1. Use utilities in LoopNest as much as possible
2. Loosen the definition perfect loop nest in LoopNest
3. Make the transformation more generic to handle more cases, e.g. the newly added test `interchange_07`.



================
Comment at: llvm/test/Transforms/LoopInterchange/not-interchanged-tightly-nested.ll:12
 @D = common global [100 x [100 x [100 x i32]]] zeroinitializer
+ at E = common global [100 x [100 x i64]] zeroinitializer
 
----------------
can we reuse the existing global arrays?


================
Comment at: llvm/test/Transforms/LoopInterchange/not-interchanged-tightly-nested.ll:108
+
+;; The following Loop is not considered tightly nested and is not interchanged.
+; CHECK: Not interchanging loops. Cannot prove legality.
----------------
Please add comment for why it is not considered tightly nested. 
Is it because we expect the outer loop header to have a conditional branch?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D98263/new/

https://reviews.llvm.org/D98263



More information about the llvm-commits mailing list