[PATCH] D74590: [LegalizeTypes] Scalarize non-byte sized loads in WidenRecRes_Load and SplitVecResLoad

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 14 13:16:20 PST 2020


efriedma added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp:3675
 
+  // A vector must always be stored in memory as-is, i.e. without any padding
+  // between the elements, since various code depend on it, e.g. in the
----------------
craig.topper wrote:
> This is duplicated from the code in TargetLowering because I had to produce a build vector with more results than the original type.
> 
> Given that the code in TargetLowering is separated in its own pass inside scalarizeVectorLoad, I wonder if I should just have handle both with a helper function local to LegalizeTypes and not touch scalarizeVectorLoad?
Can't you just call scalarizeVectorLoad, then widen the result?

I'd prefer to have one copy of the "load a non-byte-sized vector" code... we already have at least one other version in VectorLegalizer::ExpandLoad .  scalarizeVectorLoad seems like a fine place to keep the code in question.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D74590





More information about the llvm-commits mailing list