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



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to