From: Jessica Paquette Date: Fri, 27 Jul 2018 17:25:38 +0000 (+0000) Subject: Revert "Enable MachineOutliner by default under -Oz for AArch64" X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f25070cb8b047a495a1b5f860e22c9dfd21cde18;p=llvm Revert "Enable MachineOutliner by default under -Oz for AArch64" It failed an Asan test on a bot: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/21543/steps/check-llvm%20asan/logs/stdio Fixing that before recommitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@338136 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/AArch64/AArch64InstrInfo.cpp b/lib/Target/AArch64/AArch64InstrInfo.cpp index 9e5c0b83a4a..dc3fa4f8c1d 100644 --- a/lib/Target/AArch64/AArch64InstrInfo.cpp +++ b/lib/Target/AArch64/AArch64InstrInfo.cpp @@ -5478,8 +5478,3 @@ MachineBasicBlock::iterator AArch64InstrInfo::insertOutlinedCall( return CallPt; } - -bool AArch64InstrInfo::shouldOutlineFromFunctionByDefault( - MachineFunction &MF) const { - return MF.getFunction().optForMinSize(); -} diff --git a/lib/Target/AArch64/AArch64InstrInfo.h b/lib/Target/AArch64/AArch64InstrInfo.h index 585cbd4b9c7..0e5953f6216 100644 --- a/lib/Target/AArch64/AArch64InstrInfo.h +++ b/lib/Target/AArch64/AArch64InstrInfo.h @@ -249,7 +249,6 @@ 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; diff --git a/lib/Target/AArch64/AArch64TargetMachine.cpp b/lib/Target/AArch64/AArch64TargetMachine.cpp index 120d71381c6..01a997e5aed 100644 --- a/lib/Target/AArch64/AArch64TargetMachine.cpp +++ b/lib/Target/AArch64/AArch64TargetMachine.cpp @@ -255,9 +255,6 @@ AArch64TargetMachine::AArch64TargetMachine(const Target &T, const Triple &TT, // AArch64 supports the MachineOutliner. setMachineOutliner(true); - - // AArch64 supports default outlining behaviour. - setSupportsDefaultOutlining(true); } AArch64TargetMachine::~AArch64TargetMachine() = default; diff --git a/test/CodeGen/AArch64/O3-pipeline.ll b/test/CodeGen/AArch64/O3-pipeline.ll index f0c7e4e67c1..e482682fc9d 100644 --- a/test/CodeGen/AArch64/O3-pipeline.ll +++ b/test/CodeGen/AArch64/O3-pipeline.ll @@ -154,8 +154,6 @@ ; CHECK-NEXT: Insert fentry calls ; CHECK-NEXT: Insert XRay ops ; CHECK-NEXT: Implement the 'patchable-function' attribute -; CHECK-NEXT: Machine Outliner -; CHECK-NEXT: FunctionPass Manager ; CHECK-NEXT: Lazy Machine Block Frequency Analysis ; CHECK-NEXT: Machine Optimization Remark Emitter ; CHECK-NEXT: AArch64 Assembly Printer diff --git a/test/CodeGen/AArch64/arm64-memset-to-bzero.ll b/test/CodeGen/AArch64/arm64-memset-to-bzero.ll index ab819a42729..0afe1c006b0 100644 --- a/test/CodeGen/AArch64/arm64-memset-to-bzero.ll +++ b/test/CodeGen/AArch64/arm64-memset-to-bzero.ll @@ -1,6 +1,6 @@ -; RUN: llc %s -enable-machine-outliner=never -mtriple=arm64-apple-darwin -o - \ -; RUN: | FileCheck --check-prefixes=CHECK,CHECK-DARWIN %s -; RUN: llc %s -enable-machine-outliner=never -mtriple=arm64-linux-gnu -o - | \ +; RUN: llc %s -mtriple=arm64-apple-darwin -o - | \ +; RUN: FileCheck --check-prefixes=CHECK,CHECK-DARWIN %s +; RUN: llc %s -mtriple=arm64-linux-gnu -o - | \ ; RUN: FileCheck --check-prefixes=CHECK,CHECK-LINUX %s ; ARM64: Calls to bzero() replaced with calls to memset() diff --git a/test/CodeGen/AArch64/arm64-opt-remarks-lazy-bfi.ll b/test/CodeGen/AArch64/arm64-opt-remarks-lazy-bfi.ll index 452c822e43b..7efb4bf6d59 100644 --- a/test/CodeGen/AArch64/arm64-opt-remarks-lazy-bfi.ll +++ b/test/CodeGen/AArch64/arm64-opt-remarks-lazy-bfi.ll @@ -26,8 +26,8 @@ ; requested. (This hard-codes the previous pass to the Assembly Printer, ; please adjust accordingly.) -; HOTNESS: Freeing Pass 'Machine Outliner' -; HOTNESS-NEXT: Executing Pass 'Function Pass Manager' +; HOTNESS: Executing Pass 'Implement the 'patchable-function' attribute' +; HOTNESS-NEXT: Freeing Pass 'Implement the 'patchable-function' attribute' ; HOTNESS-NEXT: Executing Pass 'Lazy Machine Block Frequency Analysis' ; HOTNESS-NEXT: Executing Pass 'Machine Optimization Remark Emitter' ; HOTNESS-NEXT: Building MachineBlockFrequencyInfo on the fly @@ -41,8 +41,8 @@ ; HOTNESS: arm64-summary-remarks.ll:5:0: 1 instructions in function (hotness: 33) -; NO_HOTNESS: Freeing Pass 'Machine Outliner' -; NO_HOTNESS-NEXT: Executing Pass 'Function Pass Manager' +; NO_HOTNESS: Executing Pass 'Implement the 'patchable-function' attribute' +; NO_HOTNESS-NEXT: Freeing Pass 'Implement the 'patchable-function' attribute' ; NO_HOTNESS-NEXT: Executing Pass 'Lazy Machine Block Frequency Analysis' ; NO_HOTNESS-NEXT: Executing Pass 'Machine Optimization Remark Emitter' ; NO_HOTNESS-NEXT: Executing Pass 'AArch64 Assembly Printer' diff --git a/test/CodeGen/AArch64/cond-sel.ll b/test/CodeGen/AArch64/cond-sel.ll index 691cbcf1a5d..b39cea1f619 100644 --- a/test/CodeGen/AArch64/cond-sel.ll +++ b/test/CodeGen/AArch64/cond-sel.ll @@ -1,5 +1,5 @@ -; RUN: llc -enable-machine-outliner=never -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -mcpu=cyclone | FileCheck %s -; RUN: llc -enable-machine-outliner=never -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -mattr=-fp-armv8 | FileCheck --check-prefix=CHECK-NOFP %s +; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -mcpu=cyclone | FileCheck %s +; RUN: llc -verify-machineinstrs < %s -mtriple=aarch64-none-linux-gnu -mattr=-fp-armv8 | FileCheck --check-prefix=CHECK-NOFP %s @var32 = global i32 0 @var64 = global i64 0 diff --git a/test/CodeGen/AArch64/machine-outliner-default.mir b/test/CodeGen/AArch64/machine-outliner-default.mir deleted file mode 100644 index 698a2fc55b5..00000000000 --- a/test/CodeGen/AArch64/machine-outliner-default.mir +++ /dev/null @@ -1,71 +0,0 @@ -# RUN: llc -mtriple=aarch64--- -run-pass=machine-outliner \ -# RUN: -verify-machineinstrs %s -o - | FileCheck %s - ---- | - define void @outline_1() #0 { ret void } - define void @outline_2() #0 { ret void } - define void @outline_3() #0 { ret void } - define void @dont_outline() #1 { ret void } - - attributes #0 = { noredzone minsize optsize } - attributes #1 = { noredzone } -... ---- - -name: outline_1 -tracksRegLiveness: true -body: | - bb.0: - ; CHECK-LABEL: bb.0: - ; CHECK: OUTLINED - liveins: $w8, $wzr - $w8 = ORRWri $wzr, 1 - $w8 = ORRWri $wzr, 2 - $w8 = ORRWri $wzr, 3 - $w8 = ORRWri $wzr, 4 - RET undef $lr -... ---- - -name: outline_2 -tracksRegLiveness: true -body: | - bb.0: - ; CHECK-LABEL: bb.0: - ; CHECK: OUTLINED - liveins: $w8, $wzr - $w8 = ORRWri $wzr, 1 - $w8 = ORRWri $wzr, 2 - $w8 = ORRWri $wzr, 3 - $w8 = ORRWri $wzr, 4 - RET undef $lr -... ---- - -name: outline_3 -tracksRegLiveness: true -body: | - bb.0: - ; CHECK-LABEL: bb.0: - ; CHECK: OUTLINED - liveins: $w8, $wzr - $w8 = ORRWri $wzr, 1 - $w8 = ORRWri $wzr, 2 - $w8 = ORRWri $wzr, 3 - $w8 = ORRWri $wzr, 4 - RET undef $lr -... ---- - -name: dont_outline -tracksRegLiveness: true -body: | - bb.0: - ; CHECK-LABEL: bb.0: - ; CHECK-NOT: BL - liveins: $w8, $wzr - $w8 = ORRWri $wzr, 1 - $w8 = ORRWri $wzr, 2 - $w8 = ORRWri $wzr, 3 - $w8 = ORRWri $wzr, 4 - RET undef $lr diff --git a/test/CodeGen/AArch64/machine-outliner-flags.ll b/test/CodeGen/AArch64/machine-outliner-flags.ll index c435093b794..e00a19099cf 100644 --- a/test/CodeGen/AArch64/machine-outliner-flags.ll +++ b/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: --debug-only=machine-outliner -mtriple arm64---- -o /dev/null 2>&1 \ +; RUN: -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,11 +27,10 @@ ; 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 @@ -39,8 +38,7 @@ ; ENABLE: Machine Outliner ; ENABLE: Machine Outliner: Running on all functions ; NEVER-NOT: Machine Outliner -; NOT-ADDED: Machine Outliner -; NOT-ADDED: Machine Outliner: Running on target-default functions +; NOT-ADDED-NOT: Machine Outliner ; OPTNONE-NOT: Machine Outliner define void @foo() { diff --git a/test/CodeGen/AArch64/max-jump-table.ll b/test/CodeGen/AArch64/max-jump-table.ll index 44dde7b1cd0..612eba8f2ce 100644 --- a/test/CodeGen/AArch64/max-jump-table.ll +++ b/test/CodeGen/AArch64/max-jump-table.ll @@ -89,7 +89,6 @@ entry: ; CHECKM1-NOT: %jump-table.1 ; CHECKM3-NEXT: %jump-table.0: %bb.1 %bb.2 %bb.3 %bb.4 %bb.7 %bb.7 %bb.7 %bb.7 %bb.7 %bb.7 %bb.7 %bb.7 %bb.7 %bb.5 %bb.6{{$}} ; CHECKM3-NOT: %jump-table.1 -; CHECK-DAG: End machine code for function jt2. bb1: tail call void @ext(i32 1) br label %return bb2: tail call void @ext(i32 2) br label %return