diff options
Diffstat (limited to 'llvm/lib/ProfileData')
-rw-r--r-- | llvm/lib/ProfileData/GCOV.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/ProfileData/InstrProfReader.cpp | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/ProfileData/GCOV.cpp b/llvm/lib/ProfileData/GCOV.cpp index 00e6294c57a6..228c1b3b442a 100644 --- a/llvm/lib/ProfileData/GCOV.cpp +++ b/llvm/lib/ProfileData/GCOV.cpp @@ -439,7 +439,7 @@ LLVM_DUMP_METHOD void GCOVBlock::dump() const { print(dbgs()); } //===----------------------------------------------------------------------===// // Cycles detection // -// The algorithm in GCC is based on the algorihtm by Hawick & James: +// The algorithm in GCC is based on the algorithm by Hawick & James: // "Enumerating Circuits and Loops in Graphs with Self-Arcs and Multiple-Arcs" // http://complexity.massey.ac.nz/cstn/013/cstn-013.pdf. diff --git a/llvm/lib/ProfileData/InstrProfReader.cpp b/llvm/lib/ProfileData/InstrProfReader.cpp index 23d078a3ddee..b904f983dceb 100644 --- a/llvm/lib/ProfileData/InstrProfReader.cpp +++ b/llvm/lib/ProfileData/InstrProfReader.cpp @@ -362,7 +362,9 @@ Error RawInstrProfReader<IntPtrT>::readHeader( CountersDelta = swap(Header.CountersDelta); NamesDelta = swap(Header.NamesDelta); auto DataSize = swap(Header.DataSize); + auto PaddingBytesBeforeCounters = swap(Header.PaddingBytesBeforeCounters); auto CountersSize = swap(Header.CountersSize); + auto PaddingBytesAfterCounters = swap(Header.PaddingBytesAfterCounters); NamesSize = swap(Header.NamesSize); ValueKindLast = swap(Header.ValueKindLast); @@ -370,8 +372,10 @@ Error RawInstrProfReader<IntPtrT>::readHeader( auto PaddingSize = getNumPaddingBytes(NamesSize); ptrdiff_t DataOffset = sizeof(RawInstrProf::Header); - ptrdiff_t CountersOffset = DataOffset + DataSizeInBytes; - ptrdiff_t NamesOffset = CountersOffset + sizeof(uint64_t) * CountersSize; + ptrdiff_t CountersOffset = + DataOffset + DataSizeInBytes + PaddingBytesBeforeCounters; + ptrdiff_t NamesOffset = CountersOffset + (sizeof(uint64_t) * CountersSize) + + PaddingBytesAfterCounters; ptrdiff_t ValueDataOffset = NamesOffset + NamesSize + PaddingSize; auto *Start = reinterpret_cast<const char *>(&Header); |