[ARM] Don't expand sdiv when optimising for minsize
authorSjoerd Meijer <sjoerd.meijer@arm.com>
Fri, 30 Nov 2018 08:14:28 +0000 (08:14 +0000)
committerSjoerd Meijer <sjoerd.meijer@arm.com>
Fri, 30 Nov 2018 08:14:28 +0000 (08:14 +0000)
commitecc7dcb879c3917f8e2092969511aa5776dcb398
tree3ff343f7f45473821994d2e7251d079fd665e4e4
parent957578ddf71db9efedf9c7ca8a802e6bba3c90eb
[ARM] Don't expand sdiv when optimising for minsize

Don't expand SDIV with an immediate that is a power of 2 if we optimise for
minimum code size. For example:

sdiv %1, i32 4

gets expanded to a sequence of 3 instructions, but this is suboptimal for
minimum code size so instead we just generate a MOV and a SDIV if integer
division is supported.

Differential Revision: https://reviews.llvm.org/D54546

llvm-svn: 347965
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/lib/Target/ARM/ARMISelLowering.h
llvm/test/CodeGen/ARM/sdiv-pow2-arm-size.ll [new file with mode: 0644]
llvm/test/CodeGen/ARM/sdiv-pow2-thumb-size.ll [new file with mode: 0644]