[PATCH] D27687: [ThinLTO] Thin link efficiency improvement: don't re-export globals (NFC)

Mehdi AMINI via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 15 11:45:47 PST 2016


mehdi_amini added a comment.

In https://reviews.llvm.org/D27687#624080, @tejohnson wrote:

> > This sounds suspicious to me: `GlobalValueSummary::modulePath()` is a simple accessor. For it to be so hot it means it is calls many times *and we're not doing anything with the returned value*.
>
> Figured out why - see https://reviews.llvm.org/D27755 (which is complementary to this patch)


Great!
I'm still quite surprised that the accessor `modulePath()` is the limit here:

  auto SummaryIter = llvm::find_if(
      SummaryList->second,
      [&](const std::unique_ptr<GlobalValueSummary> &Summary) {
        return Summary->modulePath() == ExportModulePath;
      });

I guess it is inlined and the profiler is likely not separating perfectly the body of modulePath() from the context.


https://reviews.llvm.org/D27687





More information about the llvm-commits mailing list