summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/profile
Commit message (Collapse)AuthorAgeFilesLines
...
* I was wrong in my testing.Bill Wendling2013-05-031-3/+0
| | | | | | There isn't a speedup when using unbuffered I/O. It slows it down in fact. llvm-svn: 181060
* Use unbuffered I/O. This reduces the runtime by about half. Our ↵Bill Wendling2013-05-031-0/+3
| | | | | | implementation is now only about 5 times slower than gcc's. llvm-svn: 180980
* Improve performance of file I/O.Bill Wendling2013-04-221-17/+21
| | | | | | | | | | The fread / fwrite calls were happening for each timer. However, that could be pretty expensive for a large number of timers. Instead, read and write the timers in one call. This gives ~10% speedup in compilation time. llvm-svn: 179990
* Add basic support for building profile compiler-rt library in CMake build on ↵Alexey Samsonov2013-03-251-2/+6
| | | | | | Darwin llvm-svn: 177870
* Create a coverage initialization function.Bill Wendling2013-03-201-1/+20
| | | | | | | | | | | This function replaces the call of `atexit' from being generated in the compile units. Basically, it registers the "writeout" and "flush" functions (if present). It will generate calls to the `atexit' function for cleanups and final writeout functions, but only once. This is better than checking for `main', because a library may not have a `main' function in it. <rdar://problem/12439551> llvm-svn: 177578
* Add a way to register and execute "writeout" functions.Bill Wendling2013-03-191-0/+45
| | | | | | | | | | It may be prohibitively expensive to write out >1000 files at the same time. So we would rather emit them serially. These functions allow the GCOV implementation to register the functions that writeout the GCOV information per compile unit. At exit, they are written. <rdar://problem/12439551> llvm-svn: 177436
* Don't use --sysroot to linux SDK when building libprofile - SDK on Linux ↵Alexey Samsonov2013-03-191-2/+1
| | | | | | seems to be incomplete. llvm-svn: 177396
* Support CMake build of profile runtime library on LinuxAlexey Samsonov2013-03-191-0/+13
| | | | llvm-svn: 177382
* Add some GCOV functions that register all of the __llvm_gcov_flush() functions.Bill Wendling2013-03-181-0/+48
| | | | | | | | | | | | | The __llvm_gcov_flush() functions only work for the local compile unit. However, when __gcov_flush() is called, the user expects all of the counters to be flushed, not just the ones in the current compile unit. This adds some library functions that register the flush functions. It also defined __gcov_flush() so that loops through that list and calls the functions. PR15191 & <rdar://problem/13167507> llvm-svn: 177337
* Don't emit the extra checksum into the .gcda file if the user hasn't asked for Nick Lewycky2013-03-091-3/+7
| | | | | | | | it. Fortunately, versions of gcov that predate the extra checksum also ignore any extra data, so this isn't a problem. This matches the API change made in r176745. llvm-svn: 176746
* Take the GCDA version string as an input to llvm_gcda_start_file.Nick Lewycky2013-03-071-8/+5
| | | | llvm-svn: 176618
* Holy macaroons, somebody made a copy of llvm/runtime/profile/GCDAProfiling.c,Nick Lewycky2013-02-281-4/+9
| | | | | | | didn't delete the original, and now they've diverged. I have no idea what's going on. Apply my patch in r176173 to this one too, this one looks newer? llvm-svn: 176236
* Remove debugging code.Bill Wendling2012-09-171-5/+1
| | | | llvm-svn: 164052
* Remove unused variable.Bill Wendling2012-09-141-1/+0
| | | | llvm-svn: 163930
* Add support for reading the GCDA file and merging the arc information.Bill Wendling2012-09-141-16/+80
| | | | | | | | | With the advent of the __llvm_gcov_flush function, we need to be able to merge counts into the .gcda files in an intelligent manner. This involves reading the file if it exists, adding the counts together, and then writing the results. <rdar://problem/12185886> llvm-svn: 163923
* Free the allocated filename. Found by clang static analyzer.Bill Wendling2012-06-151-0/+1
| | | | llvm-svn: 158514
* Add support for the GCOV_PREFIX_STRIP env variable which tries to strip off ↵Bill Wendling2012-05-281-3/+22
| | | | | | the first 'n' directories from the filename. llvm-svn: 157574
* Simplify the logic that tries to open the GCDA file at all costs. Basically, ifBill Wendling2012-05-281-13/+2
| | | | | | | we can't open the file even after creating all of the directories to it, then just give up. llvm-svn: 157572
* * A bit of cleanup of the 'recursive_mkdir'. No functionality change.Bill Wendling2012-05-281-19/+16
| | | | | | | * Check for absolute paths before using the GCOV_PREFIX. * Don't add an ending path separator if there's already one. llvm-svn: 157571
* Don't use 'strrchr', which isn't implemented here yet.Bill Wendling2012-05-281-6/+15
| | | | llvm-svn: 157560
* Sync with old GCOV runtime library's file.Bill Wendling2012-05-281-18/+28
| | | | llvm-svn: 157559
* build: Add ModuleName per-subdir variable as a way to organize the differentDaniel Dunbar2011-12-021-0/+1
| | | | | | | | | sets of functions/objects into high level groups. Currently we have "builtins" (the main compiler-rt code), "profile", and "asan". - Use this to define CommonFunctions and ArchFunctions to only reference the builtins functions. llvm-svn: 145674
* lib: Import GCDA profiling support from LLVM.Daniel Dunbar2011-11-172-0/+217
- I'm in the process of moving this here but it will live in both places until the ancilliary support is ready. - Currently unused. llvm-svn: 144865
OpenPOWER on IntegriCloud