diff options
| author | Xinliang David Li <davidxl@google.com> | 2015-10-16 22:21:56 +0000 |
|---|---|---|
| committer | Xinliang David Li <davidxl@google.com> | 2015-10-16 22:21:56 +0000 |
| commit | 4da5de9c347b19772ac05b25b1f1e8298af96139 (patch) | |
| tree | 61667a42ea05b5d66e99ecc7a679519a4a4d110c /compiler-rt/lib/profile/InstrProfilingBuffer.c | |
| parent | bbd524496ccf5946c771a61d2d490675156518d0 (diff) | |
| download | bcm5719-llvm-4da5de9c347b19772ac05b25b1f1e8298af96139.tar.gz bcm5719-llvm-4da5de9c347b19772ac05b25b1f1e8298af96139.zip | |
Use struct type instead of raw array for raw profile header (NFC)
This patch introduces a well defined header struct
to represent raw profile header instead of using raw array.
Previously the raw array is used in two different files and
is very error prone when header structure is re-organized.
This is a small cleanup with NFC.
llvm-svn: 250561
Diffstat (limited to 'compiler-rt/lib/profile/InstrProfilingBuffer.c')
| -rw-r--r-- | compiler-rt/lib/profile/InstrProfilingBuffer.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/compiler-rt/lib/profile/InstrProfilingBuffer.c b/compiler-rt/lib/profile/InstrProfilingBuffer.c index 3c429c8a85e..e587932da0a 100644 --- a/compiler-rt/lib/profile/InstrProfilingBuffer.c +++ b/compiler-rt/lib/profile/InstrProfilingBuffer.c @@ -36,7 +36,7 @@ uint64_t __llvm_profile_get_size_for_buffer_internal( /* Match logic in __llvm_profile_write_buffer(). */ const uint64_t NamesSize = PROFILE_RANGE_SIZE(Names) * sizeof(char); const uint64_t Padding = sizeof(uint64_t) - NamesSize % sizeof(uint64_t); - return sizeof(uint64_t) * PROFILE_HEADER_SIZE + + return sizeof(__llvm_profile_header) + PROFILE_RANGE_SIZE(Data) * sizeof(__llvm_profile_data) + PROFILE_RANGE_SIZE(Counters) * sizeof(uint64_t) + NamesSize + Padding; @@ -78,14 +78,14 @@ int __llvm_profile_write_buffer_internal( const char Zeroes[sizeof(uint64_t)] = {0}; /* Create the header. */ - uint64_t Header[PROFILE_HEADER_SIZE]; - Header[0] = __llvm_profile_get_magic(); - Header[1] = __llvm_profile_get_version(); - Header[2] = DataSize; - Header[3] = CountersSize; - Header[4] = NamesSize; - Header[5] = (uintptr_t)CountersBegin; - Header[6] = (uintptr_t)NamesBegin; + __llvm_profile_header Header; + Header.Magic = __llvm_profile_get_magic(); + Header.Version = __llvm_profile_get_version(); + Header.DataSize = DataSize; + Header.CountersSize = CountersSize; + Header.NamesSize = NamesSize; + Header.CountersDelta = (uintptr_t)CountersBegin; + Header.NamesDelta = (uintptr_t)NamesBegin; /* Write the data. */ #define UPDATE_memcpy(Data, Size) \ @@ -93,7 +93,7 @@ int __llvm_profile_write_buffer_internal( memcpy(Buffer, Data, Size); \ Buffer += Size; \ } while (0) - UPDATE_memcpy(Header, PROFILE_HEADER_SIZE * sizeof(uint64_t)); + UPDATE_memcpy(&Header, sizeof(__llvm_profile_header)); UPDATE_memcpy(DataBegin, DataSize * sizeof(__llvm_profile_data)); UPDATE_memcpy(CountersBegin, CountersSize * sizeof(uint64_t)); UPDATE_memcpy(NamesBegin, NamesSize * sizeof(char)); |

