[PATCH] D36922: [LibCallSimplifier] try harder to fold memcmp with constant arguments

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 19 08:20:45 PDT 2017


spatel created this revision.
Herald added a subscriber: mcrosier.

Try to fold:
memcmp(X, C, ConstantLength) != 0  --> load X == *C

Without this change, we're unnecessarily checking the alignment of the constant data, so we miss the transform in the first 2 tests in the patch.

I noted this shortcoming of LibCallSimpifier in one of the recent CGP memcmp expansion patches. This doesn't help the example in:
https://bugs.llvm.org/show_bug.cgi?id=34032#c13
...directly, but I think it's worth short-circuiting more of these simple cases since we're already trying to do that.


https://reviews.llvm.org/D36922

Files:
  lib/Transforms/Utils/SimplifyLibCalls.cpp
  test/Transforms/InstCombine/memcmp-constant-fold.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36922.111823.patch
Type: text/x-patch
Size: 6296 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170819/2269d6da/attachment.bin>


More information about the llvm-commits mailing list