parent
747ae9a7de
commit
6e55716509
|
@ -8,8 +8,8 @@
|
|||
\*===----------------------------------------------------------------------===*/
|
||||
|
||||
#include "InstrProfiling.h"
|
||||
#include "InstrProfilingUtil.h"
|
||||
#include "InstrProfilingInternal.h"
|
||||
#include "InstrProfilingUtil.h"
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -21,13 +21,14 @@ static size_t FileWriter(const void *Data, size_t ElmSize, size_t NumElm,
|
|||
void **File) {
|
||||
return fwrite(Data, ElmSize, NumElm, (FILE *)*File);
|
||||
}
|
||||
uint8_t *ValueDataBegin = NULL;
|
||||
uint8_t *ValueDataBegin = NULL;
|
||||
|
||||
static int writeFile(FILE *File) {
|
||||
uint8_t *ValueDataBegin = NULL;
|
||||
const uint64_t ValueDataSize = __llvm_profile_gather_value_data(&ValueDataBegin);
|
||||
const uint64_t ValueDataSize =
|
||||
__llvm_profile_gather_value_data(&ValueDataBegin);
|
||||
int r = llvmWriteProfData(File, ValueDataBegin, ValueDataSize, FileWriter);
|
||||
free (ValueDataBegin);
|
||||
free(ValueDataBegin);
|
||||
return r;
|
||||
}
|
||||
|
||||
|
|
|
@ -43,13 +43,15 @@ int __llvm_profile_write_buffer_internal(
|
|||
*/
|
||||
typedef size_t (*WriterCallback)(const void *Data, size_t ElmS, size_t NumElm,
|
||||
void **BufferOrFile);
|
||||
int llvmWriteProfData(void *BufferOrFile, const uint8_t *ValueDataBegin, const uint64_t ValueDataSize, WriterCallback Writer);
|
||||
int llvmWriteProfData(void *BufferOrFile, const uint8_t *ValueDataBegin,
|
||||
const uint64_t ValueDataSize, WriterCallback Writer);
|
||||
int llvmWriteProfDataImpl(void *BufferOrFile, WriterCallback Writer,
|
||||
const __llvm_profile_data *DataBegin,
|
||||
const __llvm_profile_data *DataEnd,
|
||||
const uint64_t *CountersBegin, const uint64_t *CountersEnd,
|
||||
const uint8_t *ValueDataBegin, const uint64_t ValueDataSize,
|
||||
const char *NamesBegin,
|
||||
const uint64_t *CountersBegin,
|
||||
const uint64_t *CountersEnd,
|
||||
const uint8_t *ValueDataBegin,
|
||||
const uint64_t ValueDataSize, const char *NamesBegin,
|
||||
const char *NamesEnd);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -11,7 +11,8 @@
|
|||
#include "InstrProfilingInternal.h"
|
||||
|
||||
__attribute__((visibility("hidden"))) int
|
||||
llvmWriteProfData(void *BufferOrFile, const uint8_t * ValueDataBegin, const uint64_t ValueDataSize, WriterCallback Writer) {
|
||||
llvmWriteProfData(void *BufferOrFile, const uint8_t *ValueDataBegin,
|
||||
const uint64_t ValueDataSize, WriterCallback Writer) {
|
||||
/* Match logic in __llvm_profile_write_buffer(). */
|
||||
const __llvm_profile_data *DataBegin = __llvm_profile_begin_data();
|
||||
const __llvm_profile_data *DataEnd = __llvm_profile_end_data();
|
||||
|
@ -20,10 +21,8 @@ llvmWriteProfData(void *BufferOrFile, const uint8_t * ValueDataBegin, const uint
|
|||
const char *NamesBegin = __llvm_profile_begin_names();
|
||||
const char *NamesEnd = __llvm_profile_end_names();
|
||||
return llvmWriteProfDataImpl(BufferOrFile, Writer, DataBegin, DataEnd,
|
||||
CountersBegin, CountersEnd,
|
||||
ValueDataBegin, ValueDataSize,
|
||||
NamesBegin,
|
||||
NamesEnd);
|
||||
CountersBegin, CountersEnd, ValueDataBegin,
|
||||
ValueDataSize, NamesBegin, NamesEnd);
|
||||
}
|
||||
|
||||
__attribute__((visibility("hidden"))) int llvmWriteProfDataImpl(
|
||||
|
|
Loading…
Reference in New Issue