Home | History | Annotate | Download | only in Analysis
      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)
     21 extern "C" {
     22 #endif
     23 
     24 /* TODO: Strip out unused entries once ProfileInfo etc has been removed. */
     25 enum 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