[PGO] Use template file to define runtime structures
[oota-llvm.git] / include / llvm / ProfileData / InstrProf.h
index 2be174d573d0b524854c080222c5353f978da198..d4119ed55c4ca4270708ab75d3bec4c4786c5167 100644 (file)
@@ -431,11 +431,8 @@ inline uint64_t getMagic<uint32_t>() {
 
 template <class IntPtrT>
 struct ProfileData {
-  const uint32_t NameSize;
-  const uint32_t NumCounters;
-  const uint64_t FuncHash;
-  const IntPtrT NamePtr;
-  const IntPtrT CounterPtr;
+  #define INSTR_PROF_DATA(Type, LLVMType, Name, Init) Type Name;
+  #include "llvm/ProfileData/InstrProfData.inc"
 };
 
 // The definition should match the header referenced in
@@ -454,6 +451,18 @@ struct Header {
 
 }  // end namespace RawInstrProf
 
+namespace coverage {
+
+LLVM_PACKED_START
+template <class IntPtrT>
+struct CovMapFunctionRecord {
+  #define COVMAP_FUNC_RECORD(Type, LLVMType, Name, Init) Type Name;
+  #include "llvm/ProfileData/InstrProfData.inc"
+};
+LLVM_PACKED_END
+
+}
+
 } // end namespace llvm
 
 namespace std {