From 6aa45fb3ac69d97aab548b7fc8bdc5e994fbfc78 Mon Sep 17 00:00:00 2001 From: Xinliang David Li Date: Sun, 22 Nov 2015 01:39:07 +0000 Subject: [PATCH] [PGO] Move Value Profile Kind to InstrProfData.inc ValueProfKind value affects runtime data structure and definition is shared between compiler-rt and LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253806 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ProfileData/InstrProf.h | 6 ++---- include/llvm/ProfileData/InstrProfData.inc | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/include/llvm/ProfileData/InstrProf.h b/include/llvm/ProfileData/InstrProf.h index b93d5d0b966..571e2881dce 100644 --- a/include/llvm/ProfileData/InstrProf.h +++ b/include/llvm/ProfileData/InstrProf.h @@ -169,10 +169,8 @@ inline std::error_code make_error_code(instrprof_error E) { } enum InstrProfValueKind : uint32_t { - IPVK_IndirectCallTarget = 0, - - IPVK_First = IPVK_IndirectCallTarget, - IPVK_Last = IPVK_IndirectCallTarget +#define VALUE_PROF_KIND(Enumerator, Value) Enumerator = Value, +#include "llvm/ProfileData/InstrProfData.inc" }; struct InstrProfStringTable { diff --git a/include/llvm/ProfileData/InstrProfData.inc b/include/llvm/ProfileData/InstrProfData.inc index c422787859a..cf7e2884ed6 100644 --- a/include/llvm/ProfileData/InstrProfData.inc +++ b/include/llvm/ProfileData/InstrProfData.inc @@ -107,6 +107,24 @@ VALUE_PROF_FUNC_PARAM(uint32_t, CounterIndex, Type::getInt32Ty(Ctx)) #undef INSTR_PROF_COMMA /* VALUE_PROF_FUNC_PARAM end */ +/* VALUE_PROF_KIND start */ +#ifndef VALUE_PROF_KIND +#define VALUE_PROF_KIND(Enumerator, Value) +#else +#define INSTR_PROF_DATA_DEFINED +#endif +VALUE_PROF_KIND(IPVK_IndirectCallTarget, 0) +/* These two kinds must be the last to be + * declared. This is to make sure the string + * array created with the template can be + * indexed with the kind value. + */ +VALUE_PROF_KIND(IPVK_First, IPVK_IndirectCallTarget) +VALUE_PROF_KIND(IPVK_Last, IPVK_IndirectCallTarget) + +#undef VALUE_PROF_KIND +/* VALUE_PROF_KIND end */ + /* COVMAP_FUNC_RECORD start */ /* Definition of member fields of the function record structure in coverage * map. -- 2.34.1