[PATCH] D37783: [ThinLTO] For SamplePGO, need to handle ICP targets consistently in thin link

Teresa Johnson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 12 18:21:04 PDT 2017


tejohnson created this revision.
Herald added subscribers: eraman, inglorion, mehdi_amini.

SamplePGO indirect call profiles record the target as the original GUID
for statics. The importer had special handling to map to the normal GUID
in that case. The dead global analysis needs the same treatment or
inconsistencies arise, resulting in linker unsats due to some dead
symbols being exported and kept, leaving in references to other dead
symbols that are removed.

This can happen when a SamplePGO profile collected by one binary is used
for a different binary, so the indirect call profiles may not accurately
reflect live targets.


https://reviews.llvm.org/D37783

Files:
  lib/Transforms/IPO/FunctionImport.cpp
  test/Transforms/PGOProfile/Inputs/thinlto_samplepgo_icp2a.ll
  test/Transforms/PGOProfile/Inputs/thinlto_samplepgo_icp2b.ll
  test/Transforms/PGOProfile/thinlto_samplepgo_icp2.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37783.114952.patch
Type: text/x-patch
Size: 8384 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170913/8b1f8fd8/attachment.bin>


More information about the llvm-commits mailing list