diff options
author | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2016-10-03 10:12:32 +0000 |
---|---|---|
committer | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2016-10-03 10:12:32 +0000 |
commit | 4dbe73c1ed74352899eedf2a07c202ea76c2f65b (patch) | |
tree | 3251c394733128278858fd939bc79cc2a8f8bd0a /llvm/lib/Analysis/TargetTransformInfo.cpp | |
parent | 2c0a7f081a8a681f29e1fc4ad115e77a9ade0f64 (diff) | |
download | bcm5719-llvm-4dbe73c1ed74352899eedf2a07c202ea76c2f65b.tar.gz bcm5719-llvm-4dbe73c1ed74352899eedf2a07c202ea76c2f65b.zip |
[ARM] Code size optimisation to lower udiv+urem to udiv+mls instead of a
library call to __aeabi_uidivmod. This is an improved implementation of
r280808, see also D24133, that got reverted because isel was stuck in a loop.
That was caused by the optimisation incorrectly triggering on i64 ints, which
shouldn't happen because there is no 64bit hwdiv support; that put isel's type
legalization and this optimisation in a loop. A native ARM compiler and testing
now shows that this is fixed.
Patch mostly by Pablo Barrio.
Differential Revision: https://reviews.llvm.org/D25077
llvm-svn: 283098
Diffstat (limited to 'llvm/lib/Analysis/TargetTransformInfo.cpp')
0 files changed, 0 insertions, 0 deletions