]> granicus.if.org Git - llvm/commit
[AArch64][GlobalISel] Enable the localizer for optimized builds.
authorAmara Emerson <aemerson@apple.com>
Fri, 6 Sep 2019 22:27:09 +0000 (22:27 +0000)
committerAmara Emerson <aemerson@apple.com>
Fri, 6 Sep 2019 22:27:09 +0000 (22:27 +0000)
commitf092f4409ae5a1c1463ed6e14cf168c1a7d7abf9
treed87f0bf5e74c0330b867b185f3c1f27750f02395
parentaf17674bf4e2e7de5aa207ed68342973c5199734
[AArch64][GlobalISel] Enable the localizer for optimized builds.

Despite the fact that the localizer's original motivation was to fix horrendous
constant spilling at -O0, shortening live ranges still has net benefits even
with optimizations enabled.

On an -Os build of CTMark, doing this improves code size by 0.5% geomean.

There are a few regressions, bullet increasing in size by 0.5%. One example from
bullet where code size increased slightly was due to GlobalISel actually now
generating the same code as SelectionDAG. So we actually have an opportunity
in future to implement better heuristics for localization and therefore be
*better* than SDAG in some cases. In relation to other optimizations though that
one is relatively minor.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@371266 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64TargetMachine.cpp
test/CodeGen/AArch64/GlobalISel/gisel-commandline-option.ll
test/CodeGen/AArch64/GlobalISel/localizer-in-O0-pipeline.mir
test/CodeGen/AArch64/GlobalISel/swifterror.ll