<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><br id="lineBreakAtBeginningOfMessage"><div><br><blockquote type="cite"><div>On Jul 8, 2024, at 2:18 PM, David Blaikie <dblaikie@gmail.com> wrote:</div><br class="Apple-interchange-newline"><div><div dir="ltr"><a class="gmail_plusreply" id="plusReplyChip-0" href="mailto:aprantl@apple.com" tabindex="-1">@Adrian Prantl</a> and <a class="gmail_plusreply" id="plusReplyChip-1" href="mailto:jdevlieghere@apple.com" tabindex="-1">@Jonas Devlieghere</a> with the CAS DWARF stuff, how are you folks separating line table fragments for functions? My understanding was the line table header was too large to have one on every function's line table fragment, so I would've thought you'd figured out a way to make line table fragments that could be added/removed from a line table without disturbing the other flags/state and without relying on specific values in/out of the line register?<br></div></div></blockquote></div><br><div>[Sorry for the delay, I've been out on vacation]</div><div><br></div><div>With -cas-friendly-debug-info (https://github.com/swiftlang/llvm-project/blob/d0204d443283ed71526b61ffc6a2994dd2ff46f4/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp#L174) a DW_LNE_end_sequence is emitted at the end of each function. This resets the state machine and allows for individual functions to grow/shrink in size without disturbing the encoding for its neighbors. It does not emit a new header for each function.</div><div><br></div><div>-- adrian</div></body></html>