[PATCH] D72714: [ARM][MVE] Tail-Predication: rematerialise iteration count in exit blocks

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 15 07:47:36 PST 2020


samparker added a comment.

Good to see those looks finally loosing those subs and movs!



================
Comment at: llvm/lib/Target/ARM/MVETailPredication.cpp:141
+
+  if (!L->isRecursivelyLCSSAForm(*DT, *LI)) {
+    LLVM_DEBUG(dbgs() << "ARM TP: Loop is not in LCSSA form\n");
----------------
Do we know if the loop entering the pass are in LCSSA already? If so, it seems a little excessive to call this when we only have one instruction to fix up...


================
Comment at: llvm/lib/Target/ARM/MVETailPredication.cpp:228
+  if (TryConvert(Setup->getArgOperand(0))) {
+    RematerializeIterCount(L);
+    return true;
----------------
I'm pretty sure you only want to do this when you've cloned the vctp in an exit block.


================
Comment at: llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-tail-data-types.ll:1000
 ; CHECK-NEXT:    @ =>This Inner Loop Header: Depth=1
-; CHECK-NEXT:    ldr r5, [r0, r4]
-; CHECK-NEXT:    add.w r9, r0, r4
-; CHECK-NEXT:    ldr r6, [r1, r4]
+; CHECK-NEXT:    ldr r6, [r0, r4]
+; CHECK-NEXT:    add.w r10, r0, r4
----------------
These changes seem unnecessary.


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

https://reviews.llvm.org/D72714





More information about the llvm-commits mailing list