Skip to content

Commit 339faff

Browse files
committed
Revert "[AArch64] Move SLS later in pass pipeline"
The (MF.size() == 0) assertis is triggering when building at -O0. Reverting this while I work out what is going wrong. This reverts commit 7e8eccd.
1 parent 80ff42b commit 339faff

File tree

6 files changed

+16
-36
lines changed

6 files changed

+16
-36
lines changed

llvm/lib/Target/AArch64/AArch64SLSHardening.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,8 +222,7 @@ void SLSBLRThunkInserter::populateThunk(MachineFunction &MF) {
222222

223223
const TargetInstrInfo *TII =
224224
MF.getSubtarget<AArch64Subtarget>().getInstrInfo();
225-
assert (MF.size() == 0);
226-
MF.push_back(MF.CreateMachineBasicBlock());
225+
assert (MF.size() == 1);
227226
MachineBasicBlock *Entry = &MF.front();
228227
Entry->clear();
229228

llvm/lib/Target/AArch64/AArch64TargetMachine.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -796,6 +796,9 @@ void AArch64PassConfig::addPreSched2() {
796796
// info.
797797
addPass(createAArch64SpeculationHardeningPass());
798798

799+
addPass(createAArch64IndirectThunks());
800+
addPass(createAArch64SLSHardeningPass());
801+
799802
if (TM->getOptLevel() != CodeGenOptLevel::None) {
800803
if (EnableFalkorHWPFFix)
801804
addPass(createFalkorHWPFFixPass());
@@ -828,8 +831,6 @@ void AArch64PassConfig::addPreEmitPass() {
828831
}
829832

830833
void AArch64PassConfig::addPostBBSections() {
831-
addPass(createAArch64IndirectThunks());
832-
addPass(createAArch64SLSHardeningPass());
833834
addPass(createAArch64PointerAuthPass());
834835
if (EnableBranchTargets)
835836
addPass(createAArch64BranchTargetsPass());

llvm/test/CodeGen/AArch64/O0-pipeline.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@
6464
; CHECK-NEXT: AArch64 pseudo instruction expansion pass
6565
; CHECK-NEXT: Insert KCFI indirect call checks
6666
; CHECK-NEXT: AArch64 speculation hardening pass
67+
; CHECK-NEXT: AArch64 Indirect Thunks
68+
; CHECK-NEXT: AArch64 sls hardening pass
6769
; CHECK-NEXT: Analyze Machine Code For Garbage Collection
6870
; CHECK-NEXT: Insert fentry calls
6971
; CHECK-NEXT: Insert XRay ops
@@ -73,8 +75,6 @@
7375
; CHECK-NEXT: StackMap Liveness Analysis
7476
; CHECK-NEXT: Live DEBUG_VALUE analysis
7577
; CHECK-NEXT: Machine Sanitizer Binary Metadata
76-
; CHECK-NEXT: AArch64 Indirect Thunks
77-
; CHECK-NEXT: AArch64 sls hardening pass
7878
; CHECK-NEXT: AArch64 Pointer Authentication
7979
; CHECK-NEXT: AArch64 Branch Targets
8080
; CHECK-NEXT: Branch relaxation pass

llvm/test/CodeGen/AArch64/O3-pipeline.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,8 @@
201201
; CHECK-NEXT: AArch64 load / store optimization pass
202202
; CHECK-NEXT: Insert KCFI indirect call checks
203203
; CHECK-NEXT: AArch64 speculation hardening pass
204+
; CHECK-NEXT: AArch64 Indirect Thunks
205+
; CHECK-NEXT: AArch64 sls hardening pass
204206
; CHECK-NEXT: MachineDominator Tree Construction
205207
; CHECK-NEXT: Machine Natural Loop Construction
206208
; CHECK-NEXT: Falkor HW Prefetch Fix Late Phase
@@ -221,8 +223,6 @@
221223
; CHECK-NEXT: Machine Sanitizer Binary Metadata
222224
; CHECK-NEXT: Machine Outliner
223225
; CHECK-NEXT: FunctionPass Manager
224-
; CHECK-NEXT: AArch64 Indirect Thunks
225-
; CHECK-NEXT: AArch64 sls hardening pass
226226
; CHECK-NEXT: AArch64 Pointer Authentication
227227
; CHECK-NEXT: AArch64 Branch Targets
228228
; CHECK-NEXT: Branch relaxation pass

llvm/test/CodeGen/AArch64/arm64-opt-remarks-lazy-bfi.ll

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,8 @@
3232

3333
; HOTNESS: Freeing Pass 'Machine Outliner'
3434
; HOTNESS-NEXT: Executing Pass 'Function Pass Manager'
35-
; HOTNESS-NEXT: Executing Pass 'Verify generated machine code' on Function 'empty_func'...
36-
; HOTNESS-NEXT: Freeing Pass 'Verify generated machine code' on Function 'empty_func'...
37-
; HOTNESS-NEXT: Executing Pass 'AArch64 Indirect Thunks' on Function 'empty_func'...
38-
; HOTNESS-NEXT: Freeing Pass 'AArch64 Indirect Thunks' on Function 'empty_func'...
39-
; HOTNESS-NEXT: Executing Pass 'Verify generated machine code' on Function 'empty_func'...
40-
; HOTNESS-NEXT: Freeing Pass 'Verify generated machine code' on Function 'empty_func'...
41-
; HOTNESS-NEXT: Executing Pass 'AArch64 sls hardening pass' on Function 'empty_func'...
42-
; HOTNESS-NEXT: Freeing Pass 'AArch64 sls hardening pass' on Function 'empty_func'...
43-
; HOTNESS-NEXT: Executing Pass 'Verify generated machine code' on Function 'empty_func'...
44-
; HOTNESS-NEXT: Freeing Pass 'Verify generated machine code' on Function 'empty_func'...
35+
; HOTNESS-NEXT: Executing Pass 'Verify generated machine code'
36+
; HOTNESS-NEXT: Freeing Pass 'Verify generated machine code'
4537
; HOTNESS-NEXT: Executing Pass 'AArch64 Pointer Authentication' on Function 'empty_func'...
4638
; HOTNESS-NEXT: Freeing Pass 'AArch64 Pointer Authentication' on Function 'empty_func'...
4739
; HOTNESS-NEXT: Executing Pass 'Verify generated machine code' on Function 'empty_func'...
@@ -81,16 +73,8 @@
8173

8274
; NO_HOTNESS: Freeing Pass 'Machine Outliner'
8375
; NO_HOTNESS-NEXT: Executing Pass 'Function Pass Manager'
84-
; NO_HOTNESS-NEXT: Executing Pass 'Verify generated machine code' on Function 'empty_func'...
85-
; NO_HOTNESS-NEXT: Freeing Pass 'Verify generated machine code' on Function 'empty_func'...
86-
; NO_HOTNESS-NEXT: Executing Pass 'AArch64 Indirect Thunks' on Function 'empty_func'...
87-
; NO_HOTNESS-NEXT: Freeing Pass 'AArch64 Indirect Thunks' on Function 'empty_func'...
88-
; NO_HOTNESS-NEXT: Executing Pass 'Verify generated machine code' on Function 'empty_func'...
89-
; NO_HOTNESS-NEXT: Freeing Pass 'Verify generated machine code' on Function 'empty_func'...
90-
; NO_HOTNESS-NEXT: Executing Pass 'AArch64 sls hardening pass' on Function 'empty_func'...
91-
; NO_HOTNESS-NEXT: Freeing Pass 'AArch64 sls hardening pass' on Function 'empty_func'...
92-
; NO_HOTNESS-NEXT: Executing Pass 'Verify generated machine code' on Function 'empty_func'...
93-
; NO_HOTNESS-NEXT: Freeing Pass 'Verify generated machine code' on Function 'empty_func'...
76+
; NO_HOTNESS-NEXT: Executing Pass 'Verify generated machine code'
77+
; NO_HOTNESS-NEXT: Freeing Pass 'Verify generated machine code'
9478
; NO_HOTNESS-NEXT: Executing Pass 'AArch64 Pointer Authentication' on Function 'empty_func'...
9579
; NO_HOTNESS-NEXT: Freeing Pass 'AArch64 Pointer Authentication' on Function 'empty_func'...
9680
; NO_HOTNESS-NEXT: Executing Pass 'Verify generated machine code' on Function 'empty_func'...

llvm/test/CodeGen/AArch64/sls-stackprotector-outliner.ll

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ define hidden void @_ZTv0_n24_N2C6D1Ev(ptr %this) minsize sspreq "target-feature
1818
; CHECK-NEXT: b.ne .LBB0_2
1919
; CHECK-NEXT: // %bb.1: // %entry
2020
; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload
21-
; CHECK-NEXT: add x0, x0, x8
22-
; CHECK-NEXT: add sp, sp, #32
21+
; CHECK-NEXT: bl OUTLINED_FUNCTION_1
2322
; CHECK-NEXT: b _ZN2C6D1Ev
2423
; CHECK-NEXT: dsb sy
2524
; CHECK-NEXT: isb
@@ -46,8 +45,7 @@ define hidden void @_ZTv0_n24_N2C6D0Ev(ptr %this) minsize sspreq "target-feature
4645
; CHECK-NEXT: b.ne .LBB1_2
4746
; CHECK-NEXT: // %bb.1: // %entry
4847
; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload
49-
; CHECK-NEXT: add x0, x0, x8
50-
; CHECK-NEXT: add sp, sp, #32
48+
; CHECK-NEXT: bl OUTLINED_FUNCTION_1
5149
; CHECK-NEXT: b _ZN2C6D0Ev
5250
; CHECK-NEXT: dsb sy
5351
; CHECK-NEXT: isb
@@ -73,8 +71,7 @@ define hidden void @_ZTv0_n24_N3C10D1Ev(ptr %this) minsize sspreq "target-featur
7371
; CHECK-NEXT: b.ne .LBB2_2
7472
; CHECK-NEXT: // %bb.1: // %entry
7573
; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload
76-
; CHECK-NEXT: add x0, x0, x8
77-
; CHECK-NEXT: add sp, sp, #32
74+
; CHECK-NEXT: bl OUTLINED_FUNCTION_1
7875
; CHECK-NEXT: b _ZN3C10D1Ev
7976
; CHECK-NEXT: dsb sy
8077
; CHECK-NEXT: isb
@@ -100,8 +97,7 @@ define hidden void @_ZTv0_n24_N3C10D0Ev(ptr %this) minsize sspreq "target-featur
10097
; CHECK-NEXT: b.ne .LBB3_2
10198
; CHECK-NEXT: // %bb.1: // %entry
10299
; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload
103-
; CHECK-NEXT: add x0, x0, x8
104-
; CHECK-NEXT: add sp, sp, #32
100+
; CHECK-NEXT: bl OUTLINED_FUNCTION_1
105101
; CHECK-NEXT: b _ZN3C10D0Ev
106102
; CHECK-NEXT: dsb sy
107103
; CHECK-NEXT: isb

0 commit comments

Comments
 (0)