[all-commits] [llvm/llvm-project] 012173: [LoopIdiom] let the pass deal with runtime memset ...
Yueh-Ting Chen via All-commits
all-commits at lists.llvm.org
Sat Aug 14 04:22:20 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 012173680f368bff9b4e3db21e1381360422cdc6
https://github.com/llvm/llvm-project/commit/012173680f368bff9b4e3db21e1381360422cdc6
Author: eopXD <yueh.ting.chen at gmail.com>
Date: 2021-08-14 (Sat, 14 Aug 2021)
Changed paths:
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
A llvm/test/Transforms/LoopIdiom/memset-runtime-debug.ll
A llvm/test/Transforms/LoopIdiom/memset-runtime.ll
Log Message:
-----------
[LoopIdiom] let the pass deal with runtime memset size
The current LIR does not deal with runtime-determined memset-size. This patch
utilizes SCEV and check if the PointerStrideSCEV and the MemsetSizeSCEV are equal.
Before comparison the pass would try to fold the expression that is already
protected by the loop guard.
Testcase file `memset-runtime.ll`, `memset-runtime-debug.ll` added.
This patch deals with proper loop-idiom. Proceeding patch wants to deal with SCEV-s
that are inequal after folding with the loop guards.
Reviewed By: lebedev.ri, Whitney
Differential Revision: https://reviews.llvm.org/D107353
More information about the All-commits
mailing list