[PATCH] D72713: [ARM][LowOverheadLoops] Check loop liveouts

Sam Parker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 17 07:11:08 PST 2020


samparker marked 2 inline comments as done.
samparker added inline comments.


================
Comment at: llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp:641
+      continue;
+    else if (MO.isDef() && isRegLiveInExitBlocks(&ML, MO.getReg()))
+      LiveOuts.push_back(MO.getReg());
----------------
SjoerdMeijer wrote:
> Just checking: do we have test with only live Q registers in exit blocks that are not defined in the loop? That would perhaps be a bit strange, but why not...
Probably not... and now looking at this again, there's nothing here checking that MI is actually producing the liveout value anyway...


================
Comment at: llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir:189
+
+    renamable $vpr = MVE_VCTP32 killed renamable $r2, 0, $noreg
+    renamable $q0 = MVE_VPSEL killed renamable $q1, killed renamable $q0, 0, killed renamable $vpr
----------------
SjoerdMeijer wrote:
> q0 is live out/in, so the change in this patch will prevent TP. Just curious how that is related to the use of `r2`. I mean, that makes sense, the test is good to have, but is not the result of this patch?
> 
Right, this test is to cover the next step when we try to transform these loops. Would be nice to just get it in so I don't forget about it again!


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

https://reviews.llvm.org/D72713





More information about the llvm-commits mailing list