diff options
author | Roman Lebedev <lebedev.ri@gmail.com> | 2019-11-02 12:39:02 +0300 |
---|---|---|
committer | Roman Lebedev <lebedev.ri@gmail.com> | 2019-11-02 12:48:03 +0300 |
commit | c4b757be026150eee32050e120026b03d92eb421 (patch) | |
tree | 84ee899f2e13eb2da7c9df968c571af48dfe70fd /llvm/lib/Target/X86/X86ISelLowering.cpp | |
parent | 79d8996d73f3bb5709a1eca206a848543340633d (diff) | |
download | bcm5719-llvm-c4b757be026150eee32050e120026b03d92eb421.tar.gz bcm5719-llvm-c4b757be026150eee32050e120026b03d92eb421.zip |
Revert BCmp Loop Idiom recognition transform (PR43870)
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.
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelLowering.cpp')
0 files changed, 0 insertions, 0 deletions