[PATCH] D67723: [DebugInfo] Add option to disable inline line tables.

Paul Robinson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 24 14:40:45 PDT 2019


probinson added a comment.

> These experiments are convincing me that, in general, line zero isn't that helpful for DWARF consumers. If the goal is to get smooth stepping, we may want to refocus on getting reliable is_stmt bits in the line table.

If you mean, it's not useful for identifying the call site as the implicit source for the inlined function, well, yeah.  Line 0 means "there is no useful source location to attach to this instruction" and it's not what you want here.  Based solely on the description of /Zo- in the Microsoft docs, I'd guess it behaves more like Sony's original implementation: Instead of attaching the call-site location using InlinedAt, just replace the original source location with the call-site location.

Adrian's point that line 0 would be less misleading for profilers etc is true, but as a couple of Dev Meeting discussions suggested, there is no one solution that will please all consumers (unless we invent a more complicated line table that provides everyone with the answers they want).  My thinking is that if the user *asked* to suppress inlined scopes, then profiling is not their major concern, and there's no benefit to using line 0 here.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D67723/new/

https://reviews.llvm.org/D67723





More information about the llvm-commits mailing list