llvm18/0026-Update-testcase-for-stack-clash-protection-backport.patch

178 lines
7.2 KiB
Diff
Raw Normal View History

2024-05-10 22:00:14 +08:00
From 9425ee5f8608ff8611628d83386f61950d7fff85 Mon Sep 17 00:00:00 2001
From: rickyleung <leung.wing.chung@huawei.com>
Date: Tue, 7 May 2024 21:37:03 +0800
Subject: [PATCH 7/7] Update testcase for stack clash protection backport
---
.../GlobalISel/legalize-dyn-alloca.mir | 3 +-
.../GlobalISel/stacksave-stackrestore.ll | 14 ++++++----
.../CodeGen/AArch64/stack-probing-dynamic.ll | 16 ++++++-----
.../AArch64/stack-probing-last-in-block.mir | 4 +--
.../X86/GlobalISel/stacksave-stackrestore.ll | 28 +++++++++++--------
5 files changed, 36 insertions(+), 29 deletions(-)
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-dyn-alloca.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-dyn-alloca.mir
index 882c7468e70f..82781cebc55a 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-dyn-alloca.mir
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-dyn-alloca.mir
@@ -313,5 +313,4 @@ body: |
%7:_(s64) = G_AND %5, %6
%8:_(p0) = G_DYN_STACKALLOC %7(s64), 1
$x0 = COPY %8(p0)
- RET_ReallyLR implicit $x0
-...
\ No newline at end of file
+ RET_ReallyLR implicit $x0
\ No newline at end of file
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/stacksave-stackrestore.ll b/llvm/test/CodeGen/AArch64/GlobalISel/stacksave-stackrestore.ll
index 16bf85af9c17..97ecca0bd77b 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/stacksave-stackrestore.ll
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/stacksave-stackrestore.ll
@@ -15,14 +15,18 @@ define void @test_scoped_alloca(i64 %n) {
; CHECK-NEXT: .cfi_offset w19, -16
; CHECK-NEXT: .cfi_offset w30, -24
; CHECK-NEXT: .cfi_offset w29, -32
-; CHECK-NEXT: add x9, x0, #15
+; CHECK-NEXT: mov x19, x0
+; CHECK-NEXT: bl llvm.stacksave.p0
+; CHECK-NEXT: add x9, x19, #15
; CHECK-NEXT: mov x8, sp
; CHECK-NEXT: and x9, x9, #0xfffffffffffffff0
-; CHECK-NEXT: mov x19, sp
-; CHECK-NEXT: sub x0, x8, x9
-; CHECK-NEXT: mov sp, x0
+; CHECK-NEXT: mov x19, x0
+; CHECK-NEXT: sub x8, x8, x9
+; CHECK-NEXT: mov sp, x8
+; CHECK-NEXT: mov x0, x8
; CHECK-NEXT: bl use_addr
-; CHECK-NEXT: mov sp, x19
+; CHECK-NEXT: mov x0, x19
+; CHECK-NEXT: bl llvm.stackrestore.p0
; CHECK-NEXT: mov sp, x29
; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload
; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload
diff --git a/llvm/test/CodeGen/AArch64/stack-probing-dynamic.ll b/llvm/test/CodeGen/AArch64/stack-probing-dynamic.ll
index ad9cdbe92b23..3cbcf7749b2a 100644
--- a/llvm/test/CodeGen/AArch64/stack-probing-dynamic.ll
+++ b/llvm/test/CodeGen/AArch64/stack-probing-dynamic.ll
@@ -59,10 +59,10 @@ define void @dynamic_fixed(i64 %size, ptr %out1, ptr %out2) #0 {
; CHECK-NEXT: str xzr, [sp, #-64]!
; CHECK-NEXT: add x9, x0, #15
; CHECK-NEXT: mov x8, sp
-; CHECK-NEXT: sub x10, x29, #64
; CHECK-NEXT: and x9, x9, #0xfffffffffffffff0
-; CHECK-NEXT: str x10, [x1]
+; CHECK-NEXT: sub x10, x29, #64
; CHECK-NEXT: sub x8, x8, x9
+; CHECK-NEXT: str x10, [x1]
; CHECK-NEXT: .LBB1_1: // =>This Inner Loop Header: Depth=1
; CHECK-NEXT: sub sp, sp, #1, lsl #12 // =4096
; CHECK-NEXT: cmp sp, x8
@@ -108,10 +108,10 @@ define void @dynamic_align_64(i64 %size, ptr %out) #0 {
; CHECK-NEXT: and sp, x9, #0xffffffffffffffc0
; CHECK-NEXT: add x9, x0, #15
; CHECK-NEXT: mov x8, sp
-; CHECK-NEXT: str xzr, [sp]
; CHECK-NEXT: and x9, x9, #0xfffffffffffffff0
-; CHECK-NEXT: mov x19, sp
+; CHECK-NEXT: str xzr, [sp]
; CHECK-NEXT: sub x8, x8, x9
+; CHECK-NEXT: mov x19, sp
; CHECK-NEXT: and x8, x8, #0xffffffffffffffc0
; CHECK-NEXT: .LBB2_1: // =>This Inner Loop Header: Depth=1
; CHECK-NEXT: sub sp, sp, #1, lsl #12 // =4096
@@ -167,10 +167,10 @@ define void @dynamic_align_8192(i64 %size, ptr %out) #0 {
; CHECK-NEXT: mov sp, x9
; CHECK-NEXT: add x9, x0, #15
; CHECK-NEXT: mov x8, sp
-; CHECK-NEXT: str xzr, [sp]
; CHECK-NEXT: and x9, x9, #0xfffffffffffffff0
-; CHECK-NEXT: mov x19, sp
+; CHECK-NEXT: str xzr, [sp]
; CHECK-NEXT: sub x8, x8, x9
+; CHECK-NEXT: mov x19, sp
; CHECK-NEXT: and x8, x8, #0xffffffffffffe000
; CHECK-NEXT: .LBB3_4: // =>This Inner Loop Header: Depth=1
; CHECK-NEXT: sub sp, sp, #1, lsl #12 // =4096
@@ -268,8 +268,10 @@ define void @no_reserved_call_frame(i64 %n) #0 {
; CHECK-NEXT: str xzr, [sp]
; CHECK-NEXT: sub sp, sp, #1104
; CHECK-NEXT: str xzr, [sp]
+; CHECK-NEXT: sub sp, sp, #1104
; CHECK-NEXT: bl callee_stack_args
; CHECK-NEXT: add sp, sp, #1104
+; CHECK-NEXT: add sp, sp, #1104
; CHECK-NEXT: mov sp, x29
; CHECK-NEXT: .cfi_def_cfa wsp, 16
; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload
@@ -331,8 +333,8 @@ define void @dynamic_sve(i64 %size, ptr %out) #0 "target-features"="+sve" {
; CHECK-NEXT: .cfi_offset w29, -32
; CHECK-NEXT: rdvl x9, #1
; CHECK-NEXT: mov x10, #15 // =0xf
-; CHECK-NEXT: mov x8, sp
; CHECK-NEXT: madd x9, x0, x9, x10
+; CHECK-NEXT: mov x8, sp
; CHECK-NEXT: and x9, x9, #0xfffffffffffffff0
; CHECK-NEXT: sub x8, x8, x9
; CHECK-NEXT: .LBB7_1: // =>This Inner Loop Header: Depth=1
diff --git a/llvm/test/CodeGen/AArch64/stack-probing-last-in-block.mir b/llvm/test/CodeGen/AArch64/stack-probing-last-in-block.mir
index a8a21ab330ba..9a173be5857e 100644
--- a/llvm/test/CodeGen/AArch64/stack-probing-last-in-block.mir
+++ b/llvm/test/CodeGen/AArch64/stack-probing-last-in-block.mir
@@ -141,6 +141,4 @@ body: |
B %bb.2
bb.2.exit:
- RET_ReallyLR
-
-...
\ No newline at end of file
+ RET_ReallyLR
\ No newline at end of file
diff --git a/llvm/test/CodeGen/X86/GlobalISel/stacksave-stackrestore.ll b/llvm/test/CodeGen/X86/GlobalISel/stacksave-stackrestore.ll
index e86c04ee22db..8f665924577f 100644
--- a/llvm/test/CodeGen/X86/GlobalISel/stacksave-stackrestore.ll
+++ b/llvm/test/CodeGen/X86/GlobalISel/stacksave-stackrestore.ll
@@ -13,21 +13,25 @@ define void @test_scoped_alloca(i64 %n) {
; CHECK-NEXT: .cfi_offset %rbp, -16
; CHECK-NEXT: movq %rsp, %rbp
; CHECK-NEXT: .cfi_def_cfa_register %rbp
+; CHECK-NEXT: pushq %r14
; CHECK-NEXT: pushq %rbx
-; CHECK-NEXT: pushq %rax
-; CHECK-NEXT: .cfi_offset %rbx, -24
-; CHECK-NEXT: movq %rsp, %rbx
-; CHECK-NEXT: movq %rsp, %rax
-; CHECK-NEXT: imulq $1, %rdi, %rcx
-; CHECK-NEXT: addq $15, %rcx
-; CHECK-NEXT: andq $-16, %rcx
-; CHECK-NEXT: subq %rcx, %rax
-; CHECK-NEXT: movq %rax, %rsp
-; CHECK-NEXT: movq %rax, %rdi
+; CHECK-NEXT: .cfi_offset %rbx, -32
+; CHECK-NEXT: .cfi_offset %r14, -24
+; CHECK-NEXT: movq %rdi, %rbx
+; CHECK-NEXT: callq llvm.stacksave.p0
+; CHECK-NEXT: movq %rax, %r14
+; CHECK-NEXT: movq %rsp, %rdi
+; CHECK-NEXT: imulq $1, %rbx, %rax
+; CHECK-NEXT: addq $15, %rax
+; CHECK-NEXT: andq $-16, %rax
+; CHECK-NEXT: subq %rax, %rdi
+; CHECK-NEXT: movq %rdi, %rsp
; CHECK-NEXT: callq use_addr
-; CHECK-NEXT: movq %rbx, %rsp
-; CHECK-NEXT: leaq -8(%rbp), %rsp
+; CHECK-NEXT: movq %r14, %rdi
+; CHECK-NEXT: callq llvm.stackrestore.p0
+; CHECK-NEXT: leaq -16(%rbp), %rsp
; CHECK-NEXT: popq %rbx
+; CHECK-NEXT: popq %r14
; CHECK-NEXT: popq %rbp
; CHECK-NEXT: .cfi_def_cfa %rsp, 8
; CHECK-NEXT: retq
--
2.42.0.windows.2