summaryrefslogtreecommitdiff
path: root/lib/Target/AArch64/AArch64InstrInfo.h
diff options
context:
space:
mode:
authorJessica Paquette <jpaquette@apple.com>2018-07-27 20:18:27 +0000
committerJessica Paquette <jpaquette@apple.com>2018-07-27 20:18:27 +0000
commit031332e78887f4658e2d7a2f7541827c2ca9baf5 (patch)
treea6fa93fcb76e082e2a5dc3adbab079e8258a9f9e /lib/Target/AArch64/AArch64InstrInfo.h
parent8ab74e6b402ee4cb9dd24a47020ecdade7eca558 (diff)
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! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@338160 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/AArch64/AArch64InstrInfo.h')
-rw-r--r--lib/Target/AArch64/AArch64InstrInfo.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/Target/AArch64/AArch64InstrInfo.h b/lib/Target/AArch64/AArch64InstrInfo.h
index 0e5953f6216..585cbd4b9c7 100644
--- a/lib/Target/AArch64/AArch64InstrInfo.h
+++ b/lib/Target/AArch64/AArch64InstrInfo.h
@@ -249,6 +249,7 @@ public:
insertOutlinedCall(Module &M, MachineBasicBlock &MBB,
MachineBasicBlock::iterator &It, MachineFunction &MF,
const outliner::Candidate &C) const override;
+ bool shouldOutlineFromFunctionByDefault(MachineFunction &MF) const override;
/// Returns true if the instruction sets to an immediate value that can be
/// executed more efficiently.
bool isExynosResetFast(const MachineInstr &MI) const;