Recommit "Enable MachineOutliner by default under -Oz for AArch64"
authorJessica Paquette <jpaquette@apple.com>
Fri, 27 Jul 2018 20:18:27 +0000 (20:18 +0000)
committerJessica Paquette <jpaquette@apple.com>
Fri, 27 Jul 2018 20:18:27 +0000 (20:18 +0000)
commitf90edbe3d6b0c9b72214f6514133a72997610964
treed1b2854518ee2904517848b70361f2f3b03433a8
parent1b826174738891ec3bdc4b1964ac45757448a4c2
Recommit "Enable MachineOutliner by default under -Oz for AArch64"

Fixed the ASAN failure from before in r338148, so recommiting.

This patch enables the MachineOutliner by default in AArch64 under -Oz.

The MachineOutliner offers around a 4.5% improvement on the current -Oz code
size improvements.

We have done work into improving the debuggability of outlined code, so that
users of -Oz won't be surprised by the optimization. We have also been executing
the LLVM test suite and common external tests such as the SPEC suites
continuously with no issue. The outliner has a low compile-time overhead of
roughly 1%. At this point, the outliner would be a really good addition to the
-Oz pass pipeline!

llvm-svn: 338160
llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
llvm/lib/Target/AArch64/AArch64InstrInfo.h
llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
llvm/test/CodeGen/AArch64/O3-pipeline.ll
llvm/test/CodeGen/AArch64/arm64-memset-to-bzero.ll
llvm/test/CodeGen/AArch64/arm64-opt-remarks-lazy-bfi.ll
llvm/test/CodeGen/AArch64/cond-sel.ll
llvm/test/CodeGen/AArch64/machine-outliner-default.mir [new file with mode: 0644]
llvm/test/CodeGen/AArch64/machine-outliner-flags.ll
llvm/test/CodeGen/AArch64/max-jump-table.ll