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 00e6294c57a6d..228c1b3b442a1 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 23d078a3ddeef..b904f983dcebe 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); | 
