[llvm] r264611 - [PGO] Comment how function pointers for indirect calls are mapped to function names
Adam Nemet via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 28 11:27:44 PDT 2016
Author: anemet
Date: Mon Mar 28 13:27:44 2016
New Revision: 264611
URL: http://llvm.org/viewvc/llvm-project?rev=264611&view=rev
Log:
[PGO] Comment 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: llvm-commits
Differential Revision: http://reviews.llvm.org/D18490
Modified:
llvm/trunk/include/llvm/ProfileData/InstrProfData.inc
llvm/trunk/lib/ProfileData/InstrProfReader.cpp
Modified: llvm/trunk/include/llvm/ProfileData/InstrProfData.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ProfileData/InstrProfData.inc?rev=264611&r1=264610&r2=264611&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ProfileData/InstrProfData.inc (original)
+++ llvm/trunk/include/llvm/ProfileData/InstrProfData.inc Mon Mar 28 13:27:44 2016
@@ -73,6 +73,8 @@ INSTR_PROF_DATA(const uint64_t, llvm::Ty
INSTR_PROF_DATA(const IntPtrT, llvm::Type::getInt64PtrTy(Ctx), CounterPtr, \
ConstantExpr::getBitCast(CounterPtr, \
llvm::Type::getInt64PtrTy(Ctx)))
+// This is used to map function pointers for the indirect call targets to
+// function name hashes during the conversion from raw to merged profile data.
INSTR_PROF_DATA(const IntPtrT, llvm::Type::getInt8PtrTy(Ctx), FunctionPointer, \
FunctionAddr)
INSTR_PROF_DATA(IntPtrT, llvm::Type::getInt8PtrTy(Ctx), Values, \
Modified: llvm/trunk/lib/ProfileData/InstrProfReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ProfileData/InstrProfReader.cpp?rev=264611&r1=264610&r2=264611&view=diff
==============================================================================
--- llvm/trunk/lib/ProfileData/InstrProfReader.cpp (original)
+++ llvm/trunk/lib/ProfileData/InstrProfReader.cpp Mon Mar 28 13:27:44 2016
@@ -412,6 +412,9 @@ RawInstrProfReader<IntPtrT>::readValuePr
if (VDataPtrOrErr.getError())
return VDataPtrOrErr.getError();
+ // Note that besides deserialization, this also performs the conversion for
+ // indirect call targets. The function pointers from the raw profile are
+ // remapped into function name hashes.
VDataPtrOrErr.get()->deserializeTo(Record, &Symtab->getAddrHashMap());
CurValueDataSize = VDataPtrOrErr.get()->getSize();
return success();
More information about the llvm-commits
mailing list