[PATCH] D76709: [Target][ARM] Adding MVE VPT Optimisation Pass

Pierre van Houtryve via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 24 14:00:53 PDT 2020


Pierre-vh added a comment.

In D76709#1939901 <https://reviews.llvm.org/D76709#1939901>, @SjoerdMeijer wrote:

> > The goal of this pass is to maximize the size of the VPT blocks created by the MVE VPT Block Insertion pass.
>
> Just a general question first, why a separate pass? Why e.g. not just doing this in the MVE VPT Block Insertion pass?


The first optimisation (VCMPs into VPNOTs) could technically be done in the MVE VPT Block insertion pass, but I think it's better to do it in this new pass instead of overloading the block Insertion pass too much. 
The second optimisation (VPNOT Insertion for "spill prevention") can't be done in the Block Insertion pass as it needs to be done before register allocation (= before spill/reload instructions are emitted).
Overall, since both optimisations deal with VPNOTs and aren't directly related to VPT Block insertion/creation, I felt that it was a good idea to put them in a separate pass.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D76709





More information about the llvm-commits mailing list