History log of /external/compiler-rt/SDKs/linux/usr/include/stdlib.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d06f2fc03087e7cccda19bd550bf6fb3bc2f5ae7 23-May-2013 Bill Wendling <isanbard@gmail.com> Performance improvement.

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>


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@182563 91177308-0d34-0410-b5e6-96231b3b80d8
/external/compiler-rt/SDKs/linux/usr/include/stdlib.h
edcb288a81c4e6abd6537342295750d9d1223349 21-Mar-2013 Bill Wendling <isanbard@gmail.com> Add declaration for linux.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@177601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/compiler-rt/SDKs/linux/usr/include/stdlib.h
d389dd3467ef9a2eabb052f3974372f5e8ac82e1 29-May-2012 Alexey Samsonov <samsonov@google.com> Fix atoi stub for linux introduced in r157573. This fixes compiler-rt build on linux.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@157600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/compiler-rt/SDKs/linux/usr/include/stdlib.h
84baff0561fe6ca2371e3273f8ed149260e104c1 28-May-2012 Bill Wendling <isanbard@gmail.com> Add stub for 'atoi'.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@157573 91177308-0d34-0410-b5e6-96231b3b80d8
/external/compiler-rt/SDKs/linux/usr/include/stdlib.h
86f9994936336675dcc1454ede5857e8851080b6 08-Dec-2011 Daniel Dunbar <daniel@zuster.org> SDKs: Sketch an initial stub SDK for Linux, I believe this suffices for building
the main compiler-rt and profile modules, at least on x86.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@146131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/compiler-rt/SDKs/linux/usr/include/stdlib.h