Skip to content

Commit 4e9794f

Browse files
authored
[NFC][RISCV] Use -O0 in trampoline test for easier code observation (#142332)
A portion of the trampoline code is optimized into a load from the constant pool, making the lit test unable to capture the value of it. Disabling the optimization can keep them load from immediates and able to observe any value changes.
1 parent 890f872 commit 4e9794f

File tree

1 file changed

+40
-40
lines changed

1 file changed

+40
-40
lines changed

llvm/test/CodeGen/RISCV/rv64-trampoline.ll

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2-
; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s \
2+
; RUN: llc -O0 -mtriple=riscv64 -verify-machineinstrs < %s \
33
; RUN: | FileCheck -check-prefix=RV64 %s
4-
; RUN: llc -mtriple=riscv64-unknown-linux-gnu -verify-machineinstrs < %s \
4+
; RUN: llc -O0 -mtriple=riscv64-unknown-linux-gnu -verify-machineinstrs < %s \
55
; RUN: | FileCheck -check-prefix=RV64-LINUX %s
66

77
declare void @llvm.init.trampoline(ptr, ptr, ptr)
@@ -13,62 +13,62 @@ define i64 @test0(i64 %n, ptr %p) nounwind {
1313
; RV64: # %bb.0:
1414
; RV64-NEXT: addi sp, sp, -64
1515
; RV64-NEXT: sd ra, 56(sp) # 8-byte Folded Spill
16-
; RV64-NEXT: sd s0, 48(sp) # 8-byte Folded Spill
17-
; RV64-NEXT: sd s1, 40(sp) # 8-byte Folded Spill
18-
; RV64-NEXT: mv s0, a0
16+
; RV64-NEXT: sd a0, 8(sp) # 8-byte Folded Spill
1917
; RV64-NEXT: lui a0, %hi(f)
2018
; RV64-NEXT: addi a0, a0, %lo(f)
21-
; RV64-NEXT: li a2, 919
22-
; RV64-NEXT: lui a3, %hi(.LCPI0_0)
23-
; RV64-NEXT: sd a0, 32(sp)
19+
; RV64-NEXT: sd a0, 48(sp)
20+
; RV64-NEXT: sd a1, 40(sp)
21+
; RV64-NEXT: li a0, 919
22+
; RV64-NEXT: sw a0, 24(sp)
23+
; RV64-NEXT: lui a0, 40
24+
; RV64-NEXT: addiw a0, a0, 103
25+
; RV64-NEXT: sw a0, 36(sp)
26+
; RV64-NEXT: lui a0, 4155
27+
; RV64-NEXT: addiw a0, a0, 899
28+
; RV64-NEXT: sw a0, 32(sp)
2429
; RV64-NEXT: lui a0, 6203
25-
; RV64-NEXT: ld a3, %lo(.LCPI0_0)(a3)
26-
; RV64-NEXT: addi a0, a0, 643
27-
; RV64-NEXT: sw a2, 8(sp)
28-
; RV64-NEXT: sw a0, 12(sp)
29-
; RV64-NEXT: sd a3, 16(sp)
30-
; RV64-NEXT: sd a1, 24(sp)
31-
; RV64-NEXT: addi a1, sp, 24
32-
; RV64-NEXT: addi a0, sp, 8
33-
; RV64-NEXT: addi s1, sp, 8
30+
; RV64-NEXT: addiw a0, a0, 643
31+
; RV64-NEXT: sw a0, 28(sp)
32+
; RV64-NEXT: addi a1, sp, 40
33+
; RV64-NEXT: addi a0, sp, 24
34+
; RV64-NEXT: sd a0, 16(sp) # 8-byte Folded Spill
3435
; RV64-NEXT: call __clear_cache
35-
; RV64-NEXT: mv a0, s0
36-
; RV64-NEXT: jalr s1
36+
; RV64-NEXT: ld a0, 8(sp) # 8-byte Folded Reload
37+
; RV64-NEXT: ld a1, 16(sp) # 8-byte Folded Reload
38+
; RV64-NEXT: jalr a1
3739
; RV64-NEXT: ld ra, 56(sp) # 8-byte Folded Reload
38-
; RV64-NEXT: ld s0, 48(sp) # 8-byte Folded Reload
39-
; RV64-NEXT: ld s1, 40(sp) # 8-byte Folded Reload
4040
; RV64-NEXT: addi sp, sp, 64
4141
; RV64-NEXT: ret
4242
;
4343
; RV64-LINUX-LABEL: test0:
4444
; RV64-LINUX: # %bb.0:
4545
; RV64-LINUX-NEXT: addi sp, sp, -64
4646
; RV64-LINUX-NEXT: sd ra, 56(sp) # 8-byte Folded Spill
47-
; RV64-LINUX-NEXT: sd s0, 48(sp) # 8-byte Folded Spill
48-
; RV64-LINUX-NEXT: sd s1, 40(sp) # 8-byte Folded Spill
49-
; RV64-LINUX-NEXT: mv s0, a0
47+
; RV64-LINUX-NEXT: sd a0, 8(sp) # 8-byte Folded Spill
5048
; RV64-LINUX-NEXT: lui a0, %hi(f)
5149
; RV64-LINUX-NEXT: addi a0, a0, %lo(f)
52-
; RV64-LINUX-NEXT: li a2, 919
53-
; RV64-LINUX-NEXT: lui a3, %hi(.LCPI0_0)
54-
; RV64-LINUX-NEXT: sd a0, 32(sp)
50+
; RV64-LINUX-NEXT: sd a0, 48(sp)
51+
; RV64-LINUX-NEXT: sd a1, 40(sp)
52+
; RV64-LINUX-NEXT: li a0, 919
53+
; RV64-LINUX-NEXT: sw a0, 24(sp)
54+
; RV64-LINUX-NEXT: lui a0, 40
55+
; RV64-LINUX-NEXT: addiw a0, a0, 103
56+
; RV64-LINUX-NEXT: sw a0, 36(sp)
57+
; RV64-LINUX-NEXT: lui a0, 4155
58+
; RV64-LINUX-NEXT: addiw a0, a0, 899
59+
; RV64-LINUX-NEXT: sw a0, 32(sp)
5560
; RV64-LINUX-NEXT: lui a0, 6203
56-
; RV64-LINUX-NEXT: ld a3, %lo(.LCPI0_0)(a3)
57-
; RV64-LINUX-NEXT: addi a0, a0, 643
58-
; RV64-LINUX-NEXT: sw a2, 8(sp)
59-
; RV64-LINUX-NEXT: sw a0, 12(sp)
60-
; RV64-LINUX-NEXT: sd a3, 16(sp)
61-
; RV64-LINUX-NEXT: sd a1, 24(sp)
62-
; RV64-LINUX-NEXT: addi a1, sp, 24
63-
; RV64-LINUX-NEXT: addi a0, sp, 8
64-
; RV64-LINUX-NEXT: addi s1, sp, 8
61+
; RV64-LINUX-NEXT: addiw a0, a0, 643
62+
; RV64-LINUX-NEXT: sw a0, 28(sp)
63+
; RV64-LINUX-NEXT: addi a1, sp, 40
64+
; RV64-LINUX-NEXT: addi a0, sp, 24
65+
; RV64-LINUX-NEXT: sd a0, 16(sp) # 8-byte Folded Spill
6566
; RV64-LINUX-NEXT: li a2, 0
6667
; RV64-LINUX-NEXT: call __riscv_flush_icache
67-
; RV64-LINUX-NEXT: mv a0, s0
68-
; RV64-LINUX-NEXT: jalr s1
68+
; RV64-LINUX-NEXT: ld a0, 8(sp) # 8-byte Folded Reload
69+
; RV64-LINUX-NEXT: ld a1, 16(sp) # 8-byte Folded Reload
70+
; RV64-LINUX-NEXT: jalr a1
6971
; RV64-LINUX-NEXT: ld ra, 56(sp) # 8-byte Folded Reload
70-
; RV64-LINUX-NEXT: ld s0, 48(sp) # 8-byte Folded Reload
71-
; RV64-LINUX-NEXT: ld s1, 40(sp) # 8-byte Folded Reload
7272
; RV64-LINUX-NEXT: addi sp, sp, 64
7373
; RV64-LINUX-NEXT: ret
7474
%alloca = alloca [32 x i8], align 8

0 commit comments

Comments
 (0)