[PATCH] D83408: [SVE] Disable some BUILD_VECTOR related code generator features.

Paul Walker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 8 14:13:42 PDT 2020


paulwalker-arm marked 2 inline comments as done.
paulwalker-arm added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:3569
+// them to expand BUILD_VECTOR.
+bool AArch64TargetLowering::shouldExpandBuildVectorWithShuffles(
+    EVT VT, unsigned DefinedValues) const {
----------------
efriedma wrote:
> Would it be enough to just fix isShuffleMaskLegal, instead of overriding this?
We expand VECTOR_SHUFFLE (using BUILD_VECTOR) so at this stage I think it's better to just prevent extra VECTOR_SHUFFLE instances/code paths as early as possible.


================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.h:745
+  /// illegal as the original, thus leading to an infinite legalisation loop.
+  bool mergeStoresAfterLegalization(EVT VT) const override {
+    return !useSVEForFixedLengthVectors();
----------------
efriedma wrote:
> This affects code that isn't using wide vectors, right?
> 
> If this is supposed to be a temporary hack, I guess it's fine, but please explicitly state that in the comment.
Sadly it affects all vectors but the interface doesn't have the necessary information.  I can see other targets have hit the same issue but I've restricted our version as best I can (only taking affect when wide vectors are enabled).  I've added a comment saying we can revert the change once we fully support BUILD_VECTOR when using the wide vectors.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D83408





More information about the llvm-commits mailing list