X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=include%2Fllvm%2FProfileData%2FInstrProf.h;h=4cd4ef9ee8f1d807967ba00497ff5f55dceef925;hp=571e2881dce8c6a810c2d4be2b5af56b11c9aeec;hb=77b5e3816106051a5c83ffcf482bff19a17cb852;hpb=e5dedf932d787530b7204c86e9da879f84d90f62 diff --git a/include/llvm/ProfileData/InstrProf.h b/include/llvm/ProfileData/InstrProf.h index 571e2881dce..4cd4ef9ee8f 100644 --- a/include/llvm/ProfileData/InstrProf.h +++ b/include/llvm/ProfileData/InstrProf.h @@ -19,6 +19,7 @@ #include "llvm/ADT/StringRef.h" #include "llvm/ADT/StringSet.h" #include "llvm/IR/GlobalValue.h" +#include "llvm/ProfileData/InstrProfData.inc" #include "llvm/Support/Endian.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/ErrorOr.h" @@ -570,31 +571,15 @@ struct Header { namespace RawInstrProf { -const uint64_t Version = 2; - -// Magic number to detect file format and endianness. -// Use 255 at one end, since no UTF-8 file can use that character. Avoid 0, -// so that utilities, like strings, don't grab it as a string. 129 is also -// invalid UTF-8, and high enough to be interesting. -// Use "lprofr" in the centre to stand for "LLVM Profile Raw", or "lprofR" -// for 32-bit platforms. -// The magic and version need to be kept in sync with -// projects/compiler-rt/lib/profile/InstrProfiling.c +const uint64_t Version = INSTR_PROF_RAW_VERSION; -template -inline uint64_t getMagic(); -template <> -inline uint64_t getMagic() { - return 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); +template inline uint64_t getMagic(); +template <> inline uint64_t getMagic() { + return INSTR_PROF_RAW_MAGIC_64; } -template <> -inline uint64_t getMagic() { - return 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); +template <> inline uint64_t getMagic() { + return INSTR_PROF_RAW_MAGIC_32; } // Per-function profile data header/control structure.