[PATCH] D92369: [ARM] Improve handling of empty VPT blocks in tail predicated loops

Sam Tebbs via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 1 05:36:55 PST 2020


samtebbs added inline comments.


================
Comment at: llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp:316
+        // anything valid once we remove the VCTP. For now just bail out.
+        if (Insts.size() == 2 && Insts.front()->getOpcode() != ARM::MVE_VPST &&
+            isVCTP(Insts.back()))
----------------
dmgreen wrote:
> SjoerdMeijer wrote:
> > Perhaps I am confused, but should this:
> > 
> >   Insts.front()->getOpcode() != ARM::MVE_VPST
> > 
> > not be be `==`?
> The block should start with either a VPST or a VPT. This is checking that it's a VPT, by proxy of it not being a VPST. (There are many VPT opcodes, so that is more difficult to check).
There is a `isVPTOpcode` function that you could use to make the check more precise.


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

https://reviews.llvm.org/D92369



More information about the llvm-commits mailing list