summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorChen Li <meloli87@gmail.com>2015-12-12 01:04:15 +0000
committerChen Li <meloli87@gmail.com>2015-12-12 01:04:15 +0000
commit1b26b9ec9dabb9d0a2fefbbfc3b10449f20d0dd1 (patch)
treee09416c5dc802ade3fab3a91428f829f17ac5f92 /clang/lib/CodeGen/CodeGenModule.cpp
parent4d3da9c29b46fd605706c69cb4cddf2ec786af84 (diff)
downloadbcm5719-llvm-1b26b9ec9dabb9d0a2fefbbfc3b10449f20d0dd1.tar.gz
bcm5719-llvm-1b26b9ec9dabb9d0a2fefbbfc3b10449f20d0dd1.zip
[X86ISelLowering] Add additional support for multiplication-to-shift conversion.
Summary: This patch adds support of conversion (mul x, 2^N + 1) => (add (shl x, N), x) and (mul x, 2^N - 1) => (sub (shl x, N), x) if the multiplication can not be converted to LEA + SHL or LEA + LEA. LLVM has already supported this on ARM, and it should also be useful on X86. Note the patch currently only applies to cases where the constant operand is positive, and I am planing to add another patch to support negative cases after this. Reviewers: craig.topper, RKSimon Subscribers: aemerson, llvm-commits Differential Revision: http://reviews.llvm.org/D14603 llvm-svn: 255415
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud