103e17da5SNabeel Omer; RUN: llc %s --filetype=obj -o %t 203e17da5SNabeel Omer; RUN: llvm-objdump -d %t | FileCheck %s --check-prefixes=OBJ 303e17da5SNabeel Omer; RUN: llvm-dwarfdump --debug-line %t | FileCheck %s --check-prefixes=DBG 403e17da5SNabeel Omer; RUN: llc %s -o - | FileCheck %s --check-prefixes=ASM 503e17da5SNabeel Omer 603e17da5SNabeel Omer; OBJ: 1:{{.*}}nop 703e17da5SNabeel Omer 8*b468ed49SJeremy Morse;; prologue_end goes on start-of-loop, the call to @g. 903e17da5SNabeel Omer;; Address Line Column File ISA Discriminator OpIndex Flags 1003e17da5SNabeel Omer; DBG: 0x0000000000000000 3 0 0 0 0 0 is_stmt 1103e17da5SNabeel Omer; DBG: 0x0000000000000001 0 0 0 0 0 0 1203e17da5SNabeel Omer; DBG: 0x0000000000000010 5 0 0 0 0 0 is_stmt prologue_end 1303e17da5SNabeel Omer; DBG: 0x0000000000000017 5 0 0 0 0 0 is_stmt end_sequence 1403e17da5SNabeel Omer 1503e17da5SNabeel Omer; ASM: .loc 0 0 0 is_stmt 0 1603e17da5SNabeel Omer; ASM-NEXT: .L{{.*}}: 17e6bf48d1SJeremy Morse; ASM-NEXT: .p2align 4 1803e17da5SNabeel Omer 1903e17da5SNabeel Omer;; $ cat test.cpp 2003e17da5SNabeel Omer;; void g(); 2103e17da5SNabeel Omer;; void f() { 2203e17da5SNabeel Omer;; [[clang::code_align(16)]] 2303e17da5SNabeel Omer;; while (1) { g(); } 2403e17da5SNabeel Omer;; } 2503e17da5SNabeel Omer 2603e17da5SNabeel Omertarget datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" 2703e17da5SNabeel Omertarget triple = "x86_64-unknown-linux-gnu" 2803e17da5SNabeel Omer 2903e17da5SNabeel Omerdefine dso_local void @f() local_unnamed_addr !dbg !9 { 3003e17da5SNabeel Omerentry: 3103e17da5SNabeel Omer br label %while.body, !dbg !12 3203e17da5SNabeel Omer 3303e17da5SNabeel Omerwhile.body: ; preds = %entry, %while.body 3403e17da5SNabeel Omer tail call void @g(), !dbg !12 3503e17da5SNabeel Omer br label %while.body, !dbg !12, !llvm.loop !13 3603e17da5SNabeel Omer} 3703e17da5SNabeel Omer 3803e17da5SNabeel Omerdeclare !dbg !16 void @g() local_unnamed_addr 3903e17da5SNabeel Omer 4003e17da5SNabeel Omer!llvm.dbg.cu = !{!0} 4103e17da5SNabeel Omer!llvm.module.flags = !{!2, !3} 4203e17da5SNabeel Omer!llvm.ident = !{!8} 4303e17da5SNabeel Omer 4403e17da5SNabeel Omer!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !1, producer: "clang version 19.0.0git", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, splitDebugInlining: false, nameTableKind: None) 4503e17da5SNabeel Omer!1 = !DIFile(filename: "test.cpp", directory: "/") 4603e17da5SNabeel Omer!2 = !{i32 7, !"Dwarf Version", i32 5} 4703e17da5SNabeel Omer!3 = !{i32 2, !"Debug Info Version", i32 3} 4803e17da5SNabeel Omer!8 = !{!"clang version 19.0.0git"} 4903e17da5SNabeel Omer!9 = distinct !DISubprogram(name: "f", scope: !1, file: !1, line: 3, type: !10, scopeLine: 3, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0) 5003e17da5SNabeel Omer!10 = !DISubroutineType(types: !11) 5103e17da5SNabeel Omer!11 = !{} 5203e17da5SNabeel Omer!12 = !DILocation(line: 5, scope: !9) 5303e17da5SNabeel Omer!13 = distinct !{!13, !12, !12, !14, !15} 5403e17da5SNabeel Omer!14 = !{!"llvm.loop.mustprogress"} 5503e17da5SNabeel Omer!15 = !{!"llvm.loop.align", i32 16} 5603e17da5SNabeel Omer!16 = !DISubprogram(name: "g", scope: !1, file: !1, line: 2, type: !10, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized) 57