aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorJessica Paquette <jpaquette@apple.com>2020-11-09 16:04:16 -0800
committerJessica Paquette <jpaquette@apple.com>2020-11-11 09:20:05 -0800
commitf0580c73bb325baf5fda10c169c2293f21987081 (patch)
tree4ed2c558d771939bd1cdbb3a46d502f89d1c61fd /llvm/lib/Object/MachOObjectFile.cpp
parentf23c4c6f8a3866d0fcd9537a2e95de355e48b6de (diff)
downloadllvm-f0580c73bb325baf5fda10c169c2293f21987081.zip
llvm-f0580c73bb325baf5fda10c169c2293f21987081.tar.gz
llvm-f0580c73bb325baf5fda10c169c2293f21987081.tar.bz2
[AArch64][GlobalISel] Select negative arithmetic immediates in manual selector
Previously, we only handled negative arithmetic immediates in the imported selector code. Since we don't import code for, say, compares, we were missing opportunities for things like ``` %cst:gpr(s64) = G_CONSTANT i64 -10 %cmp:gpr(s32) = G_ICMP intpred(eq), %reg0(s64), %cst -> %adds = ADDSXri %reg0, 10, 0, implicit-def $nzcv %cmp = CSINCWr $wzr, $wzr, 1, implicit $nzcv ``` Instead, we would have to materialize the constant and emit a SUBS. This adds support for selection like above for SUB, SUBS, ADD, and ADDS. This is a 0.1% geomean code size improvement on SPECINT2000 at -Os. Differential Revision: https://reviews.llvm.org/D91108
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions