summaryrefslogtreecommitdiff
path: root/compiler-rt/lib/profile/InstrProfilingFile.c
diff options
context:
space:
mode:
Diffstat (limited to 'compiler-rt/lib/profile/InstrProfilingFile.c')
-rw-r--r--compiler-rt/lib/profile/InstrProfilingFile.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/compiler-rt/lib/profile/InstrProfilingFile.c b/compiler-rt/lib/profile/InstrProfilingFile.c
index e4d99ef4872b..1c58584d2d4f 100644
--- a/compiler-rt/lib/profile/InstrProfilingFile.c
+++ b/compiler-rt/lib/profile/InstrProfilingFile.c
@@ -177,8 +177,7 @@ static int mmapForContinuousMode(uint64_t CurrentFileOffset, FILE *File) {
uint64_t PageAlignedBitmapLength =
NumBitmapBytes + PaddingBytesAfterBitmapBytes;
uint64_t FileOffsetToBitmap =
- CurrentFileOffset + sizeof(__llvm_profile_header) + DataSize +
- PaddingBytesBeforeCounters + CountersSize + PaddingBytesAfterCounters;
+ FileOffsetToCounters + CountersSize + PaddingBytesAfterCounters;
void *BitmapMmap =
mmap((void *)BitmapBegin, PageAlignedBitmapLength, PROT_READ | PROT_WRITE,
MAP_FIXED | MAP_SHARED, Fileno, FileOffsetToBitmap);
@@ -243,18 +242,20 @@ static int mmapForContinuousMode(uint64_t CurrentFileOffset, FILE *File) {
if (getProfileFileSizeForMerging(File, &FileSize))
return 1;
+ int Fileno = fileno(File);
+ uint64_t FileOffsetToCounters =
+ sizeof(__llvm_profile_header) + __llvm_write_binary_ids(NULL) + DataSize;
+
/* Map the profile. */
char *Profile = (char *)mmap(NULL, FileSize, PROT_READ | PROT_WRITE,
- MAP_SHARED, fileno(File), 0);
+ MAP_SHARED, Fileno, 0);
if (Profile == MAP_FAILED) {
PROF_ERR("Unable to mmap profile: %s\n", strerror(errno));
return 1;
}
- const uint64_t CountersOffsetInBiasMode =
- sizeof(__llvm_profile_header) + __llvm_write_binary_ids(NULL) + DataSize;
/* Update the profile fields based on the current mapping. */
INSTR_PROF_PROFILE_COUNTER_BIAS_VAR =
- (intptr_t)Profile - (uintptr_t)CountersBegin + CountersOffsetInBiasMode;
+ (intptr_t)Profile - (uintptr_t)CountersBegin + FileOffsetToCounters;
/* Return the memory allocated for counters to OS. */
lprofReleaseMemoryPagesToOS((uintptr_t)CountersBegin, (uintptr_t)CountersEnd);