forked from OSchip/llvm-project
[PGO] More comments how function pointers for indirect calls are mapped
to function names Summary: Hopefully this will make it easier for the next person to figure all this out... Reviewers: bogner, davidxl Subscribers: davidxl, cfe-commits Differential Revision: http://reviews.llvm.org/D18489 llvm-svn: 264678
This commit is contained in:
parent
3e9664fd60
commit
9734583a92
|
@ -133,6 +133,15 @@ VALUE_PROF_FUNC_PARAM(uint32_t, CounterIndex, Type::getInt32Ty(Ctx))
|
||||||
#else
|
#else
|
||||||
#define INSTR_PROF_DATA_DEFINED
|
#define INSTR_PROF_DATA_DEFINED
|
||||||
#endif
|
#endif
|
||||||
|
/* For indirect function call value profiling, the addresses of the target
|
||||||
|
* functions are profiled by the instrumented code. The target addresses are
|
||||||
|
* written in the raw profile data and converted to target function name's MD5
|
||||||
|
* hash by the profile reader during deserialization. Typically, this happens
|
||||||
|
* when the the raw profile data is read during profile merging.
|
||||||
|
*
|
||||||
|
* For this remapping the ProfData is used. ProfData contains both the function
|
||||||
|
* name hash and the function address.
|
||||||
|
*/
|
||||||
VALUE_PROF_KIND(IPVK_IndirectCallTarget, 0)
|
VALUE_PROF_KIND(IPVK_IndirectCallTarget, 0)
|
||||||
/* These two kinds must be the last to be
|
/* These two kinds must be the last to be
|
||||||
* declared. This is to make sure the string
|
* declared. This is to make sure the string
|
||||||
|
|
Loading…
Reference in New Issue