|
| 1 | +; RUN: opt %s -passes='require<profile-summary>,function(select-optimize)' -o - -S \ |
| 2 | +; RUN: | FileCheck %s |
| 3 | +; RUN: opt %s --try-experimental-debuginfo-iterators -passes='require<profile-summary>,function(select-optimize)' -o - -S \ |
| 4 | +; RUN: | FileCheck %s |
| 5 | + |
| 6 | +;; Check that the dbg.value is moved into the start of the end-block of the |
| 7 | +;; inserted if-block. |
| 8 | + |
| 9 | +; CHECK: select.end: |
| 10 | +; CHECK-NEXT: %[[PHI:.*]] = phi i32 |
| 11 | +; CHECK-NEXT: dbg.value(metadata i32 %[[PHI]], |
| 12 | + |
| 13 | +source_filename = "test.ll" |
| 14 | +target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" |
| 15 | +target triple = "aarch64-unknown-fuchsia" |
| 16 | + |
| 17 | +%struct.hb_glyph_info_t = type { i32, i32, i32, %union._hb_var_int_t, %union._hb_var_int_t } |
| 18 | +%union._hb_var_int_t = type { i32 } |
| 19 | + |
| 20 | +define void @_Z22_hb_ot_shape_normalizePK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t() { |
| 21 | +entry: |
| 22 | + br label %while.body193 |
| 23 | + |
| 24 | +while.body193: ; preds = %while.body193, %entry |
| 25 | + %starter.0337 = phi i32 [ %spec.select322, %while.body193 ], [ 0, %entry ] |
| 26 | + %idxprom207 = zext i32 %starter.0337 to i64 |
| 27 | + %arrayidx208 = getelementptr %struct.hb_glyph_info_t, ptr null, i64 %idxprom207 |
| 28 | + %0 = load i32, ptr %arrayidx208, align 4 |
| 29 | + %call247.val = load i16, ptr null, align 4 |
| 30 | + %cmp249327 = icmp ult i16 %call247.val, 0 |
| 31 | + %cmp249 = select i1 false, i1 false, i1 %cmp249327 |
| 32 | + %spec.select322 = select i1 %cmp249, i32 0, i32 %starter.0337 |
| 33 | + tail call void @llvm.dbg.value(metadata i32 %spec.select322, metadata !13, metadata !DIExpression()), !dbg !20 |
| 34 | + br label %while.body193 |
| 35 | +} |
| 36 | + |
| 37 | +declare void @llvm.dbg.value(metadata, metadata, metadata) |
| 38 | + |
| 39 | + |
| 40 | +!llvm.dbg.cu = !{!0} |
| 41 | +!llvm.module.flags = !{!12} |
| 42 | + |
| 43 | +!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !2, globals: !3, imports: !2, splitDebugInlining: false, nameTableKind: GNU) |
| 44 | +!1 = !DIFile(filename: "../../third_party/harfbuzz-ng/src/src/hb-ot-shape-normalize.cc", directory: ".") |
| 45 | +!2 = !{} |
| 46 | +!3 = !{!4, !9} |
| 47 | +!4 = !DIGlobalVariableExpression(var: !5, expr: !DIExpression()) |
| 48 | +!5 = distinct !DIGlobalVariable(scope: null, file: !1, line: 383, type: !6, isLocal: true, isDefinition: true) |
| 49 | +!6 = !DICompositeType(tag: DW_TAG_array_type, baseType: !7, size: 112, elements: !2) |
| 50 | +!7 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !8) |
| 51 | +!8 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_unsigned_char) |
| 52 | +!9 = !DIGlobalVariableExpression(var: !10, expr: !DIExpression()) |
| 53 | +!10 = distinct !DIGlobalVariable(scope: null, file: !1, line: 410, type: !11, isLocal: true, isDefinition: true) |
| 54 | +!11 = !DICompositeType(tag: DW_TAG_array_type, baseType: !7, size: 96, elements: !2) |
| 55 | +!12 = !{i32 2, !"Debug Info Version", i32 3} |
| 56 | +!13 = !DILocalVariable(name: "starter", scope: !14, file: !1, line: 441, type: !19) |
| 57 | +!14 = distinct !DILexicalBlock(scope: !15, file: !1, line: 435, column: 3) |
| 58 | +!15 = distinct !DILexicalBlock(scope: !16, file: !1, line: 431, column: 7) |
| 59 | +!16 = distinct !DISubprogram(name: "_hb_ot_shape_normalize", linkageName: "_Z22_hb_ot_shape_normalizePK18hb_ot_shape_plan_tP11hb_buffer_tP9hb_font_t", scope: !1, file: !1, line: 291, type: !17, scopeLine: 294, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !2) |
| 60 | +!17 = distinct !DISubroutineType(types: !18) |
| 61 | +!18 = !{null} |
| 62 | +!19 = !DIBasicType(name: "unsigned int", size: 32, encoding: DW_ATE_unsigned) |
| 63 | +!20 = !DILocation(line: 0, scope: !14) |
0 commit comments