Skip to content

Commit 4061d4f

Browse files
VyacheslavLevytskyysys-ce-bb
authored andcommitted
Add validation and support for non-default address space in global variables, and fix tests by adding explicit address space (#2254)
* report error when global variable has Function storage class * validate and support non-default address space in global variables and fix related tests to conform with spirv-val rules * fix order of checks * apply code review suggestions Original commit: KhronosGroup/SPIRV-LLVM-Translator@28c8935
1 parent 832e51f commit 4061d4f

File tree

65 files changed

+435
-324
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+435
-324
lines changed

llvm-spirv/lib/SPIRV/SPIRVReader.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3403,8 +3403,7 @@ bool SPIRVToLLVM::translate() {
34033403
auto *BV = BM->getVariable(I);
34043404
if (BV->getStorageClass() != StorageClassFunction)
34053405
transValue(BV, nullptr, nullptr);
3406-
else
3407-
transGlobalCtorDtors(BV);
3406+
transGlobalCtorDtors(BV);
34083407
}
34093408

34103409
// Then translate all debug instructions.

llvm-spirv/lib/SPIRV/SPIRVWriter.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1926,6 +1926,14 @@ LLVMToSPIRVBase::transValueWithoutDecoration(Value *V, SPIRVBasicBlock *BB,
19261926
ExtensionID::SPV_INTEL_usm_storage_classes))
19271927
AddressSpace = SPIRAS_Global;
19281928
StorageClass = SPIRSPIRVAddrSpaceMap::map(AddressSpace);
1929+
if (StorageClass == StorageClassFunction) {
1930+
std::stringstream SS;
1931+
SS << "Global variable can not have Function storage class. "
1932+
<< "Consider setting a proper address space.\n "
1933+
<< "Original LLVM value:\n"
1934+
<< toString(GV);
1935+
getErrorLog().checkError(false, SPIRVEC_InvalidInstruction, SS.str());
1936+
}
19291937
}
19301938

19311939
SPIRVType *TranslatedTy = transType(Ty);

llvm-spirv/test/DebugInfo/COFF/global-dllimport.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ source_filename = "test/DebugInfo/COFF/global-dllimport.ll"
1010
target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"
1111
target triple = "spir64-unknown-unknown"
1212

13-
@"\01?id@?$numpunct@D@@0HA" = available_externally dllimport global i32 0, align 4, !dbg !0
13+
@"\01?id@?$numpunct@D@@0HA" = available_externally dllimport addrspace(1) global i32 0, align 4, !dbg !0
1414

1515
!llvm.dbg.cu = !{!2}
1616
!llvm.module.flags = !{!14, !15}

llvm-spirv/test/DebugInfo/Generic/2009-11-06-NamelessGlobalVariable.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:
88
target triple = "spir64-unknown-unknown"
99
source_filename = "test/DebugInfo/Generic/2009-11-06-NamelessGlobalVariable.ll"
1010

11-
@0 = internal constant i32 1, !dbg !0
11+
@0 = internal addrspace(1) constant i32 1, !dbg !0
1212

1313
!llvm.dbg.cu = !{!4}
1414
!llvm.module.flags = !{!7}

llvm-spirv/test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ target triple = "spir64-unknown-unknown"
1414

1515
source_filename = "test/DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll"
1616

17-
@i = common global i32 0, !dbg !0
17+
@i = common addrspace(1) global i32 0, !dbg !0
1818

1919
; Function Attrs: nounwind readnone
2020
declare void @llvm.dbg.declare(metadata, metadata, metadata) #0
@@ -25,11 +25,11 @@ declare void @llvm.dbg.value(metadata, metadata, metadata) #0
2525
; Function Attrs: nounwind ssp
2626
define i32 @bar() #1 !dbg !8 {
2727
entry:
28-
%0 = load i32, ptr @i, align 4, !dbg !11
28+
%0 = load i32, ptr addrspace(1) @i, align 4, !dbg !11
2929
tail call void @llvm.dbg.value(metadata i32 %0, metadata !13, metadata !24), !dbg !25
3030
tail call void @llvm.dbg.declare(metadata !5, metadata !18, metadata !24), !dbg !26
3131
%1 = mul nsw i32 %0, %0, !dbg !27
32-
store i32 %1, ptr @i, align 4, !dbg !11
32+
store i32 %1, ptr addrspace(1) @i, align 4, !dbg !11
3333
ret i32 %1, !dbg !28
3434
}
3535

