[PATCH] D79001: [ARM][MVE] Tail-predication: support nested loops with dependent iterators.

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 28 07:29:11 PDT 2020


samparker added inline comments.


================
Comment at: llvm/lib/Target/ARM/MVETailPredication.cpp:552
+  // nested loops with loop iterators that are independent of each other.
+  if (!dyn_cast<Instruction>(TCP.NumElements)) {
+    dbgs() << "it's a value: done!\n";
----------------
I don't follow what the importance is here between a Value and an Instruction. Why couldn't a single nested loop have NumElements calculated by an instruction?


================
Comment at: llvm/lib/Target/ARM/MVETailPredication.cpp:553
+  if (!dyn_cast<Instruction>(TCP.NumElements)) {
+    dbgs() << "it's a value: done!\n";
+    if (!MatchElemCountLoopSetup(L, TCP.Shuffle, TCP.NumElements))
----------------
Missing LLVM_DEBUG macro.


================
Comment at: llvm/lib/Target/ARM/MVETailPredication.cpp:573
+  // will be safe because if these values don't match, we bail and don't peform
+  // tail-predication.
+  LLVM_DEBUG(dbgs() << "ARM TP: Matching scalar TC: "; TCP.NumElements->dump());
----------------
I think it would be more informative to explain most of this using SCEV expression examples, I'm struggling to understand what's happening here.


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

https://reviews.llvm.org/D79001





More information about the llvm-commits mailing list