diff options
| author | Xinliang David Li <davidxl@google.com> | 2015-11-22 00:06:39 +0000 |
|---|---|---|
| committer | Xinliang David Li <davidxl@google.com> | 2015-11-22 00:06:39 +0000 |
| commit | 1eac9a159caeabdce415479ffec0934aa4a9bdbc (patch) | |
| tree | 540385cfc57726555e48ca7b7fa80c7e4ff75ff0 | |
| parent | 8066d906f179ba417e16a89f51f1a9196550966e (diff) | |
| download | bcm5719-llvm-1eac9a159caeabdce415479ffec0934aa4a9bdbc.tar.gz bcm5719-llvm-1eac9a159caeabdce415479ffec0934aa4a9bdbc.zip | |
[PGO] Move Raw Header def into template file InstrProfData.inc
To enable code sharing with compiler-rt (NFC)
llvm-svn: 253803
| -rw-r--r-- | llvm/include/llvm/ProfileData/InstrProf.h | 12 | ||||
| -rw-r--r-- | llvm/include/llvm/ProfileData/InstrProfData.inc | 44 |
2 files changed, 35 insertions, 21 deletions
diff --git a/llvm/include/llvm/ProfileData/InstrProf.h b/llvm/include/llvm/ProfileData/InstrProf.h index 2ba1335dce9..b93d5d0b966 100644 --- a/llvm/include/llvm/ProfileData/InstrProf.h +++ b/llvm/include/llvm/ProfileData/InstrProf.h @@ -614,16 +614,8 @@ template <class IntPtrT> struct LLVM_ALIGNAS(8) ProfileData { // compiler-rt/lib/profile/InstrProfilingFile.c and // InstrProfilingBuffer.c. struct Header { - const uint64_t Magic; - const uint64_t Version; - const uint64_t DataSize; - const uint64_t CountersSize; - const uint64_t NamesSize; - const uint64_t CountersDelta; - const uint64_t NamesDelta; - const uint64_t ValueKindLast; - const uint64_t ValueDataSize; - const uint64_t ValueDataDelta; +#define INSTR_PROF_RAW_HEADER(Type, Name, Init) Type Name; +#include "llvm/ProfileData/InstrProfData.inc" }; } // end namespace RawInstrProf diff --git a/llvm/include/llvm/ProfileData/InstrProfData.inc b/llvm/include/llvm/ProfileData/InstrProfData.inc index b66df7696ae..9893c59b139 100644 --- a/llvm/include/llvm/ProfileData/InstrProfData.inc +++ b/llvm/include/llvm/ProfileData/InstrProfData.inc @@ -38,11 +38,14 @@ // }; //===----------------------------------------------------------------------===// +/* INSTR_PROF_DATA start. */ +/* Definition of member fields of the per-function control structure. */ #ifndef INSTR_PROF_DATA #define INSTR_PROF_DATA(Type, LLVMType, Name, Initializer) +#else +#define INSTR_PROF_DATA_DEFINED #endif -// INSTR_PROF_DATA_START INSTR_PROF_DATA(const uint32_t, llvm::Type::getInt32Ty(Ctx), NameSize, \ ConstantInt::get(llvm::Type::getInt32Ty(Ctx), \ NamePtr->getType()->getPointerElementType()->getArrayNumElements())) @@ -58,22 +61,44 @@ INSTR_PROF_DATA(const IntPtrT, llvm::Type::getInt64PtrTy(Ctx), CounterPtr, \ llvm::Type::getInt64PtrTy(Ctx))) INSTR_PROF_DATA(const IntPtrT, llvm::Type::getInt8PtrTy(Ctx), FunctionPointer, \ FunctionAddr) -INSTR_PROF_DATA(const IntPtrT, llvm::Type::getInt8PtrTy(Ctx), Values, \ +INSTR_PROF_DATA(IntPtrT, llvm::Type::getInt8PtrTy(Ctx), Values, \ ConstantPointerNull::get(Int8PtrTy)) INSTR_PROF_DATA(const uint16_t, Int16ArrayTy, NumValueSites[IPVK_Last+1], \ ConstantArray::get(Int16ArrayTy, Int16ArrayVals)) -// INSTR_PROF_DATA_END - -#ifdef INSTR_PROF_DATA #undef INSTR_PROF_DATA + +/* INSTR_PROF_DATA end. */ + +/* INSTR_PROF_RAW_HEADER start */ +/* Definition of member fields of the raw profile header data structure. */ +#ifndef INSTR_PROF_RAW_HEADER +#define INSTR_PROF_RAW_HEADER(Type, Name, Initializer) +#else +#define INSTR_PROF_DATA_DEFINED #endif +INSTR_PROF_RAW_HEADER(const uint64_t, Magic, __llvm_profile_get_magic()) +INSTR_PROF_RAW_HEADER(const uint64_t, Version, __llvm_profile_get_version()) +INSTR_PROF_RAW_HEADER(const uint64_t, DataSize, DataSize) +INSTR_PROF_RAW_HEADER(const uint64_t, CountersSize, CountersSize) +INSTR_PROF_RAW_HEADER(const uint64_t, NamesSize, NameSize) +INSTR_PROF_RAW_HEADER(const uint64_t, CountersDelta, (uintptr_t)CountersBegin) +INSTR_PROF_RAW_HEADER(const uint64_t, NamesDelta, (uintptr_t)NamesBegin) +INSTR_PROF_RAW_HEADER(const uint64_t, ValueKindLast, IPVK_Last) +INSTR_PROF_RAW_HEADER(const uint64_t, ValueDataSize, ValueDataSize) +INSTR_PROF_RAW_HEADER(const uint64_t, ValueDataDelta, (uintptr_t)ValueDataBegin) +#undef INSTR_PROF_RAW_HEADER +/* INSTR_PROF_RAW_HEADER end */ +/* COVMAP_FUNC_RECORD start */ +/* Definition of member fields of the function record structure in coverage + * map. + */ #ifndef COVMAP_FUNC_RECORD #define COVMAP_FUNC_RECORD(Type, LLVMType, Name, Initializer) +#else +#define INSTR_PROF_DATA_DEFINED #endif - -// COVMAP_FUNC_RECORD_START COVMAP_FUNC_RECORD(const IntPtrT, llvm::Type::getInt8PtrTy(Ctx), \ NamePtr, llvm::ConstantExpr::getBitCast(NamePtr, \ llvm::Type::getInt8PtrTy(Ctx))) @@ -85,10 +110,7 @@ COVMAP_FUNC_RECORD(const uint32_t, llvm::Type::getInt32Ty(Ctx), DataSize, \ CoverageMapping.size())) COVMAP_FUNC_RECORD(const uint64_t, llvm::Type::getInt64Ty(Ctx), FuncHash, \ llvm::ConstantInt::get(llvm::Type::getInt64Ty(Ctx), FuncHash)) -// COVMAP_FUNC_RECORD_END - -#ifdef COVMAP_FUNC_RECORD #undef COVMAP_FUNC_RECORD -#endif +/* COVMAP_FUNC_RECORD end. */ |

