1/*===-- ProfileDataTypes.h - Profiling info shared constants --------------===*\
2|*
3|*                     The LLVM Compiler Infrastructure
4|*
5|* This file is distributed under the University of Illinois Open Source
6|* License. See LICENSE.TXT for details.
7|*
8|*===----------------------------------------------------------------------===*|
9|*
10|* This file defines constants shared by the various different profiling
11|* runtime libraries and the LLVM C++ profile metadata loader. It must be a
12|* C header because, at present, the profiling runtimes are written in C.
13|*
14\*===----------------------------------------------------------------------===*/
15
16#ifndef LLVM_ANALYSIS_PROFILEDATATYPES_H
17#define LLVM_ANALYSIS_PROFILEDATATYPES_H
18
19/* Included by libprofile. */
20#if defined(__cplusplus)
21extern "C" {
22#endif
23
24/* TODO: Strip out unused entries once ProfileInfo etc has been removed. */
25enum ProfilingType {
26  ArgumentInfo  = 1,   /* The command line argument block */
27  FunctionInfo  = 2,   /* Function profiling information  */
28  BlockInfo     = 3,   /* Block profiling information     */
29  EdgeInfo      = 4,   /* Edge profiling information      */
30  PathInfo      = 5,   /* Path profiling information      */
31  BBTraceInfo   = 6,   /* Basic block trace information   */
32  OptEdgeInfo   = 7    /* Edge profiling information, optimal version */
33};
34
35#if defined(__cplusplus)
36}
37#endif
38
39#endif /* LLVM_ANALYSIS_PROFILEDATATYPES_H */
40