[Delinearization] Refactoring of fixed-size array delinearization
authorCongzhe Cao <congzhe.cao@huawei.com>
Thu, 16 Jun 2022 20:03:30 +0000 (16:03 -0400)
committerCongzheUalberta <congzhecao@gmail.com>
Thu, 16 Jun 2022 20:03:41 +0000 (16:03 -0400)
commit4c77d0276b8351e533888c8e0c4e4df0277c583f
treed84ae78a3b70e5732ddc2a0dd449942e130ceb00
parenta9dccb0072af5bd1704a6e364864f8c0e0d02d62
[Delinearization] Refactoring of fixed-size array delinearization

This is a follow-up patch to D122857 where we added delinearization of
fixed-size arrays to loop cache analysis, which resulted in some duplicate
code, i.e., "tryDelinearizeFixedSize()", in LoopCacheCost.cpp and
DependenceAnalysis.cpp. Refactoring is done in this patch.

This patch refactors out the main logic of "tryDelinearizeFixedSize()" as
"tryDelinearizeFixedSizeImpl()" and moves it to Delinearization.cpp, such that
clients can reuse "llvm::tryDelinearizeFixedSizeImpl()" wherever they would
like to delinearize fixed-size arrays. Currently it has two users, i.e.,
DependenceAnalysis.cpp and LoopCacheCost.cpp.

Reviewed By: Meinersbur, #loopoptwg

Differential Revision: https://reviews.llvm.org/D124745
llvm/include/llvm/Analysis/Delinearization.h
llvm/include/llvm/Analysis/DependenceAnalysis.h
llvm/include/llvm/Analysis/LoopCacheAnalysis.h
llvm/lib/Analysis/Delinearization.cpp
llvm/lib/Analysis/DependenceAnalysis.cpp
llvm/lib/Analysis/LoopCacheAnalysis.cpp