diff options
author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2018-07-10 16:08:27 +0000 |
---|---|---|
committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2018-07-10 16:08:27 +0000 |
commit | cd7171e060afecc9f1754264e56078f69b5b245c (patch) | |
tree | c36de547adc3d17d546af03fa7cd1ca6dc2e4e11 /test/profile/instrprof-dlopen-dlclose-gcov.test | |
parent | 3e66332edd4c8d6c85f9b3d0d8c042be99df8bcc (diff) |
[gcov] Fix gcov profiling on big-endian machines
Two fixes required to handle big-endian systems:
- 64-bit counter values are stored in a mixed-endian format in the
gcov files: a 32-bit low-part followed by a 32-bit high part. Note that
this is already implemented correctly on the LLVM side, see
GCOVBuffer::readInt64.
- The tag values (e.g. arcs tag, object summary tag, ...) are aways
written as the same sequence of bytes independent of byte order. But
when *reading* them back in, the code reads them as 32-bit values in
host byte order. For the comparisons to work correctly, this should
instead always read them as little-endian values.
Fixes PR 38121.
Reviewed By: marco-c
Differential Revision: https://reviews.llvm.org/D49132
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336693 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/profile/instrprof-dlopen-dlclose-gcov.test')
0 files changed, 0 insertions, 0 deletions