[PATCH] D108138: [SimplifyCFG] Remove switch statements before vectorization

David Sherwood via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 26 06:55:07 PDT 2021


david-arm added a comment.

In D108138#2967100 <https://reviews.llvm.org/D108138#2967100>, @lebedev.ri wrote:

> IMO anything other than enhancing LV is wrong.

Hi @lebedev.ri  I personally disagree here. Adding support to LV for this is significantly more work (and IMO unnecessary) because there are cases when LV has to handle a lot more than just the obvious flattened vectorisation case using vector comparisons and select instructions. We will also need to add support for vectorisation factors of 1 (with interleaving) and cases where VF>1,but we have to scalarise the switch statement. These latter two cases require basically doing exactly the same thing as @kmclaughlin's patch does here, i.e. unswitching the switch statement into compares/branches and new blocks. It seems far simpler to have a small pass that runs prior to the vectoriser (when enabled) that unswitches.

Not sure what others think here?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D108138



More information about the cfe-commits mailing list