llvm-project/llvm/test/Transforms/LoopIdiom
eopXD 012173680f [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
2021-08-14 19:22:06 +08:00
..
AMDGPU
ARM
RISCV
X86 [LoopIdiom] Transform memmove-like loop into memmove (PR46179) 2021-07-22 13:05:43 +02:00
basic-address-space.ll
basic.ll [LoopIdiom] Transform memmove-like loop into memmove (PR46179) 2021-07-22 13:05:43 +02:00
crash.ll
ctpop-multiple-users-crash.ll
dbginfo-cost.ll
debug-line.ll
disable-options.ll
expander-do-not-delete-reused-values.ll
int_sideeffect.ll
lir-heurs-multi-block-loop.ll
memcpy-debugify-remarks.ll [loop-idiom] Hoist loop memcpys to loop preheader 2021-05-04 17:05:04 -07:00
memcpy-inline-intrinsic.ll [Intrinsics] Make MemCpyInlineInst a MemCpyInst 2021-07-02 10:25:24 -07:00
memcpy-intrinsic-different-types.ll [loop-idiom] Hoist loop memcpys to loop preheader 2021-05-04 17:05:04 -07:00
memcpy-intrinsic.ll [loop-idiom] Hoist loop memcpys to loop preheader 2021-05-04 17:05:04 -07:00
memcpy-vectors.ll [SVE] Remove checks for warnings in scalable-vector tests. 2021-04-07 15:59:32 +01:00
memcpy.ll [LoopIdiom] Added testcase from PR44378; NFC 2021-04-21 22:00:32 +02:00
memset-debugify-remarks.ll [ScalarEvolution] Ensure backedge-taken counts are not pointers. 2021-06-21 16:24:16 -07:00
memset-runtime-debug.ll [LoopIdiom] let the pass deal with runtime memset size 2021-08-14 19:22:06 +08:00
memset-runtime.ll [LoopIdiom] let the pass deal with runtime memset size 2021-08-14 19:22:06 +08:00
memset.ll [LoopIdiom] Added testcase for double memset (fixed in LLVM 12); NFC 2021-04-22 16:39:25 +02:00
memset_noidiom.ll
non-canonical-loop.ll
non-integral-pointers.ll
nontemporal_store.ll
phi-insertion.ll
pr28196.ll
pr33114.ll
reuse-cast.ll
scev-invalidation.ll
scev-invalidation_topmostloop.ll
struct-custom-dl.ll
struct.ll
struct_pattern.ll
unordered-atomic-memcpy-noarch.ll
unroll-custom-dl.ll
unroll.ll
unsafe.ll
unwind.ll