|
| 1 | +; This test was obtained from swift source code and then automatically reducing it via Delta. |
| 2 | +; The swift source code was from the test test/DebugInfo/debug_scope_distinct.swift. |
| 3 | + |
| 4 | +; RUN: opt %s -S -p=sroa -o - | FileCheck %s |
| 5 | + |
| 6 | +; CHECK: [[SROA_5_SROA_21:%.*]] = alloca [7 x i8], align 8 |
| 7 | +; CHECK-NEXT: tail call void @llvm.dbg.value(metadata ptr [[SROA_5_SROA_21]], metadata [[META59:![0-9]+]], metadata !DIExpression(DW_OP_LLVM_fragment, 72, 56)), !dbg [[DBG72:![0-9]+]] |
| 8 | + |
| 9 | +; CHECK: tail call void @llvm.dbg.value(metadata ptr [[REG2:%[0-9]+]], metadata [[META54:![0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg [[DBG78:![0-9]+]] |
| 10 | +; CHECK-NEXT: tail call void @llvm.dbg.value(metadata ptr [[REG2:%[0-9]+]], metadata [[META56:![0-9]+]], metadata !DIExpression(DW_OP_deref)), !dbg [[DBG78]] |
| 11 | +; CHECK-NEXT: tail call void @llvm.dbg.value(metadata i64 0, metadata [[META57:![0-9]+]], metadata !DIExpression()), !dbg [[DBG78]] |
| 12 | + |
| 13 | +; CHECK: [[SROA_418_SROA_COPYLOAD:%.*]] = load i8, ptr [[SROA_418_0_U1_IDX:%.*]], align 8, !dbg [[DBG78]] |
| 14 | +; CHECK-NEXT: tail call void @llvm.dbg.value(metadata i8 [[SROA_418_SROA_COPYLOAD]], metadata [[META59]], metadata !DIExpression(DW_OP_LLVM_fragment, 64, 8)), !dbg [[DBG72]] |
| 15 | + |
| 16 | +%T4main1TV13TangentVectorV = type <{ %T4main1UV13TangentVectorV, [7 x i8], %T4main1UV13TangentVectorV }> |
| 17 | +%T4main1UV13TangentVectorV = type <{ %T1M1SVySfG, [7 x i8], %T4main1VV13TangentVectorV }> |
| 18 | +%T1M1SVySfG = type <{ ptr, %Ts4Int8V }> |
| 19 | +%Ts4Int8V = type <{ i8 }> |
| 20 | +%T4main1VV13TangentVectorV = type <{ %T1M1SVySfG }> |
| 21 | +define hidden swiftcc void @"$s4main1TV13TangentVectorV1poiyA2E_AEtFZ"(ptr noalias nocapture sret(%T4main1TV13TangentVectorV) %0, ptr noalias nocapture dereferenceable(57) %1, ptr noalias nocapture dereferenceable(57) %2) #0 !dbg !44 { |
| 22 | + %7 = alloca %T4main1VV13TangentVectorV |
| 23 | + %8 = alloca %T4main1UV13TangentVectorV |
| 24 | + tail call void @llvm.dbg.value(metadata ptr %8, metadata !82, metadata !DIExpression()), !dbg !92 |
| 25 | + tail call void @llvm.dbg.value(metadata ptr %1, metadata !54, metadata !DIExpression(DW_OP_deref)), !dbg !95 |
| 26 | + tail call void @llvm.dbg.value(metadata ptr %2, metadata !56, metadata !DIExpression(DW_OP_deref)), !dbg !95 |
| 27 | + tail call void @llvm.dbg.value(metadata i64 0, metadata !57, metadata !DIExpression()), !dbg !95 |
| 28 | + %.u2 = getelementptr inbounds %T4main1TV13TangentVectorV, ptr %1, i32 0, i32 2 |
| 29 | + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %.u2, i64 25, i1 false), !dbg !95 |
| 30 | + %.s7 = getelementptr inbounds %T4main1UV13TangentVectorV, ptr %8, i32 0, i32 0 |
| 31 | + %.s7.b = getelementptr inbounds %T1M1SVySfG, ptr %.s7, i32 0, i32 1 |
| 32 | + %.s7.b._value = getelementptr inbounds %Ts4Int8V, ptr %.s7.b, i32 0, i32 0 |
| 33 | + %26 = load i8, ptr %.s7.b._value |
| 34 | + %.v9 = getelementptr inbounds %T4main1UV13TangentVectorV, ptr %8, i32 0, i32 2 |
| 35 | + call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %.v9, i64 9, i1 false) |
| 36 | + %.s11 = getelementptr inbounds %T4main1VV13TangentVectorV, ptr %7, i32 0, i32 0 |
| 37 | + %.s11.c = getelementptr inbounds %T1M1SVySfG, ptr %.s11, i32 0, i32 0 |
| 38 | + %32 = load ptr, ptr %.s11.c |
| 39 | + ret void |
| 40 | +} |
| 41 | +!llvm.module.flags = !{ !7, !15} |
| 42 | +!7 = !{i32 2, !"Debug Info Version", i32 3} |
| 43 | +!15 = !{i32 1, !"Swift Minor Version", i8 0} |
| 44 | +!16 = distinct !DICompileUnit(language: DW_LANG_Swift, file: !17, sdk: "MacOSX14.2.sdk") |
| 45 | +!17 = !DIFile(filename: "/Users/shubham/Development/apple/swift/test/IRGen/debug_scope_distinct.swift", directory: "/Users/shubham/Development/apple/build/Ninja-RelWithDebInfoAssert/swift-macosx-arm64/test") |
| 46 | +!44 = distinct !DISubprogram( unit: !16, retainedNodes: !53) |
| 47 | +!53 = !{} |
| 48 | +!54 = !DILocalVariable( scope: !44, flags: DIFlagArtificial) |
| 49 | +!56 = !DILocalVariable( scope: !44, flags: DIFlagArtificial) |
| 50 | +!57 = !DILocalVariable( scope: !44, flags: DIFlagArtificial) |
| 51 | +!74 = distinct !DISubprogram( unit: !16, retainedNodes: !81) |
| 52 | +!81 = !{} |
| 53 | +!82 = !DILocalVariable( scope: !74, flags: DIFlagArtificial) |
| 54 | +!91 = distinct !DILocation( scope: !44) |
| 55 | +!92 = !DILocation( scope: !74, inlinedAt: !91) |
| 56 | +!95 = !DILocation( scope: !44) |
0 commit comments