summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/profile/PGOProfiling.c
Commit message (Collapse)AuthorAgeFilesLines
* PGO: Splitting implementation files; no functionality changeDuncan P. N. Exon Smith2014-03-191-131/+0
| | | | | | | | | | | | | | | | | | | | 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
* PGO: Fix obviously wrong typedefs for MSDuncan P. N. Exon Smith2014-03-191-1/+1
| | | | llvm-svn: 204267
* profile: Include the function hash in PGO profilesJustin Bogner2014-03-181-1/+2
| | | | llvm-svn: 204185
* Reapply "PGO: Statically generate data structures"Duncan P. N. Exon Smith2014-03-171-48/+79
| | | | | | | Reapply r204079 and r204083, this time with stubs for fputc in compiler-rt. llvm-svn: 204091
* Revert r204079, r204083 and r204084 "PGO: Statically generate data structures"Duncan P. N. Exon Smith2014-03-171-80/+48
| | | | | | | Buildbots are having trouble finding fputc(), and I can't figure out why. Reverting to investigate. llvm-svn: 204088
* Switch from fputc to putc to fix r204079?Duncan P. N. Exon Smith2014-03-171-1/+1
| | | | llvm-svn: 204084
* Rename __ProfileData to __llvm_pgo_dataDuncan P. N. Exon Smith2014-03-171-9/+9
| | | | | | <rdar://problem/15943240> llvm-svn: 204083
* PGO: Statically generate data structuresDuncan P. N. Exon Smith2014-03-171-48/+80
| | | | | | | | | | | | | | | | | | | 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
* Revert "profile: Use a simple binary format for profiling"Justin Bogner2014-03-121-155/+37
| | | | | | | | | 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
* profile: Use a simple binary format for profilingJustin Bogner2014-03-121-37/+155
| | | | llvm-svn: 203710
* A fix for platform-dependent types in sanitizers' profiling support lib on ↵Viktor Kutuzov2014-03-101-3/+17
| | | | | | x64 FreeBSD in 32-bit mode llvm-svn: 203470
* Add an environment variable to override the default profile output file.Bob Wilson2014-02-201-1/+4
| | | | | | | | 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
* Revert "Only include inttypes.h on platforms for which PRIu64 isn't in stdint.h"Justin Bogner2014-01-071-4/+1
| | | | | | This reverts commit e7778e08878d0c61903205428eeb131db9d11b3c. llvm-svn: 198657
* Revert "Explicitly enable PRIu64 by defining __STDC_FORMAT_MACROS if it isn't"Justin Bogner2014-01-071-6/+0
| | | | | | This reverts commit d1b5d3b0e885ef057643fcea99bff8b6cce04b93. llvm-svn: 198656
* Explicitly enable PRIu64 by defining __STDC_FORMAT_MACROS if it isn'tKaelyn Uhrain2014-01-071-0/+6
| | | | | | yet defined. llvm-svn: 198650
* Only include inttypes.h on platforms for which PRIu64 isn't in stdint.hKaelyn Uhrain2014-01-061-1/+4
| | | | llvm-svn: 198647
* Use the PRIu64 macro for printing a uint64_t.Kaelyn Uhrain2014-01-061-1/+2
| | | | | | | | | 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
* profile: Rudimentary suppport for PGO instrumentationJustin Bogner2014-01-061-0/+81
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
OpenPOWER on IntegriCloud