[PATCH] D67920: [PGO] Refactor Value Profiling into a plugin based oracle and create a well defined API for the plugins.

wael yehia via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 27 11:10:11 PDT 2019


w2yehia updated this revision to Diff 222128.
w2yehia added a comment.

I enclosed the VPOPluginChain template class in an unnamed namespace so that all instantiated member functions (and constructors) get internal linkage rather than external weak, which will hopefully give more reason to inline them and eliminate their definitions. Thanks to Hubert Tong for this suggestion.

This did not make a difference to the symbol export list inside the clang executable or inside the shared library (libLLVMInstrumentation.so.10svn) that contains ValueProfileOracle.cpp, because the build compiler (clang 8.0) I'm using was able to inline all VPOPluginChain member functions and eliminate their defs.


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

https://reviews.llvm.org/D67920

Files:
  llvm/lib/Transforms/Instrumentation/CMakeLists.txt
  llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
  llvm/lib/Transforms/Instrumentation/ValueProfileOracle.cpp
  llvm/lib/Transforms/Instrumentation/ValueProfileOracle.h
  llvm/lib/Transforms/Instrumentation/ValueProfilePlugins.inc

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67920.222128.patch
Type: text/x-patch
Size: 19584 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190927/e8cc3839/attachment.bin>


More information about the llvm-commits mailing list