[PGO] Introducing version mask macro/NFC
authorXinliang David Li <davidxl@google.com>
Fri, 8 Jan 2016 22:55:16 +0000 (22:55 +0000)
committerXinliang David Li <davidxl@google.com>
Fri, 8 Jan 2016 22:55:16 +0000 (22:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@257224 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ProfileData/InstrProfData.inc

index 9fc4f546b238b2662bd317713ea23e2dca02a963..33c7d94aea2a23d6030335630050ba8333d1ff45 100644 (file)
@@ -700,6 +700,14 @@ serializeValueProfDataFromRT(const ValueProfRuntimeRecord *Record,
 #define INSTR_PROF_INDEX_VERSION 3
 #define INSTR_PROF_COVMAP_VERSION 0
 
+/* Profile version is always of type uint_64_t. Reserve the upper 8 bits in the
+ * version for other variants of profile. We set the lowest bit of the upper 8
+ * bits (i.e. bit 56) to 1 to indicate if this is an IR-level instrumentaiton
+ * generated profile, and 0 if this is a Clang FE generated profile.
+*/
+#define VARIANT_MASKS_ALL 0xff00000000000000ULL
+#define GET_VERSION(V) ((V) & ~VARIANT_MASKS_ALL)
+
 /* Runtime section names and name strings.  */
 #define INSTR_PROF_DATA_SECT_NAME __llvm_prf_data
 #define INSTR_PROF_NAME_SECT_NAME __llvm_prf_names