[llvm] [DA] Cache delinearization results. NFCI. (PR #164379)
Ryotaro Kasuga via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 21 08:08:50 PDT 2025
================
@@ -3463,11 +3463,37 @@ bool DependenceInfo::tryDelinearize(Instruction *Src, Instruction *Dst,
SmallVector<const SCEV *, 4> SrcSubscripts, DstSubscripts;
- if (!tryDelinearizeFixedSize(Src, Dst, SrcAccessFn, DstAccessFn,
- SrcSubscripts, DstSubscripts) &&
- !tryDelinearizeParametricSize(Src, Dst, SrcAccessFn, DstAccessFn,
- SrcSubscripts, DstSubscripts))
- return false;
+ // Check cache for both Src and Dst subscripts
+ auto SrcCacheKey = std::make_tuple(Src, SrcLoop, SrcAccessFn);
+ auto DstCacheKey = std::make_tuple(Dst, DstLoop, DstAccessFn);
+ auto SrcCacheIt = DelinearizationCache.find(SrcCacheKey);
+ auto DstCacheIt = DelinearizationCache.find(DstCacheKey);
----------------
kasuga-fj wrote:
Consider using `try_emplace` to avoid repeated hash lookup.
https://github.com/llvm/llvm-project/pull/164379
More information about the llvm-commits
mailing list