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

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 14 14:17:33 PST 2020


dmgreen added a comment.

I had not realised that this required LCSSA form. That will likely cause many more changed than you really want. It's probably best not to create LCSSA form here without destroying it afterwards. Do you know if LoopSimpleForm is needed too? It looks from the code that it shouldn't (it can handle multiple exits).

You might be better off only creating LCSSA form for the loops that really need it. Otherwise I imagine a lot of tests change. There is formLCSSA and formLCSSARecursively. The first I one is probably fine for individual loops. I vaguely remember something that will go through and remove the one operand phis too, but I'm not sure what that is called (other than instcombine).



================
Comment at: llvm/lib/Target/ARM/MVETailPredication.cpp:578
 INITIALIZE_PASS_BEGIN(MVETailPredication, DEBUG_TYPE, DESC, false, false)
+INITIALIZE_PASS_DEPENDENCY(LoopPass)
 INITIALIZE_PASS_END(MVETailPredication, DEBUG_TYPE, DESC, false, false)
----------------
It's probably better to be explicit about what is needed and preserved here. I don't think LoopSimpleForm would be needed, and you can probably get away with not requiring LCSSA either.


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

https://reviews.llvm.org/D72714





More information about the llvm-commits mailing list