[llvm] [LoadStoreVectorizer] Support vectorization of mixed-type contiguous accesses (PR #177908)
Drew Kersnar via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 5 12:57:50 PDT 2026
================
@@ -154,13 +149,58 @@ using EqClassKey =
// - BB order, sorted by Instr->comesBefore.
// - Offset order, sorted by OffsetFromLeader.
// This pass switches back and forth between these orders.
+class Vectorizer;
+
struct ChainElem {
Instruction *Inst;
APInt OffsetFromLeader;
ChainElem(Instruction *Inst, APInt OffsetFromLeader)
: Inst(std::move(Inst)), OffsetFromLeader(std::move(OffsetFromLeader)) {}
};
-using Chain = SmallVector<ChainElem, 1>;
+struct Chain : SmallVector<ChainElem, 1> {
+ friend class Vectorizer;
+
+private:
----------------
dakersnar wrote:
Note: If you're removing caching, just remove the struct and go back to the original `using Chain = SmallVector<ChainElem, 1>;` to minimize churn.
https://github.com/llvm/llvm-project/pull/177908
More information about the llvm-commits
mailing list