[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