summaryrefslogtreecommitdiff
path: root/lib/profile/InstrProfilingInternal.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/profile/InstrProfilingInternal.h')
-rw-r--r--lib/profile/InstrProfilingInternal.h190
1 files changed, 0 insertions, 190 deletions
diff --git a/lib/profile/InstrProfilingInternal.h b/lib/profile/InstrProfilingInternal.h
deleted file mode 100644
index 40540ab5f2052..0000000000000
--- a/lib/profile/InstrProfilingInternal.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/*===- InstrProfiling.h- Support library for PGO instrumentation ----------===*\
-|*
-|* The LLVM Compiler Infrastructure
-|*
-|* This file is distributed under the University of Illinois Open Source
-|* License. See LICENSE.TXT for details.
-|*
-\*===----------------------------------------------------------------------===*/
-
-#ifndef PROFILE_INSTRPROFILING_INTERNALH_
-#define PROFILE_INSTRPROFILING_INTERNALH_
-
-#include <stddef.h>
-
-#include "InstrProfiling.h"
-
-/*!
- * \brief Write instrumentation data to the given buffer, given explicit
- * pointers to the live data in memory. This function is probably not what you
- * want. Use __llvm_profile_get_size_for_buffer instead. Use this function if
- * your program has a custom memory layout.
- */
-uint64_t __llvm_profile_get_size_for_buffer_internal(
- const __llvm_profile_data *DataBegin, const __llvm_profile_data *DataEnd,
- const uint64_t *CountersBegin, const uint64_t *CountersEnd,
- const char *NamesBegin, const char *NamesEnd);
-
-/*!
- * \brief Write instrumentation data to the given buffer, given explicit
- * pointers to the live data in memory. This function is probably not what you
- * want. Use __llvm_profile_write_buffer instead. Use this function if your
- * program has a custom memory layout.
- *
- * \pre \c Buffer is the start of a buffer at least as big as \a
- * __llvm_profile_get_size_for_buffer_internal().
- */
-int __llvm_profile_write_buffer_internal(
- char *Buffer, const __llvm_profile_data *DataBegin,
- const __llvm_profile_data *DataEnd, const uint64_t *CountersBegin,
- const uint64_t *CountersEnd, const char *NamesBegin, const char *NamesEnd);
-
-/*!
- * The data structure describing the data to be written by the
- * low level writer callback function.
- */
-typedef struct ProfDataIOVec {
- const void *Data;
- size_t ElmSize;
- size_t NumElm;
-} ProfDataIOVec;
-
-struct ProfDataWriter;
-typedef uint32_t (*WriterCallback)(struct ProfDataWriter *This, ProfDataIOVec *,
- uint32_t NumIOVecs);
-
-typedef struct ProfDataWriter {
- WriterCallback Write;
- void *WriterCtx;
-} ProfDataWriter;
-
-/*!
- * The data structure for buffered IO of profile data.
- */
-typedef struct ProfBufferIO {
- ProfDataWriter *FileWriter;
- uint32_t OwnFileWriter;
- /* The start of the buffer. */
- uint8_t *BufferStart;
- /* Total size of the buffer. */
- uint32_t BufferSz;
- /* Current byte offset from the start of the buffer. */
- uint32_t CurOffset;
-} ProfBufferIO;
-
-/* The creator interface used by testing. */
-ProfBufferIO *lprofCreateBufferIOInternal(void *File, uint32_t BufferSz);
-
-/*!
- * This is the interface to create a handle for buffered IO.
- */
-ProfBufferIO *lprofCreateBufferIO(ProfDataWriter *FileWriter);
-
-/*!
- * The interface to destroy the bufferIO handle and reclaim
- * the memory.
- */
-void lprofDeleteBufferIO(ProfBufferIO *BufferIO);
-
-/*!
- * This is the interface to write \c Data of \c Size bytes through
- * \c BufferIO. Returns 0 if successful, otherwise return -1.
- */
-int lprofBufferIOWrite(ProfBufferIO *BufferIO, const uint8_t *Data,
- uint32_t Size);
-/*!
- * The interface to flush the remaining data in the buffer.
- * through the low level writer callback.
- */
-int lprofBufferIOFlush(ProfBufferIO *BufferIO);
-
-/* The low level interface to write data into a buffer. It is used as the
- * callback by other high level writer methods such as buffered IO writer
- * and profile data writer. */
-uint32_t lprofBufferWriter(ProfDataWriter *This, ProfDataIOVec *IOVecs,
- uint32_t NumIOVecs);
-void initBufferWriter(ProfDataWriter *BufferWriter, char *Buffer);
-
-struct ValueProfData;
-struct ValueProfRecord;
-struct InstrProfValueData;
-struct ValueProfNode;
-
-/*!
- * The class that defines a set of methods to read value profile
- * data for streaming/serialization from the instrumentation runtime.
- */
-typedef struct VPDataReaderType {
- uint32_t (*InitRTRecord)(const __llvm_profile_data *Data,
- uint8_t *SiteCountArray[]);
- /* Function pointer to getValueProfRecordHeader method. */
- uint32_t (*GetValueProfRecordHeaderSize)(uint32_t NumSites);
- /* Function pointer to getFristValueProfRecord method. */
- struct ValueProfRecord *(*GetFirstValueProfRecord)(struct ValueProfData *);
- /* Return the number of value data for site \p Site. */
- uint32_t (*GetNumValueDataForSite)(uint32_t VK, uint32_t Site);
- /* Return the total size of the value profile data of the
- * current function. */
- uint32_t (*GetValueProfDataSize)(void);
- /*!
- * Read the next \p N value data for site \p Site and store the data
- * in \p Dst. \p StartNode is the first value node to start with if
- * it is not null. The function returns the pointer to the value
- * node pointer to be used as the \p StartNode of the next batch reading.
- * If there is nothing left, it returns NULL.
- */
- struct ValueProfNode *(*GetValueData)(uint32_t ValueKind, uint32_t Site,
- struct InstrProfValueData *Dst,
- struct ValueProfNode *StartNode,
- uint32_t N);
-} VPDataReaderType;
-
-/* Write profile data to destinitation. If SkipNameDataWrite is set to 1,
- the name data is already in destintation, we just skip over it. */
-int lprofWriteData(ProfDataWriter *Writer, VPDataReaderType *VPDataReader,
- int SkipNameDataWrite);
-int lprofWriteDataImpl(ProfDataWriter *Writer,
- const __llvm_profile_data *DataBegin,
- const __llvm_profile_data *DataEnd,
- const uint64_t *CountersBegin,
- const uint64_t *CountersEnd,
- VPDataReaderType *VPDataReader, const char *NamesBegin,
- const char *NamesEnd, int SkipNameDataWrite);
-
-/* Merge value profile data pointed to by SrcValueProfData into
- * in-memory profile counters pointed by to DstData. */
-void lprofMergeValueProfData(struct ValueProfData *SrcValueProfData,
- __llvm_profile_data *DstData);
-
-VPDataReaderType *lprofGetVPDataReader();
-
-/* Internal interface used by test to reset the max number of
- * tracked values per value site to be \p MaxVals.
- */
-void lprofSetMaxValsPerSite(uint32_t MaxVals);
-void lprofSetupValueProfiler();
-
-/* Return the profile header 'signature' value associated with the current
- * executable or shared library. The signature value can be used to for
- * a profile name that is unique to this load module so that it does not
- * collide with profiles from other binaries. It also allows shared libraries
- * to dump merged profile data into its own profile file. */
-uint64_t lprofGetLoadModuleSignature();
-
-/*
- * Return non zero value if the profile data has already been
- * dumped to the file.
- */
-unsigned lprofProfileDumped();
-void lprofSetProfileDumped();
-
-COMPILER_RT_VISIBILITY extern void (*FreeHook)(void *);
-COMPILER_RT_VISIBILITY extern uint8_t *DynamicBufferIOBuffer;
-COMPILER_RT_VISIBILITY extern uint32_t VPBufferSize;
-COMPILER_RT_VISIBILITY extern uint32_t VPMaxNumValsPerSite;
-/* Pointer to the start of static value counters to be allocted. */
-COMPILER_RT_VISIBILITY extern ValueProfNode *CurrentVNode;
-COMPILER_RT_VISIBILITY extern ValueProfNode *EndVNode;
-extern void (*VPMergeHook)(struct ValueProfData *, __llvm_profile_data *);
-
-#endif