<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/155438>155438</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[llvm-profgen] Support vtable type profiles for context-sensitive LBR perf data or pseudo-probe based profile generation
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
mingmingl-llvm
</td>
</tr>
</table>
<pre>
Currently, llvm-profgen supports 4 settings of SamplePGO profile generation -- {LBR without callgraph, LBR with call graph} x {binary using line + discriminator, binary enabling pseudo-probe based mapping}, in [ProfileGenerator::generateProfile](https://github.com/llvm/llvm-project/blob/665da0a1649814471739c41a702e0e9447316b20/llvm/tools/llvm-profgen/ProfileGenerator.cpp#L497C6-L497C40) and [CSProfileGenerator::generateProfile](https://github.com/llvm/llvm-project/blob/665da0a1649814471739c41a702e0e9447316b20/llvm/tools/llvm-profgen/ProfileGenerator.cpp#L878) respectively.
https://discourse.llvm.org/t/rfc-vtable-type-profiling-for-samplefdo/87283 is an RFC to extend SamplePGO profile format to store the vtable targets of indirect calls and update llvm-profgen to produce the profile. https://github.com/llvm/llvm-project/pull/148013 implements the llvm-profgen change for one setting (LBR without call graph && binary using line + discriminator) and reports unimplemented error for the other three settings.
This is a feature request to support vtable type profiles for context-sensitive LBR profiles (LBR with call graphs) or pseudo-probe based profile generation.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcVU2PnDgQ_TXmUqIF5vvAYbpb5BJpo8z-AQMFeGVs1i5Ppv_9ytDTmcnmkOxxDy1advHqVdWrh3BOzhqxZcWZFddIeFqMbVep5_BTsVIva9Sb8dZevLWoSd0Yv0A4jjdrphk1OL9txpKDHBwSST07MBM8i3VT-OXTHxACpUKYUaMVJI2GOAZWnT-fv8I3SYvxBINQarZiWwL-28V-CsdxdYXX8FIvtbA38E7qGZTUCIyfYZRusHKVWpCxAeIehlr0KkRuDv1oAukeoRcOR1jFtkk9s-oaXpAaWHH-cnD9dFA1lmVPLHu6M8f7LSuujNcL0ebCPe8Y72ZJi-9Pg1kZ70J_7o-Q8S8ciPGuV6ZnvCvLYhSJSMu8qdM8r9Iqa4Y8FVXCMcEmz6ssLXuefMchY5R7hxfaznj3I9fTsG2MZ5_zprqU8f7IE8YbEHoMtV2e_w_V1VUdarLoNhxIvqC6nYAlTyx5-sg5SMJ46_AUkE_GziEZ452dhviFRK8wptuG8aFPqed4MjZ2u26n0TDe1RWvM5AOhIav3QXIAL4S6vEn6p6MXQWFEEfGItCCcGQBEnZG2rdC6lFaHA69u30yfhsF4cedIhNwRz8cOPccJ_jtqWxeKca7NK-TNAMZSK-oye2wH1IOi9DzXgYYjW-rDIzXP67psZDAeMl4Cb-0j4cGLR5G4fWDCI6A1hq75w2cDC0Y_ll8cHCnY7x_LtLtw4AJBXmLYPFvj-5o-uFCj5bftkfb3A4-GE34SrFD7WTQze4yj5B3db4r0gXqxv7MPf7tam8yZMlTNLbZ2GSNiLBNq6LkPCvTIlraPC9KkSQCeSHKKh-GquR84lNd10OTpGUkW57wIql5mRZFlhWnqe-HCZuxStNiqvKR5QmuQqqHqiPpnMc2LYo8qyMlelRuN3TONX6D_ZZxHvzdtvvIez87lidKOnLfYUiS2r8EHxaxuMLzf2wt2glGQeKXGxh5q9rflvheYDCQewdeWv5PAAAA___VrFBg">