105 lines · plain
1; RUN: llc -O0 -mtriple=amdgcn--amdhsa -mcpu=fiji -verify-machineinstrs -filetype=obj < %s | llvm-dwarfdump -v -debug-info - | FileCheck %s2 3; LLVM IR generated with the following command and OpenCL source:4;5; $clang -cl-std=CL2.0 -g -O0 -target amdgcn-amd-amdhsa -S -emit-llvm <path-to-file>6;7; kernel void kernel1() {8; global int addrspace(5)*FuncVar0 = 0;9; constant int addrspace(5)*FuncVar1 = 0;10; local int addrspace(5)*FuncVar2 = 0;11; private int addrspace(5)*FuncVar3 = 0;12; int addrspace(5)*FuncVar4 = 0;13; }14 15; CHECK: DW_AT_name {{.*}}"FuncVar0"16; CHECK-NEXT: DW_AT_decl_file17; CHECK-NEXT: DW_AT_decl_line18; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[a-f0-9]+}} => {0x[[NONE:[a-f0-9]+]]}19 20; CHECK: DW_AT_name {{.*}}"FuncVar1"21; CHECK-NEXT: DW_AT_decl_file22; CHECK-NEXT: DW_AT_decl_line23; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[a-f0-9]+}} => {0x[[NONE]]}24 25; CHECK: DW_AT_name {{.*}}"FuncVar2"26; CHECK-NEXT: DW_AT_decl_file27; CHECK-NEXT: DW_AT_decl_line28; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[a-f0-9]+}} => {0x[[LOCAL:[a-f0-9]+]]}29 30; CHECK: DW_AT_name {{.*}}"FuncVar3"31; CHECK-NEXT: DW_AT_decl_file32; CHECK-NEXT: DW_AT_decl_line33; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[a-f0-9]+}} => {0x[[PRIVATE:[a-f0-9]+]]}34 35; CHECK: DW_AT_name {{.*}}"FuncVar4"36; CHECK-NEXT: DW_AT_decl_file37; CHECK-NEXT: DW_AT_decl_line38; CHECK-NEXT: DW_AT_type [DW_FORM_ref4] (cu + 0x{{[a-f0-9]+}} => {0x[[NONE]]}39 40; CHECK: 0x[[NONE]]: DW_TAG_pointer_type41; CHECK-NEXT: DW_AT_type42; CHECK-NOT: DW_AT_address_class43 44; CHECK: 0x[[LOCAL]]: DW_TAG_pointer_type45; CHECK-NEXT: DW_AT_type46; CHECK-NEXT: DW_AT_address_class [DW_FORM_data4] (0x00000002)47 48; CHECK: 0x[[PRIVATE]]: DW_TAG_pointer_type49; CHECK-NEXT: DW_AT_type50; CHECK-NEXT: DW_AT_address_class [DW_FORM_data4] (0x00000001)51 52declare void @llvm.dbg.declare(metadata, metadata, metadata)53 54define amdgpu_kernel void @kernel1() !dbg !7 {55entry:56 %FuncVar0 = alloca ptr addrspace(1), align 4, addrspace(5)57 %FuncVar1 = alloca ptr addrspace(4), align 4, addrspace(5)58 %FuncVar2 = alloca ptr addrspace(3), align 4, addrspace(5)59 %FuncVar3 = alloca ptr addrspace(5), align 4, addrspace(5)60 %FuncVar4 = alloca ptr, align 4, addrspace(5)61 call void @llvm.dbg.declare(metadata ptr addrspace(5) %FuncVar0, metadata !10, metadata !13), !dbg !1462 store ptr addrspace(1) null, ptr addrspace(5) %FuncVar0, align 4, !dbg !1463 call void @llvm.dbg.declare(metadata ptr addrspace(5) %FuncVar1, metadata !15, metadata !13), !dbg !1664 store ptr addrspace(4) null, ptr addrspace(5) %FuncVar1, align 4, !dbg !1665 call void @llvm.dbg.declare(metadata ptr addrspace(5) %FuncVar2, metadata !17, metadata !13), !dbg !1966 store ptr addrspace(3) addrspacecast (ptr null to ptr addrspace(3)), ptr addrspace(5) %FuncVar2, align 4, !dbg !1967 call void @llvm.dbg.declare(metadata ptr addrspace(5) %FuncVar3, metadata !20, metadata !13), !dbg !2268 store ptr addrspace(5) addrspacecast (ptr null to ptr addrspace(5)), ptr addrspace(5) %FuncVar3, align 4, !dbg !2269 call void @llvm.dbg.declare(metadata ptr addrspace(5) %FuncVar4, metadata !23, metadata !13), !dbg !2470 store ptr null, ptr addrspace(5) %FuncVar4, align 4, !dbg !2471 ret void, !dbg !2572}73 74!llvm.dbg.cu = !{!0}75!opencl.ocl.version = !{!3}76!llvm.module.flags = !{!4, !5}77!llvm.ident = !{!6}78 79!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)80!1 = !DIFile(filename: "pointer-address-space.ll", directory: "/some/random/directory")81!2 = !{}82!3 = !{i32 2, i32 0}83!4 = !{i32 2, !"Dwarf Version", i32 2}84!5 = !{i32 2, !"Debug Info Version", i32 3}85!6 = !{!""}86!7 = distinct !DISubprogram(name: "kernel1", scope: !1, file: !1, line: 1, type: !8, isLocal: false, isDefinition: true, scopeLine: 1, isOptimized: false, unit: !0, retainedNodes: !2)87!8 = !DISubroutineType(types: !9)88!9 = !{null}89!10 = !DILocalVariable(name: "FuncVar0", scope: !7, file: !1, line: 2, type: !11)90!11 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64)91!12 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)92!13 = !DIExpression()93!14 = !DILocation(line: 2, column: 15, scope: !7)94!15 = !DILocalVariable(name: "FuncVar1", scope: !7, file: !1, line: 3, type: !11)95!16 = !DILocation(line: 3, column: 17, scope: !7)96!17 = !DILocalVariable(name: "FuncVar2", scope: !7, file: !1, line: 4, type: !18)97!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 32, dwarfAddressSpace: 2)98!19 = !DILocation(line: 4, column: 14, scope: !7)99!20 = !DILocalVariable(name: "FuncVar3", scope: !7, file: !1, line: 5, type: !21)100!21 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 32, dwarfAddressSpace: 1)101!22 = !DILocation(line: 5, column: 16, scope: !7)102!23 = !DILocalVariable(name: "FuncVar4", scope: !7, file: !1, line: 6, type: !11)103!24 = !DILocation(line: 6, column: 8, scope: !7)104!25 = !DILocation(line: 7, column: 1, scope: !7)105