{"push_id":1934932553,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"ade818fc8515888ef1cfaff8257c5a39f44e624d","before":"61b882e6b0791cb8af490647c0c04c496ff1bbef","commits":[{"sha":"ade818fc8515888ef1cfaff8257c5a39f44e624d","author":{"name":"Sanjay Patel","email":"8a358757f1b64d62facccc1fd839683fb6856b45@rotateright.com"},"message":"[LibCallSimplifier] try harder to fold memcmp with constant arguments (2nd try)\n\nThe 1st try was reverted because it could inf-loop by creating a dead instruction.\nFixed that to not happen and added a test case to verify.\n\nOriginal commit message:\n\nTry to fold:\nmemcmp(X, C, ConstantLength) == 0 --> load X == *C\n\nWithout this change, we're unnecessarily checking the alignment of the constant data,\nso we miss the transform in the first 2 tests in the patch.\n\nI noted this shortcoming of LibCallSimpifier in one of the recent CGP memcmp expansion\npatches. This doesn't help the example in:\nhttps://bugs.llvm.org/show_bug.cgi?id=34032#c13\n...directly, but it's worth short-circuiting more of these simple cases since we're\nalready trying to do that.\n\nThe benefit of transforming to load+cmp is that existing IR analysis/transforms may\nfurther simplify that code. For example, if the load of the variable is common to\nmultiple memcmp calls, CSE can remove the duplicate instructions.\n\nDifferential Revision: https://reviews.llvm.org/D36922","distinct":true,"url":"https://api.github.com/repos/llvm-project/llvm-project-submodule/commits/ade818fc8515888ef1cfaff8257c5a39f44e624d"}]}
{"actor":{"display_login":"chapuni"}}