History log of /external/compiler-rt/SDKs/linux/usr/include/stdio.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2d1fdb26e458c4ddc04155c1d421bced3ba90cd0 29-May-2014 Stephen Hines <srhines@google.com> Update compiler-rt aosp/master for 3.5 (r209699) rebase.

Change-Id: I158a30186f0faea2e2400e9dfdd878db2eb40e90
/external/compiler-rt/SDKs/linux/usr/include/stdio.h
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/stdio.h
2a46a60510948b5005d62025fbba307a0323ed8d 15-May-2013 Bill Wendling <isanbard@gmail.com> Try to improve performance by using a read/write buffer instead of I/O.

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>


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@181924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/compiler-rt/SDKs/linux/usr/include/stdio.h
346e348af5740db3660c84490d2c1bbba7c570e5 04-May-2013 Bill Wendling <isanbard@gmail.com> I was wrong in my testing.

There isn't a speedup when using unbuffered I/O. It slows it down in fact.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@181060 91177308-0d34-0410-b5e6-96231b3b80d8
/external/compiler-rt/SDKs/linux/usr/include/stdio.h
d83a6d8bafbf2afa3ebcf9e006bf0c7414f9b2dc 03-May-2013 Bill Wendling <isanbard@gmail.com> Use unbuffered I/O. This reduces the runtime by about half. Our implementation is now only about 5 times slower than gcc's.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@180980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/compiler-rt/SDKs/linux/usr/include/stdio.h
7ad8ae259389e8652a5476681ac01185105c3d68 17-Sep-2012 Benjamin Kramer <benny.kra@googlemail.com> Update linux stdio.h to support the recent additions to GCDAProfiling.

Hopefully unbreaks compiler-rt build on linux.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@164025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/compiler-rt/SDKs/linux/usr/include/stdio.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/stdio.h