blob: ede39cd9d7138c8fcda2aed43f27d1801584b179 [file] [log] [blame]
Stephen Hines86277eb2015-03-23 12:06:32 -07001/*===- 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 */
21uint64_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 */
35int __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