diff options
author | Noah Goldstein <goldstein.w.n@gmail.com> | 2023-01-27 17:26:19 -0600 |
---|---|---|
committer | Noah Goldstein <goldstein.w.n@gmail.com> | 2023-01-27 20:35:40 -0600 |
commit | baf7f7e5752ceba898e1a434c4512de9d35863b0 (patch) | |
tree | ce433d8c7e21aa99a2e48802b3423130ac6a41ac /clang/lib/Basic/SourceManager.cpp | |
parent | 09b7692c62599f36093857493a96be782a48b8ee (diff) | |
download | llvm-baf7f7e5752ceba898e1a434c4512de9d35863b0.zip llvm-baf7f7e5752ceba898e1a434c4512de9d35863b0.tar.gz llvm-baf7f7e5752ceba898e1a434c4512de9d35863b0.tar.bz2 |
Recommit "Add optimizations for icmp eq/ne (mul(X, Y), 0)" 2nd Try
First time caused build failure:
https://lab.llvm.org/buildbot/#/builders/183/builds/10447
but after investigating it seems to be unrelated. The same
test/build passed later with the original commit here:
https://lab.llvm.org/buildbot/#/builders/183/builds/10448
1. Add checks if X and/or Y are odd. The Odd values are unnecessary to
the icmp: isZero(Odd * N) == isZero(N)
2. If neither X nor Y is known odd, then if X * Y cannot overflow AND
if X and/or Y is non-zero, the non-zero values are unnecessary to the
icmp.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D140850
Diffstat (limited to 'clang/lib/Basic/SourceManager.cpp')
0 files changed, 0 insertions, 0 deletions