forked from OSchip/llvm-project
c4b757be02
As discussed in https://bugs.llvm.org/show_bug.cgi?id=43870, this transform is missing a crucial legality check: the old (non-countable) loop would early-return upon first mismatch, but there is no such guarantee for bcmp/memcmp. We'd need to ensure that [PtrA, PtrA+NBytes) and [PtrB, PtrB+NBytes) are fully dereferenceable memory regions. But that would limit the transform to constant loop trip counts and would further cripple it because dereferenceability analysis is *very* partial. Furthermore, even if all that is done, every single test would need to be rewritten from scratch. So let's just give up. |
||
---|---|---|
.. | ||
AMDGPU | ||
ARM | ||
X86 | ||
basic-address-space.ll | ||
basic.ll | ||
crash.ll | ||
ctpop-multiple-users-crash.ll | ||
dbginfo-cost.ll | ||
debug-line.ll | ||
int_sideeffect.ll | ||
lir-heurs-multi-block-loop.ll | ||
memcpy-debugify-remarks.ll | ||
memset-debugify-remarks.ll | ||
memset_noidiom.ll | ||
non-canonical-loop.ll | ||
non-integral-pointers.ll | ||
nontemporal_store.ll | ||
pr28196.ll | ||
pr33114.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 |