Skip to content

Commit 310bb3b

Browse files
authored
[DirectX] Fix broken dxil-dis tests after llvm#106146 (llvm#114629)
In ab75180 "[DirectX] Remove trivially dead functions at linkage finalize (llvm#106146)" we updated the compiler to remove DXIL functions that aren't marked with the "hlsl.export" attribute, but it seems we forgot to add this attribute to the tests in `tools/dxil-dis`.
1 parent 45ae7d1 commit 310bb3b

File tree

7 files changed

+28
-30
lines changed

7 files changed

+28
-30
lines changed

llvm/test/tools/dxil-dis/BasicIR.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
; RUN: llc --filetype=obj %s --stop-after=dxil-write-bitcode -o %t && llvm-bcanalyzer --dump-blockinfo %t | FileCheck %s --check-prefix=BLOCK_INFO
44

5-
; CHECK: define internal i32 @foo(i32 %X, i32 %Y) {
5+
; CHECK: define i32 @foo(i32 %X, i32 %Y) {
66
; CHECK: %Z = sub i32 %X, %Y
77
; CHECK: %Q = add i32 %Z, %Y
88
; CHECK: ret i32 %Q
@@ -17,7 +17,7 @@
1717

1818
target triple = "dxil-unknown-shadermodel6.7-library"
1919

20-
define i32 @foo(i32 %X, i32 %Y) {
20+
define i32 @foo(i32 %X, i32 %Y) "hlsl.export" {
2121
%Z = sub i32 %X, %Y
2222
%Q = add i32 %Z, %Y
2323
ret i32 %Q

llvm/test/tools/dxil-dis/attribute-filter.ll

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,21 @@
44
target triple = "dxil-unknown-shadermodel6.7-library"
55

66
; CHECK: Function Attrs: nounwind readnone
7-
; Function Attrs: norecurse nounwind readnone willreturn
87
define float @fma(float %0, float %1, float %2) #0 {
98
%4 = fmul float %0, %1
109
%5 = fadd float %4, %2
1110
ret float %5
1211
}
1312

1413
; CHECK: Function Attrs: readnone
15-
; Function Attrs: norecurse readnone willreturn
1614
define float @fma2(float %0, float %1, float %2) #1 {
1715
%4 = fmul float %0, %1
1816
%5 = fadd float %4, %2
1917
ret float %5
2018
}
2119

2220
; CHECK: attributes #0 = { nounwind readnone "fp32-denorm-mode"="any" "waveops-include-helper-lanes" }
23-
attributes #0 = { norecurse nounwind readnone willreturn "disable-tail-calls"="false" "waveops-include-helper-lanes" "fp32-denorm-mode"="any" }
21+
attributes #0 = { norecurse nounwind readnone willreturn "disable-tail-calls"="false" "waveops-include-helper-lanes" "fp32-denorm-mode"="any" "hlsl.export" }
2422

2523
; CHECK: attributes #1 = { readnone "fp32-denorm-mode"="ftz" "waveops-include-helper-lanes" }
26-
attributes #1 = { norecurse memory(none) willreturn "disable-tail-calls"="false" "waveops-include-helper-lanes" "fp32-denorm-mode"="ftz" }
24+
attributes #1 = { norecurse memory(none) willreturn "disable-tail-calls"="false" "waveops-include-helper-lanes" "fp32-denorm-mode"="ftz" "hlsl.export" }

llvm/test/tools/dxil-dis/debug-info.ll

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
target triple = "dxil-unknown-shadermodel6.7-library"
33
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
44

5-
; CHECK: define internal float @fma(float, float, float) unnamed_addr #0 !dbg [[Fn:[!][0-9]+]]
6-
; Function Attrs: norecurse nounwind readnone willreturn
5+
; CHECK: define float @fma(float, float, float) unnamed_addr #0 !dbg [[Fn:[!][0-9]+]]
76
define dso_local float @fma(float %0, float %1, float %2) local_unnamed_addr #0 !dbg !6 {
87
; CHECK-NEXT: call void @llvm.dbg.value(metadata float %0, metadata [[VarX:[!][0-9]+]], metadata [[Expr:[!][0-9]+]]), !dbg [[Line1:[!][0-9]+]]
98
; CHECK-NEXT: call void @llvm.dbg.value(metadata float %1, metadata [[VarY:[!][0-9]+]], metadata [[Expr]]), !dbg [[Line1]]
@@ -18,11 +17,7 @@ define dso_local float @fma(float %0, float %1, float %2) local_unnamed_addr #0
1817
ret float %5, !dbg !17
1918
}
2019

21-
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
22-
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
23-
24-
attributes #0 = { norecurse nounwind readnone willreturn }
25-
attributes #1 = { nofree nosync nounwind readnone speculatable willreturn }
20+
attributes #0 = { norecurse nounwind readnone willreturn "hlsl.export" }
2621

2722
!llvm.dbg.cu = !{!0}
2823
!llvm.module.flags = !{!3, !4}
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,24 @@
11
; RUN: llc --filetype=obj %s -o - | dxil-dis -o - | FileCheck %s
22
target triple = "dxil-unknown-shadermodel6.7-library"
33

4-
define i32 @fn(ptr %0) {
4+
define i32 @fn(ptr %0) #0 {
55
%2 = getelementptr i32, ptr %0, i32 4
66
%3 = load i32, ptr %2
77
ret i32 %3
88
}
99

10-
; CHECK: define internal i32 @fn(i32*)
10+
; CHECK: define i32 @fn(i32*)
1111
; CHECK-NEXT: %2 = getelementptr i32, i32* %0, i32 4
1212
; CHECK-NEXT: %3 = load i32, i32* %2, align 4
1313

14-
define i32 @fn2(ptr addrspace(1) %0) {
14+
define i32 @fn2(ptr addrspace(1) %0) #0 {
1515
%2 = getelementptr i32, ptr addrspace(1) %0, i32 4
1616
%3 = load i32, ptr addrspace(1) %2
1717
ret i32 %3
1818
}
1919

20-
; CHECK: define internal i32 @fn2(i32 addrspace(1)*)
20+
; CHECK: define i32 @fn2(i32 addrspace(1)*)
2121
; CHECK-NEXT: %2 = getelementptr i32, i32 addrspace(1)* %0, i32 4
2222
; CHECK-NEXT: %3 = load i32, i32 addrspace(1)* %2, align 4
23+
24+
attributes #0 = { "hlsl.export" }
Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,61 @@
11
; RUN: llc --filetype=obj %s -o - | dxil-dis -o - | FileCheck %s
22
target triple = "dxil-unknown-shadermodel6.7-library"
33

4-
define i64 @test(ptr %p) {
4+
define i64 @test(ptr %p) #0 {
55
store i32 0, ptr %p
66
%v = load i64, ptr %p
77
ret i64 %v
88
}
99

10-
; CHECK: define internal i64 @test(i8* %p) {
10+
; CHECK: define i64 @test(i8* %p) {
1111
; CHECK-NEXT: %1 = bitcast i8* %p to i32*
1212
; CHECK-NEXT: store i32 0, i32* %1, align 4
1313
; CHECK-NEXT: %2 = bitcast i8* %p to i64*
1414
; CHECK-NEXT: %3 = load i64, i64* %2, align 8
1515

16-
define i64 @test2(ptr %p) {
16+
define i64 @test2(ptr %p) #0 {
1717
store i64 0, ptr %p
1818
%v = load i64, ptr %p
1919
ret i64 %v
2020
}
2121

22-
; CHECK: define internal i64 @test2(i64* %p) {
22+
; CHECK: define i64 @test2(i64* %p) {
2323
; CHECK-NEXT: store i64 0, i64* %p, align 8
2424
; CHECK-NEXT: %v = load i64, i64* %p, align 8
2525

26-
define i64 @test3(ptr addrspace(1) %p) {
26+
define i64 @test3(ptr addrspace(1) %p) #0 {
2727
store i32 0, ptr addrspace(1) %p
2828
%v = load i64, ptr addrspace(1) %p
2929
ret i64 %v
3030
}
3131

32-
; CHECK: define internal i64 @test3(i8 addrspace(1)* %p) {
32+
; CHECK: define i64 @test3(i8 addrspace(1)* %p) {
3333
; CHECK-NEXT: %1 = bitcast i8 addrspace(1)* %p to i32 addrspace(1)*
3434
; CHECK-NEXT: store i32 0, i32 addrspace(1)* %1, align 4
3535
; CHECK-NEXT: %2 = bitcast i8 addrspace(1)* %p to i64 addrspace(1)*
3636
; CHECK-NEXT: %3 = load i64, i64 addrspace(1)* %2, align 8
3737

38-
define i64 @test4(ptr addrspace(1) %p) {
38+
define i64 @test4(ptr addrspace(1) %p) #0 {
3939
store i64 0, ptr addrspace(1) %p
4040
%v = load i64, ptr addrspace(1) %p
4141
ret i64 %v
4242
}
4343

44-
; CHECK: define internal i64 @test4(i64 addrspace(1)* %p) {
44+
; CHECK: define i64 @test4(i64 addrspace(1)* %p) {
4545
; CHECK-NEXT: store i64 0, i64 addrspace(1)* %p, align 8
4646
; CHECK-NEXT: %v = load i64, i64 addrspace(1)* %p, align 8
4747

4848

49-
define i64 @test5(ptr %p) {
49+
define i64 @test5(ptr %p) #0 {
5050
%casted = addrspacecast ptr %p to ptr addrspace(1)
5151
store i64 0, ptr addrspace(1) %casted
5252
%v = load i64, ptr addrspace(1) %casted
5353
ret i64 %v
5454
}
5555

56-
; CHECK: define internal i64 @test5(i8* %p) {
56+
; CHECK: define i64 @test5(i8* %p) {
5757
; CHECK-NEXT: %casted = addrspacecast i8* %p to i64 addrspace(1)*
5858
; CHECK-NEXT: store i64 0, i64 addrspace(1)* %casted, align 8
5959
; CHECK-NEXT: %v = load i64, i64 addrspace(1)* %casted, align 8
60+
61+
attributes #0 = { "hlsl.export" }

llvm/test/tools/dxil-dis/opaque-value_as_metadata.ll

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@ target triple = "dxil-unknown-shadermodel6.7-library"
66

77
@CBV = external constant %"$Globals"
88

9-
define void @main() {
9+
define void @main() #0 {
1010
ret void
1111
}
1212

13+
attributes #0 = { "hlsl.export" }
14+
1315
!llvm.ident = !{!0}
1416
!dx.version = !{!1}
1517
!dx.valver = !{!2}

llvm/test/tools/dxil-dis/shuffle.ll

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ target triple = "dxil-unknown-shadermodel6.7-library"
77
; Make sure shufflevector works for DXIL bitcode writer.
88
; CHECK:shufflevector <2 x float> %{{.*}}, <2 x float> undef, <2 x i32> <i32 1, i32 0>
99

10-
; Function Attrs: noinline nounwind optnone
1110
define noundef <2 x float> @foo(<2 x float> noundef %a) #0 {
1211
entry:
1312
%a.addr = alloca <2 x float>, align 8
@@ -17,7 +16,7 @@ entry:
1716
ret <2 x float> %1
1817
}
1918

20-
attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" }
19+
attributes #0 = { noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="64" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "hlsl.export" }
2120

2221
!llvm.module.flags = !{!0, !1, !3}
2322

0 commit comments

Comments
 (0)