llvm-spirv/test/DebugInfo/Generic/PR20038.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ target triple = "spir64-unknown-unknown"
5959

6060
%struct.C = type { i8 }
6161

62-
@b = external global i8
62+
@b = external addrspace(1) global i8
6363

6464
; Function Attrs: nounwind
6565
define void @_Z4fun4v() #0 !dbg !12 {
@@ -68,7 +68,7 @@ entry:
6868
%this.addr.i = alloca ptr, align 8, !dbg !22
6969
%agg.tmp.ensured = alloca %struct.C, align 1
7070
%cleanup.cond = alloca i1
71-
%0 = load i8, ptr @b, align 1, !dbg !24
71+
%0 = load i8, ptr addrspace(1) @b, align 1, !dbg !24
7272
%tobool = trunc i8 %0 to i1, !dbg !24
7373
store i1 false, ptr %cleanup.cond
7474
br i1 %tobool, label %land.rhs, label %land.end, !dbg !24

llvm-spirv/test/DebugInfo/Generic/c-and-cpp-mixed.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@
1818

1919
; CHECK-LLVM: define spir_func void @foo() #0 !dbg ![[#Func1:]] {
2020
; CHECK-LLVM: entry:
21-
; CHECK-LLVM: %puts = call spir_func i32 @puts(ptr nocapture @str) #0, !dbg ![[#Puts1Loc:]]
21+
; CHECK-LLVM: %puts = call spir_func i32 @puts(ptr addrspace(1) nocapture @str) #0, !dbg ![[#Puts1Loc:]]
2222
; CHECK-LLVM: ret void, !dbg ![[#Ret1:]]
2323
; CHECK-LLVM: }
2424

2525
; CHECK-LLVM: define spir_func i32 @main(i32 %argc, ptr nocapture %argv) #0 !dbg ![[#Func2:]] {
2626
; CHECK-LLVM: entry:
2727
; CHECK-LLVM: call void @llvm.dbg.value(metadata i32 %argc, metadata ![[#Fun2Param1:]], metadata !DIExpression()), !dbg ![[#Fun2Param1Loc:]]
2828
; CHECK-LLVM: call void @llvm.dbg.value(metadata ptr %argv, metadata ![[#Fun2Param2:]], metadata !DIExpression(DW_OP_deref, DW_OP_deref)), !dbg ![[#Fun2Param2Loc:]]
29-
; CHECK-LLVM: %0 = bitcast ptr @str1 to ptr, !dbg ![[#Puts2Loc:]]
30-
; CHECK-LLVM: %puts = call spir_func i32 @puts(ptr nocapture %0) #0, !dbg ![[#Puts2Loc]]
29+
; CHECK-LLVM: %0 = bitcast ptr addrspace(1) @str1 to ptr addrspace(1), !dbg ![[#Puts2Loc:]]
30+
; CHECK-LLVM: %puts = call spir_func i32 @puts(ptr addrspace(1) nocapture %0) #0, !dbg ![[#Puts2Loc]]
3131
; CHECK-LLVM: call spir_func void @foo() #0, !dbg ![[#CallFoo:]]
3232
; CHECK-LLVM: ret i32 0, !dbg ![[#Ret2:]]
3333
; CHECK-LLVM: }
@@ -65,23 +65,23 @@ target triple = "spir64-unknown-unknown"
6565

6666
; ModuleID = 'test.bc'
6767

68-
@str = private unnamed_addr constant [4 x i8] c"FOO\00"
69-
@str1 = private unnamed_addr constant [6 x i8] c"Main!\00"
68+
@str = private unnamed_addr addrspace(1) constant [4 x i8] c"FOO\00"
69+
@str1 = private unnamed_addr addrspace(1) constant [6 x i8] c"Main!\00"
7070

7171
define void @foo() nounwind !dbg !5 {
7272
entry:
73-
%puts = tail call i32 @puts(ptr @str), !dbg !23
73+
%puts = tail call i32 @puts(ptr addrspace(1) @str), !dbg !23
7474
ret void, !dbg !25
7575
}
7676

77-
declare i32 @puts(ptr nocapture) nounwind
77+
declare i32 @puts(ptr addrspace(1) nocapture) nounwind
7878

7979
define i32 @main(i32 %argc, ptr nocapture %argv) nounwind !dbg !12 {
8080
entry:
8181
tail call void @llvm.dbg.value(metadata i32 %argc, metadata !21, metadata !DIExpression()), !dbg !26
8282
; Avoid talking about the pointer size in debug info because that's target dependent
8383
tail call void @llvm.dbg.value(metadata ptr %argv, metadata !22, metadata !DIExpression(DW_OP_deref, DW_OP_deref)), !dbg !27
84-
%puts = tail call i32 @puts(ptr @str1), !dbg !28
84+
%puts = tail call i32 @puts(ptr addrspace(1) @str1), !dbg !28
8585
tail call void @foo() nounwind, !dbg !30
8686
ret i32 0, !dbg !31
8787
}

llvm-spirv/test/DebugInfo/Generic/dwarf-public-names.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,18 @@ source_filename = "test/DebugInfo/Generic/dwarf-public-names.ll"
6060

6161
%struct.C = type { i8 }
6262

63-
@_ZN1C22static_member_variableE = global i32 0, align 4, !dbg !0
64-
@global_variable = global %struct.C zeroinitializer, align 1, !dbg !15
65-
@_ZN2ns25global_namespace_variableE = global i32 1, align 4, !dbg !17
63+
@_ZN1C22static_member_variableE = addrspace(1) global i32 0, align 4, !dbg !0
64+
@global_variable = addrspace(1) global %struct.C zeroinitializer, align 1, !dbg !15
65+
@_ZN2ns25global_namespace_variableE = addrspace(1) global i32 1, align 4, !dbg !17
6666

6767
; Function Attrs: nounwind uwtable
68-
define void @_ZN1C15member_functionEv(ptr %this) #0 align 2 !dbg !23 {
68+
define void @_ZN1C15member_functionEv(ptr addrspace(1) %this) #0 align 2 !dbg !23 {
6969
entry:
7070
%this.addr = alloca ptr, align 8
71-
store ptr %this, ptr %this.addr, align 8
71+
store ptr addrspace(1) %this, ptr %this.addr, align 8
7272
call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !24, metadata !26), !dbg !27
7373
%this1 = load ptr, ptr %this.addr
74-
store i32 0, ptr @_ZN1C22static_member_variableE, align 4, !dbg !28
74+
store i32 0, ptr addrspace(1) @_ZN1C22static_member_variableE, align 4, !dbg !28
7575
ret void, !dbg !29
7676
}
7777

@@ -81,7 +81,7 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
8181
; Function Attrs: nounwind uwtable
8282
define i32 @_ZN1C22static_member_functionEv() #0 align 2 !dbg !30 {
8383
entry:
84-
%0 = load i32, ptr @_ZN1C22static_member_variableE, align 4, !dbg !31
84+
%0 = load i32, ptr addrspace(1) @_ZN1C22static_member_variableE, align 4, !dbg !31
8585
ret i32 %0, !dbg !31
8686
}
8787

@@ -94,7 +94,7 @@ entry:
9494
; Function Attrs: nounwind uwtable
9595
define void @_ZN2ns25global_namespace_functionEv() #0 !dbg !34 {
9696
entry:
97-
call void @_ZN1C15member_functionEv(ptr @global_variable), !dbg !37
97+
call void @_ZN1C15member_functionEv(ptr addrspace(1) @global_variable), !dbg !37
9898
ret void, !dbg !38
9999
}
100100

llvm-spirv/test/DebugInfo/Generic/enum.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ target triple = "spir64-unknown-unknown"
4242

4343
source_filename = "test/DebugInfo/Generic/enum.ll"
4444

45-
@a = global i64 0, align 8, !dbg !0
45+
@a = addrspace(1) global i64 0, align 8, !dbg !0
4646

4747
; Function Attrs: nounwind uwtable
4848
define void @_Z4funcv() #0 !dbg !17 {

llvm-spirv/test/DebugInfo/Generic/missing-abstract-variable.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ target triple = "spir64-unknown-unknown"
9696
; CHECK-NOT: DW_TAG
9797
; CHECK: DW_AT_abstract_origin {{.*}} "s"
9898

99-
@t = external global i32
99+
@t = external addrspace(1) global i32
100100

101101
; Function Attrs: uwtable
102102
define void @_Z1bv() #0 !dbg !4 {
@@ -114,7 +114,7 @@ entry:
114114
br i1 %u, label %if.then.i, label %_Z1xb.exit, !dbg !34
115115

116116
if.then.i: ; preds = %entry
117-
%0 = load i32, ptr @t, align 4, !dbg !35, !tbaa !36
117+
%0 = load i32, ptr addrspace(1) @t, align 4, !dbg !35, !tbaa !36
118118
tail call void @llvm.dbg.value(metadata i32 %0, metadata !40, metadata !DIExpression()), !dbg !35
119119
tail call void @_Z1fi(i32 %0), !dbg !41
120120
br label %_Z1xb.exit, !dbg !42

llvm-spirv/test/DebugInfo/Generic/namespace_inline_function_definition.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ target triple = "spir64-unknown-unknown"
3939
; CHECK: NULL
4040
; CHECK: NULL
4141

42-
@x = external global i32
42+
@x = external addrspace(1) global i32
4343

4444
; Function Attrs: uwtable
4545
define i32 @main() #0 !dbg !4 {
4646
entry:
4747
%i.addr.i = alloca i32, align 4
4848
%retval = alloca i32, align 4
4949
store i32 0, ptr %retval
50-
%0 = load i32, ptr @x, align 4, !dbg !16
50+
%0 = load i32, ptr addrspace(1) @x, align 4, !dbg !16
5151
store i32 %0, ptr %i.addr.i, align 4
5252
call void @llvm.dbg.declare(metadata ptr %i.addr.i, metadata !117, metadata !DIExpression()), !dbg !18
5353
%1 = load i32, ptr %i.addr.i, align 4, !dbg !18

llvm-spirv/test/DebugInfo/Generic/pass-by-value.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ target triple = "spir64-unknown-unknown"
3333
%struct.S = type { i8 }
3434
%struct.T = type { i8 }
3535

36-
@s = global %struct.S zeroinitializer, align 1, !dbg !0
37-
@__dso_handle = external hidden global i8
38-
@t = global %struct.T zeroinitializer, align 1, !dbg !6
36+
@s = addrspace(1) global %struct.S zeroinitializer, align 1, !dbg !0
37+
@__dso_handle = external hidden addrspace(1) global i8
38+
@t = addrspace(1) global %struct.T zeroinitializer, align 1, !dbg !6
3939

4040
!llvm.dbg.cu = !{!2}
4141
!llvm.module.flags = !{!20, !21, !22, !23}

llvm-spirv/test/DebugInfo/Generic/static_member_array_dwarf5.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ source_filename = "static_member_array.cpp"
2727
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
2828
target triple = "spir64-unknown-unknown"
2929

30-
@_ZN1A15fully_specifiedE = global i32 0, align 4, !dbg !0
31-
@_ZN1A4smemE = global [4 x i32] [i32 0, i32 1, i32 2, i32 3], align 16, !dbg !6
30+
@_ZN1A15fully_specifiedE = addrspace(1) global i32 0, align 4, !dbg !0
31+
@_ZN1A4smemE = addrspace(1) global [4 x i32] [i32 0, i32 1, i32 2, i32 3], align 16, !dbg !6
3232

3333
!llvm.dbg.cu = !{!2}
3434
!llvm.module.flags = !{!19, !20, !21}

llvm-spirv/test/DebugInfo/Generic/template-recursive-void.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ source_filename = "test/DebugInfo/Generic/template-recursive-void.ll"
2929

3030
%class.bar = type { i8 }
3131

32-
@filters = global %class.bar zeroinitializer, align 1, !dbg !0
32+
@filters = addrspace(1) global %class.bar zeroinitializer, align 1, !dbg !0
3333

3434
!llvm.dbg.cu = !{!29}
3535
!llvm.module.flags = !{!32, !33}

llvm-spirv/test/DebugInfo/Generic/tu-member-pointer.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ target triple = "spir64-unknown-unknown"
2020

2121
source_filename = "test/DebugInfo/Generic/tu-member-pointer.ll"
2222

23-
@x = global i64 -1, align 8, !dbg !0
23+
@x = addrspace(1) global i64 -1, align 8, !dbg !0
2424

2525
!llvm.dbg.cu = !{!6}
2626
!llvm.module.flags = !{!10, !11}

llvm-spirv/test/DebugInfo/Generic/two-cus-from-same-file.ll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,23 @@ target triple = "spir64-unknown-unknown"
1717

1818
; ModuleID = 'test.bc'
1919

20-
@str = private unnamed_addr constant [4 x i8] c"FOO\00"
21-
@str1 = private unnamed_addr constant [6 x i8] c"Main!\00"
20+
@str = private unnamed_addr addrspace(1) constant [4 x i8] c"FOO\00"
21+
@str1 = private unnamed_addr addrspace(1) constant [6 x i8] c"Main!\00"
2222

2323
define void @foo() nounwind !dbg !5 {
2424
entry:
25-
%puts = tail call i32 @puts(ptr @str), !dbg !23
25+
%puts = tail call i32 @puts(ptr addrspace(1) @str), !dbg !23
2626
ret void, !dbg !25
2727
}
2828

29-
declare i32 @puts(ptr nocapture) nounwind
29+
declare i32 @puts(ptr addrspace(1) nocapture) nounwind
3030

3131
define i32 @main(i32 %argc, ptr nocapture %argv) nounwind !dbg !12 {
3232
entry:
3333
tail call void @llvm.dbg.value(metadata i32 %argc, metadata !21, metadata !DIExpression()), !dbg !26
3434
; Avoid talking about the pointer size in debug info because that's target dependent
3535
tail call void @llvm.dbg.value(metadata ptr %argv, metadata !22, metadata !DIExpression(DW_OP_deref, DW_OP_deref)), !dbg !27
36-
%puts = tail call i32 @puts(ptr @str1), !dbg !28
36+
%puts = tail call i32 @puts(ptr addrspace(1) @str1), !dbg !28
3737
tail call void @foo() nounwind, !dbg !30
3838
ret i32 0, !dbg !31
3939
}

llvm-spirv/test/DebugInfo/Generic/typedef-arr-size.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ target triple = "spir64-unknown-unknown"
99

1010
source_filename = "test/DebugInfo/Generic/typedef-arr-size.ll"
1111

12-
@x = dso_local global <16 x i32> zeroinitializer, align 16, !dbg !0
12+
@x = dso_local addrspace(1) global <16 x i32> zeroinitializer, align 16, !dbg !0
1313

1414
!llvm.dbg.cu = !{!8}
1515
!llvm.module.flags = !{!11, !12}

llvm-spirv/test/DebugInfo/Generic/typedef.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ target triple = "spir64-unknown-unknown"
2121

2222
source_filename = "test/DebugInfo/Generic/typedef.ll"
2323

24-
@y = global ptr null, align 8, !dbg !0
24+
@y = addrspace(1) global ptr null, align 8, !dbg !0
2525

2626
!llvm.dbg.cu = !{!5}
2727
!llvm.module.flags = !{!8, !9}

llvm-spirv/test/DebugInfo/NonSemantic/DebugSourceContinued.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ source_filename = "t.c"
3737
;target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-n8:16:32:64"
3838
target triple = "spir64"
3939

40-
@t1 = global i32 1, align 4, !dbg !0
41-
@t2 = global i32 0, align 4, !dbg !6
40+
@t1 = addrspace(1) global i32 1, align 4, !dbg !0
41+
@t2 = addrspace(1) global i32 0, align 4, !dbg !6
4242

4343
!llvm.dbg.cu = !{!2}
4444
!llvm.module.flags = !{!11, !12, !13}

llvm-spirv/test/DebugInfo/NonSemantic/Shader200/DebugInfoStringType.ll

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -77,24 +77,24 @@ target triple = "spir64-unknown-unknown"
7777

7878
%"QNCA_a0$ptr$rank0$" = type { ptr, i64, i64, i64, i64, i64 }
7979

80-
@strlit = internal unnamed_addr constant [5 x i8] c"HELLO"
81-
@strlit.1 = internal unnamed_addr constant [3 x i8] c"TOM"
82-
@"hello_world_$GREETING" = internal global %"QNCA_a0$ptr$rank0$" zeroinitializer, !dbg !2
83-
@"hello_world_$NAME" = internal global [10 x i8] zeroinitializer, align 1, !dbg !10
84-
@0 = internal unnamed_addr constant i32 65536, align 4
85-
@1 = internal unnamed_addr constant i32 2, align 4
86-
@strlit.2 = internal unnamed_addr constant [2 x i8] c", "
80+
@strlit = internal unnamed_addr addrspace(1) constant [5 x i8] c"HELLO"
81+
@strlit.1 = internal unnamed_addr addrspace(1) constant [3 x i8] c"TOM"
82+
@"hello_world_$GREETING" = internal addrspace(1) global %"QNCA_a0$ptr$rank0$" zeroinitializer, !dbg !2
83+
@"hello_world_$NAME" = internal addrspace(1) global [10 x i8] zeroinitializer, align 1, !dbg !10
84+
@0 = internal unnamed_addr addrspace(1) constant i32 65536, align 4
85+
@1 = internal unnamed_addr addrspace(1) constant i32 2, align 4
86+
@strlit.2 = internal unnamed_addr addrspace(1) constant [2 x i8] c", "
8787

8888
; Function Attrs: nounwind uwtable
8989
define void @MAIN__() local_unnamed_addr #0 !dbg !4{
90-
%"hello_world_$GREETING_fetch.16" = load ptr, ptr @"hello_world_$GREETING", align 16, !dbg !20
91-
%fetch.15 = load i64, ptr getelementptr inbounds (%"QNCA_a0$ptr$rank0$", ptr @"hello_world_$GREETING", i64 0, i32 1), align 8, !dbg !20
90+
%"hello_world_$GREETING_fetch.16" = load ptr, ptr addrspace(1) @"hello_world_$GREETING", align 16, !dbg !20
91+
%fetch.15 = load i64, ptr addrspace(1) getelementptr inbounds (%"QNCA_a0$ptr$rank0$", ptr addrspace(1) @"hello_world_$GREETING", i64 0, i32 1), align 8, !dbg !20
9292
call void @llvm.dbg.value(metadata i64 %fetch.15, metadata !24, metadata !DIExpression()), !dbg !21
9393
call void @llvm.dbg.value(metadata i64 %fetch.15, metadata !31, metadata !DIExpression()), !dbg !21
9494
call void @llvm.dbg.value(metadata i64 10, metadata !28, metadata !DIExpression()), !dbg !21
9595
call void @llvm.dbg.value(metadata i64 10, metadata !32, metadata !DIExpression()), !dbg !21
9696
call void @llvm.dbg.declare(metadata ptr %"hello_world_$GREETING_fetch.16", metadata !26, metadata !DIExpression()), !dbg !36
97-
call void @llvm.dbg.declare(metadata ptr @"hello_world_$NAME", metadata !29, metadata !DIExpression()), !dbg !37
97+
call void @llvm.dbg.declare(metadata ptr addrspace(1) @"hello_world_$NAME", metadata !29, metadata !DIExpression()), !dbg !37
9898
ret void, !dbg !38
9999
}
100100

llvm-spirv/test/DebugInfo/NonSemantic/Shader200/FortranComplex.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@ source_filename = "test.f90"
5656
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
5757
target triple = "spir64-unknown-unknown"
5858

59-
@0 = internal unnamed_addr constant i32 65536, align 4
60-
@1 = internal unnamed_addr constant i32 2, align 4
59+
@0 = internal unnamed_addr addrspace(1) constant i32 65536, align 4
60+
@1 = internal unnamed_addr addrspace(1) constant i32 2, align 4
6161

6262
; Function Attrs: nounwind uwtable
6363
define void @MAIN__() local_unnamed_addr !dbg !4 !llfort.type_idx !12 {
6464
alloca_0:
65-
%func_result = tail call i32 @for_set_fpe_(ptr nonnull @0), !dbg !13, !llfort.type_idx !14
66-
%func_result2 = tail call i32 @for_set_reentrancy(ptr nonnull @1), !dbg !13, !llfort.type_idx !14
65+
%func_result = tail call i32 @for_set_fpe_(ptr addrspace(1) nonnull @0), !dbg !13, !llfort.type_idx !14
66+
%func_result2 = tail call i32 @for_set_reentrancy(ptr addrspace(1) nonnull @1), !dbg !13, !llfort.type_idx !14
6767
call void @llvm.dbg.value(metadata float 1.000000e+00, metadata !11, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)), !dbg !15
6868
call void @llvm.dbg.value(metadata float 2.000000e+00, metadata !11, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)), !dbg !15
6969
call void @llvm.dbg.value(metadata float 2.000000e+00, metadata !10, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32)), !dbg !15
@@ -73,10 +73,10 @@ alloca_0:
7373
ret void, !dbg !16
7474
}
7575

76-
declare !llfort.intrin_id !17 !llfort.type_idx !18 i32 @for_set_fpe_(ptr nocapture readonly) local_unnamed_addr
76+
declare !llfort.intrin_id !17 !llfort.type_idx !18 i32 @for_set_fpe_(ptr addrspace(1) nocapture readonly) local_unnamed_addr
7777

7878
; Function Attrs: nofree
79-
declare !llfort.intrin_id !19 !llfort.type_idx !20 i32 @for_set_reentrancy(ptr nocapture readonly) local_unnamed_addr
79+
declare !llfort.intrin_id !19 !llfort.type_idx !20 i32 @for_set_reentrancy(ptr addrspace(1) nocapture readonly) local_unnamed_addr
8080

8181
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
8282
declare void @llvm.dbg.value(metadata, metadata, metadata)

0 commit comments

Comments
 (0)