[PATCH] D30053: Add function importing info from samplepgo profile to the module summary.

Dehao Chen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 16 13:29:24 PST 2017


danielcdh created this revision.

For SamplePGO, the profile may contain cross-module inline stacks. As we need to make sure the profile annotation happens when all the hot inline stacks are expanded, we need to pass this info to the module importer so that it can import proper functions if necessary. This patch implemented this feature by emitting cross-module targets as part of function entry metadata. In the module-summary phase, the metadata is used to build call edges that points to functions need to be imported.


https://reviews.llvm.org/D30053

Files:
  include/llvm/IR/Function.h
  include/llvm/IR/MDBuilder.h
  include/llvm/ProfileData/SampleProf.h
  lib/Analysis/ModuleSummaryAnalysis.cpp
  lib/IR/Function.cpp
  lib/IR/MDBuilder.cpp
  lib/IR/Verifier.cpp
  lib/Transforms/IPO/SampleProfile.cpp
  test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
  test/Transforms/SampleProfile/Inputs/import.prof
  test/Transforms/SampleProfile/import.ll
  test/Verifier/function-metadata-bad.ll
  test/Verifier/metadata-function-prof.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30053.88774.patch
Type: text/x-patch
Size: 13731 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170216/61f45ab8/attachment.bin>


More information about the llvm-commits mailing list