1/*===-- ProfileInfoTypes.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 info 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_PROFILEINFOTYPES_H 17#define LLVM_ANALYSIS_PROFILEINFOTYPES_H 18 19/* Included by libprofile. */ 20#if defined(__cplusplus) 21extern "C" { 22#endif 23 24/* IDs to distinguish between those path counters stored in hashses vs arrays */ 25enum ProfilingStorageType { 26 ProfilingArray = 1, 27 ProfilingHash = 2 28}; 29 30#include "llvm/Analysis/ProfileDataTypes.h" 31 32/* 33 * The header for tables that map path numbers to path counters. 34 */ 35typedef struct { 36 unsigned fnNumber; /* function number for these counters */ 37 unsigned numEntries; /* number of entries stored */ 38} PathProfileHeader; 39 40/* 41 * Describes an entry in a tagged table for path counters. 42 */ 43typedef struct { 44 unsigned pathNumber; 45 unsigned pathCounter; 46} PathProfileTableEntry; 47 48#if defined(__cplusplus) 49} 50#endif 51 52#endif /* LLVM_ANALYSIS_PROFILEINFOTYPES_H */ 53