diff options
| author | Jessica Paquette <jpaquette@apple.com> | 2018-07-27 16:44:42 +0000 |
|---|---|---|
| committer | Jessica Paquette <jpaquette@apple.com> | 2018-07-27 16:44:42 +0000 |
| commit | d4229b985cbf4256fe23d682291bf923b0a5d5f0 (patch) | |
| tree | 11a2480f024975e3fb01cb5ac50c2f69d45e9d69 /llvm/test/CodeGen/AArch64/machine-outliner-flags.ll | |
| parent | c7abb416dcc8b58fe9a4233f2af0e31b0c342ca6 (diff) | |
| download | bcm5719-llvm-d4229b985cbf4256fe23d682291bf923b0a5d5f0.tar.gz bcm5719-llvm-d4229b985cbf4256fe23d682291bf923b0a5d5f0.zip | |
Enable MachineOutliner by default under -Oz for AArch64
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: 338133
Diffstat (limited to 'llvm/test/CodeGen/AArch64/machine-outliner-flags.ll')
| -rw-r--r-- | llvm/test/CodeGen/AArch64/machine-outliner-flags.ll | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/test/CodeGen/AArch64/machine-outliner-flags.ll b/llvm/test/CodeGen/AArch64/machine-outliner-flags.ll index e00a19099cf..c435093b794 100644 --- a/llvm/test/CodeGen/AArch64/machine-outliner-flags.ll +++ b/llvm/test/CodeGen/AArch64/machine-outliner-flags.ll @@ -14,7 +14,7 @@ ; RUN: | FileCheck %s -check-prefix=NEVER ; RUN: llc %s -debug-pass=Structure -verify-machineinstrs \ -; RUN: -mtriple arm64---- -o /dev/null 2>&1 \ +; RUN: --debug-only=machine-outliner -mtriple arm64---- -o /dev/null 2>&1 \ ; RUN: | FileCheck %s -check-prefix=NOT-ADDED ; RUN: llc %s -O=0 -debug-pass=Structure -verify-machineinstrs \ @@ -27,10 +27,11 @@ ; Cases where it should be added: ; * -enable-machine-outliner ; * -enable-machine-outliner=always +; * -enable-machine-outliner is not passed (AArch64 supports +; target-default outlining) ; ; Cases where it should not be added: ; * -O0 or equivalent -; * -enable-machine-outliner is not passed ; * -enable-machine-outliner=never is passed ; ALWAYS: Machine Outliner @@ -38,7 +39,8 @@ ; ENABLE: Machine Outliner ; ENABLE: Machine Outliner: Running on all functions ; NEVER-NOT: Machine Outliner -; NOT-ADDED-NOT: Machine Outliner +; NOT-ADDED: Machine Outliner +; NOT-ADDED: Machine Outliner: Running on target-default functions ; OPTNONE-NOT: Machine Outliner define void @foo() { |

