| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Split implementation files along a uses-libc/shouldn't-use-libc
boundary.
- InstrProfiling.h is a shared header.
- InstrProfiling.c provides an API to extract profiling data from the
runtime, but avoids the use of libc. Currently this is a lie:
__llvm_pgo_write_buffer() uses `FILE*` and related functions. It
will be updated soon to write to a `char*` buffer instead.
- InstrProfilingExtras.c provides a more convenient API for
interfacing with the profiling runtime, but has logic that does (and
will continue to) use libc.
<rdar://problem/15943240>
llvm-svn: 204268
|
|
|
|
| |
llvm-svn: 204267
|
|
|
|
| |
llvm-svn: 204185
|
|
|
|
|
|
|
| |
Reapply r204079 and r204083, this time with stubs for fputc in
compiler-rt.
llvm-svn: 204091
|
|
|
|
|
|
|
| |
Buildbots are having trouble finding fputc(), and I can't figure out
why. Reverting to investigate.
llvm-svn: 204088
|
|
|
|
| |
llvm-svn: 204084
|
|
|
|
|
|
| |
<rdar://problem/15943240>
llvm-svn: 204083
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In instrumentation-based profiling, we need a set of data structures to
represent the counters. Previously, these were built up during static
initialization. Now, they're shoved into a specially-named section so
that they show up as an array.
As a consequence of the reorganizing symbols, instrumentation data
structures for linkonce functions are now correctly coalesced.
This is the first step in a larger project to minimize runtime overhead
and dependencies in instrumentation-based profilng. The larger picture
includes removing all initialization overhead and making the dependency
on libc optional.
<rdar://problem/15943240>
llvm-svn: 204079
|
|
|
|
|
|
|
|
|
| |
This will break without the corresponding change in clang, which I've
reverted until I figure out how to get it to link properly.
This reverts commit r203710.
llvm-svn: 203713
|
|
|
|
| |
llvm-svn: 203710
|
|
|
|
|
|
| |
x64 FreeBSD in 32-bit mode
llvm-svn: 203470
|
|
|
|
|
|
|
|
| |
Also rename the default output file from "pgo-data" to "default.profdata".
The ".profdata" suffix is consistent with the name of the new llvm-profdata
tool.
llvm-svn: 201808
|
|
|
|
|
|
| |
This reverts commit e7778e08878d0c61903205428eeb131db9d11b3c.
llvm-svn: 198657
|
|
|
|
|
|
| |
This reverts commit d1b5d3b0e885ef057643fcea99bff8b6cce04b93.
llvm-svn: 198656
|
|
|
|
|
|
| |
yet defined.
llvm-svn: 198650
|
|
|
|
| |
llvm-svn: 198647
|
|
|
|
|
|
|
|
|
| |
Otherwise on (some) 64-bit systems, -Wformat will trigger a warning
because uint64_t is an 'unsigned long' not an 'unsigned long long'.
Consequently, PGOProfiling.c would fail to build if -Werror and
-Wformat are both enabled.
llvm-svn: 198644
|
|
This is fairly minimal support for instrumentation based PGO. The data
format is inefficient, and the output file name is hardcoded to
pgo-data.
llvm-svn: 198638
|