| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using fwrite and fread was very *very* slow. The resulting code was multiple
times slower than GCC's implementation of gcov. Replace the fwrite/fread system
with an mmap() version.
If the `.gcda' file doesn't exist, we (re)allocate a buffer that we write
into. That gets written to the `.gcda' file in one chunk. If the `.gcda' file
already exists, we simply mmap() the file, modify the mapped data, and use
msync() to write the contents out to disk. It's much easier than implementing
our own buffering scheme, and we don't have to use fwrite's and fread's
buffering.
For those who are numbers-oriented, here are some timings:
GCC Verison
-----------
`.gcda' files don't exist: 23s
`.gcda' files do exist: 14s
LLVM Version (before this change)
---------------------------------
`.gcda' files don't exist: 28s
`.gcda' files do exist: 28s
LLVM Version (with this change)
-------------------------------
`.gcda' files don't exist: 18s
`.gcda' files do exist: 4s
It's a win-win-win-win-lose-win-win scenario!
<rdar://problem/13466086>
llvm-svn: 182563
|
| |
|
|
|
|
|
|
|
|
| |
The calls to fwrite/fread can be very expensive. GCC avoids this by using a
buffer to read and write from the file, thus limiting the number of fwrite/fread
calls.
<rdar://problem/13466086>
llvm-svn: 181924
|
| |
|
|
|
|
| |
There isn't a speedup when using unbuffered I/O. It slows it down in fact.
llvm-svn: 181060
|
| |
|
|
|
|
| |
implementation is now only about 5 times slower than gcc's.
llvm-svn: 180980
|
| |
|
|
| |
llvm-svn: 177601
|
| |
|
|
|
|
| |
Hopefully unbreaks compiler-rt build on linux.
llvm-svn: 164025
|
| |
|
|
|
|
| |
on linux.
llvm-svn: 157600
|
| |
|
|
| |
llvm-svn: 157573
|
| |
|
|
|
|
|
|
| |
- Add memcpy and memcmp to the stub headers.
- __uint128_t is not available on 32 bit platforms. It's also unused so just
comment it out for now.
llvm-svn: 153779
|
| |
|
|
| |
llvm-svn: 146188
|
|
|
the main compiler-rt and profile modules, at least on x86.
llvm-svn: 146131
|