[PATCH] D112948: [SamplePGO] Fix callsite sample lookup to use dwarf names when dwarf linkage name isn't available.

Wenlei He via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 1 18:52:31 PDT 2021


wenlei added inline comments.


================
Comment at: llvm/lib/ProfileData/SampleProf.cpp:253-254
+      Name = PrevDIL->getScope()->getSubprogram()->getName();
     S.push_back(
-        std::make_pair(LineLocation(getOffset(DIL), Discriminator),
-                       PrevDIL->getScope()->getSubprogram()->getLinkageName()));
+        std::make_pair(FunctionSamples::getCallSiteIdentifier(DIL), Name));
     PrevDIL = DIL;
----------------
hoy wrote:
> wenlei wrote:
> > What I meant is - can we just do this for now and avoid changes in getCallSiteIdentifier? If we want to fix FSAFDO, we can do it in a separate patch. 
> > 
> > ```
> > 
> > // Use C++ linkage name if possible.
> > StringRef Name = PrevDIL->getScope()->getSubprogram()->getLinkageName();
> > if (Name.empty())
> >     Name = PrevDIL->getScope()->getSubprogram()->getName();
> > 
> > S.push_back(
> >         std::make_pair(LineLocation(getOffset(DIL), Discriminator), Name));
> > ```
> This looks good for this change. I was saying the getCallSiteIdentifier change is still needed to make probe-based nested profile work since the currently it only deals with line numbers in this function.
> 
> 
Are you saying change for getCallSiteIdentifier is needed for the linkage name issue with nested probe profile? But isn't there no change for `FunctionSamples::ProfileIsProbeBased` anyways inside `getCallSiteIdentifier`? Sorry I'm confused - I thought this patch is just for fixing linkage name issue as the description says, which is unrelated to nested probe profile.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D112948



More information about the llvm-commits mailing list