[llvm] r253844 - [PGO] Fix remaining bugs in ProfData template file (when used by compiler-rt)

Xinliang David Li via llvm-commits llvm-commits at lists.llvm.org
Sun Nov 22 19:49:08 PST 2015


Author: davidxl
Date: Sun Nov 22 21:49:07 2015
New Revision: 253844

URL: http://llvm.org/viewvc/llvm-project?rev=253844&view=rev
Log:
[PGO] Fix remaining bugs in ProfData template file (when used by compiler-rt)

1. move const qualifier out of raw header field type as runtime use of the header
   needs to initialze the fields
2. use C style casting for integer types.





Modified:
    llvm/trunk/include/llvm/ProfileData/InstrProf.h
    llvm/trunk/include/llvm/ProfileData/InstrProfData.inc

Modified: llvm/trunk/include/llvm/ProfileData/InstrProf.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ProfileData/InstrProf.h?rev=253844&r1=253843&r2=253844&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ProfileData/InstrProf.h (original)
+++ llvm/trunk/include/llvm/ProfileData/InstrProf.h Sun Nov 22 21:49:07 2015
@@ -606,7 +606,7 @@ template <class IntPtrT> struct LLVM_ALI
 // compiler-rt/lib/profile/InstrProfilingFile.c  and
 // InstrProfilingBuffer.c.
 struct Header {
-#define INSTR_PROF_RAW_HEADER(Type, Name, Init) Type Name;
+#define INSTR_PROF_RAW_HEADER(Type, Name, Init) const Type Name;
 #include "llvm/ProfileData/InstrProfData.inc"
 };
 

Modified: llvm/trunk/include/llvm/ProfileData/InstrProfData.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ProfileData/InstrProfData.inc?rev=253844&r1=253843&r2=253844&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ProfileData/InstrProfData.inc (original)
+++ llvm/trunk/include/llvm/ProfileData/InstrProfData.inc Sun Nov 22 21:49:07 2015
@@ -94,16 +94,16 @@ INSTR_PROF_DATA(const uint16_t, Int16Arr
 #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)
+INSTR_PROF_RAW_HEADER(uint64_t, Magic, __llvm_profile_get_magic())
+INSTR_PROF_RAW_HEADER(uint64_t, Version, __llvm_profile_get_version())
+INSTR_PROF_RAW_HEADER(uint64_t, DataSize, DataSize)
+INSTR_PROF_RAW_HEADER(uint64_t, CountersSize, CountersSize)
+INSTR_PROF_RAW_HEADER(uint64_t, NamesSize,  NamesSize)
+INSTR_PROF_RAW_HEADER(uint64_t, CountersDelta, (uintptr_t)CountersBegin)
+INSTR_PROF_RAW_HEADER(int64_t, NamesDelta, (uintptr_t)NamesBegin)
+INSTR_PROF_RAW_HEADER(uint64_t, ValueKindLast, IPVK_Last)
+INSTR_PROF_RAW_HEADER(uint64_t, ValueDataSize, ValueDataSize)
+INSTR_PROF_RAW_HEADER(uint64_t, ValueDataDelta, (uintptr_t)ValueDataBegin)
 #undef INSTR_PROF_RAW_HEADER
 /* INSTR_PROF_RAW_HEADER  end */
 
@@ -193,12 +193,12 @@ COVMAP_FUNC_RECORD(const uint64_t, llvm:
  * The magic and version need to be kept in sync with                                    
  * projects/compiler-rt/lib/profile/InstrProfiling.c                                     
  */
-#define INSTR_PROF_RAW_MAGIC_64 uint64_t(255) << 56 | uint64_t('l') << 48 | \
-       uint64_t('p') << 40 | uint64_t('r') << 32 | uint64_t('o') << 24 |  \
-        uint64_t('f') << 16 | uint64_t('r') << 8 | uint64_t(129)
-#define INSTR_PROF_RAW_MAGIC_32 uint64_t(255) << 56 | uint64_t('l') << 48 | \
-       uint64_t('p') << 40 | uint64_t('r') << 32 | uint64_t('o') << 24 |  \
-        uint64_t('f') << 16 | uint64_t('R') << 8 | uint64_t(129)
+#define INSTR_PROF_RAW_MAGIC_64 (uint64_t)255 << 56 | (uint64_t)'l' << 48 | \
+       (uint64_t)'p' << 40 | (uint64_t)'r' << 32 | (uint64_t)'o' << 24 |  \
+        (uint64_t)'f' << 16 | (uint64_t)'r' << 8 | (uint64_t)129
+#define INSTR_PROF_RAW_MAGIC_32 (uint64_t)255 << 56 | (uint64_t)'l' << 48 | \
+       (uint64_t)'p' << 40 | (uint64_t)'r' << 32 | (uint64_t)'o' << 24 |  \
+        (uint64_t)'f' << 16 | (uint64_t)'R' << 8 | (uint64_t)129
 
 /* Raw profile format version. */
 #define INSTR_PROF_RAW_VERSION 2




More information about the llvm-commits mailing list