aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorJohn Brawn <john.brawn@arm.com>2015-09-14 15:19:41 +0000
committerJohn Brawn <john.brawn@arm.com>2015-09-14 15:19:41 +0000
commit056e67865a6c57b2afbab4e70369a6b862eedc20 (patch)
tree484dfe9a1f4e1083c99bdb6d2290cc60285522a0 /clang/lib/CodeGen/CodeGenModule.cpp
parent37366e569811ac84939495cbb00140e75c15a769 (diff)
downloadllvm-056e67865a6c57b2afbab4e70369a6b862eedc20.zip
llvm-056e67865a6c57b2afbab4e70369a6b862eedc20.tar.gz
llvm-056e67865a6c57b2afbab4e70369a6b862eedc20.tar.bz2
[ARM] Extract shifts out of multiply-by-constant
Turning (op x (mul y k)) into (op x (lsl (mul y k>>n) n)) is beneficial when we can do the lsl as a shifted operand and the resulting multiply constant is simpler to generate. Do this by doing the transformation when trying to select a shifted operand, as that ensures that it actually turns out better (the alternative would be to do it in PreprocessISelDAG, but we don't know for sure there if extracting the shift would allow a shifted operand to be used). Differential Revision: http://reviews.llvm.org/D12196 llvm-svn: 247569
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions