]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/compiler-rt/lib/profile/InstrProfilingInternal.h
Update compiler-rt to trunk r224034. This brings a number of new
[FreeBSD/FreeBSD.git] / contrib / compiler-rt / lib / profile / InstrProfilingInternal.h
1 /*===- InstrProfiling.h- Support library for PGO instrumentation ----------===*\
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 #ifndef PROFILE_INSTRPROFILING_INTERNALH_
11 #define PROFILE_INSTRPROFILING_INTERNALH_
12
13 #include "InstrProfiling.h"
14
15 /*!
16  * \brief Write instrumentation data to the given buffer, given explicit
17  * pointers to the live data in memory.  This function is probably not what you
18  * want.  Use __llvm_profile_get_size_for_buffer instead.  Use this function if
19  * your program has a custom memory layout.
20  */
21 uint64_t __llvm_profile_get_size_for_buffer_internal(
22     const __llvm_profile_data *DataBegin, const __llvm_profile_data *DataEnd,
23     const uint64_t *CountersBegin, const uint64_t *CountersEnd,
24     const char *NamesBegin, const char *NamesEnd);
25
26 /*!
27  * \brief Write instrumentation data to the given buffer, given explicit
28  * pointers to the live data in memory.  This function is probably not what you
29  * want.  Use __llvm_profile_write_buffer instead.  Use this function if your
30  * program has a custom memory layout.
31  *
32  * \pre \c Buffer is the start of a buffer at least as big as \a
33  * __llvm_profile_get_size_for_buffer_internal().
34  */
35 int __llvm_profile_write_buffer_internal(
36     char *Buffer, const __llvm_profile_data *DataBegin,
37     const __llvm_profile_data *DataEnd, const uint64_t *CountersBegin,
38     const uint64_t *CountersEnd, const char *NamesBegin, const char *NamesEnd);
39
40 #endif