diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2011-03-10 18:40:14 +0000 |
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2011-03-10 18:40:14 +0000 |
| commit | b49b964b9832cbf48b0cd9734a30202cc0a08681 (patch) | |
| tree | 4e16d12ac4bf6b4c2a962001e6da1cabd91cd3e8 /llvm/utils/TableGen/ARMDecoderEmitter.cpp | |
| parent | 258a605fce06c6159f7409a55f46141457390a68 (diff) | |
| download | bcm5719-llvm-b49b964b9832cbf48b0cd9734a30202cc0a08681.tar.gz bcm5719-llvm-b49b964b9832cbf48b0cd9734a30202cc0a08681.zip | |
InstCombine: Turn umul_with_overflow into mul nuw if we can prove that it cannot overflow.
This happens a lot in clang-compiled C++ code because it adds overflow checks to operator new[]:
unsigned *foo(unsigned n) { return new unsigned[n]; }
We can optimize away the overflow check on 64 bit targets because (uint64_t)n*4 cannot overflow.
llvm-svn: 127418
Diffstat (limited to 'llvm/utils/TableGen/ARMDecoderEmitter.cpp')
0 files changed, 0 insertions, 0 deletions

