[compiler-rt] [llvm] [InstrPGO][TypeProf]Annotate vtable types when they are present in the profile (PR #99402)
Teresa Johnson via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 22 09:13:26 PDT 2024
================
@@ -1755,8 +1757,22 @@ void PGOUseFunc::annotateValueSites() {
void PGOUseFunc::annotateValueSites(uint32_t Kind) {
assert(Kind <= IPVK_Last);
unsigned ValueSiteIndex = 0;
- auto &ValueSites = FuncInfo.ValueSites[Kind];
+
unsigned NumValueSites = ProfileRecord.getNumValueSites(Kind);
+
+ // Since there isn't a reliable or fast way for profile reader to tell if a
+ // profile is generated with `-enable-vtable-value-profiling` on, we run the
+ // value profile collector over the function IR to find the instrumented sites
+ // iff function profile records shows the number of instrumented vtable sites
+ // is not zero. Function cfg already takes the number of instrumented
+ // indirect call sites into account so it doesn't hash the number of
+ // instrumented vtables; as a side effect it makes it easier to enable
+ // profiling and profile use in two steps if needed.
+ if (NumValueSites > 0 && Kind == IPVK_VTableTarget &&
----------------
teresajohnson wrote:
Can we add a TODO to remove this if/when `-enable-vtable-value-profiling` is on by default?
https://github.com/llvm/llvm-project/pull/99402
More information about the llvm-commits
mailing list