wmi added a comment.

In D86502#2245578 <https://reviews.llvm.org/D86502#2245578>, @hoy wrote:

> In D86502#2245460 <https://reviews.llvm.org/D86502#2245460>, @wmi wrote:
>
>>> The early instrumentation also allows the inliner to duplicate probes for 
>>> inlined instances. When a probe along with the other instructions of a 
>>> callee function are inlined into its caller function, the GUID of the 
>>> callee function goes with the probe. This allows samples collected on 
>>> inlined probes to be reported for the original callee function.
>>
>> Just get a question from reading the above. Suppose `A` only has one BB and 
>> the BB has one PseudoProbe in it. If function `A` is inlined into `B1` and 
>> `B2` and both `B1` and `B2` inlined into `C`, the PseudoProbe from `A` will 
>> have two copies in `C` both carrying GUID of `A`. How the samples collected 
>> from `A` inlined into `B1` inlined into `C` are categorized differently from 
>> `A` inlined into `B2` inlined into `C`, especially when debug information is 
>> not enabled (so no inline stack information in the binary)?
>
> This is a very good question. Inlined functions are differentiated by their 
> original callsites. A pseudo probe is allocated for each callsite in the 
> `SampleProfileProbe` pass. Nested inlining will produce a stack of pseudo 
> probes, similar with the Dwarf inline stack. The work is not included in the 
> first set of patches.

Thanks, then how does the pseudo probe for a callsite after inline to represent 
the inline scope it covers?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D86502

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

Reply via email to