diff --git a/llvm/tools/llvm-profgen/PerfReader.cpp b/llvm/tools/llvm-profgen/PerfReader.cpp --- a/llvm/tools/llvm-profgen/PerfReader.cpp +++ b/llvm/tools/llvm-profgen/PerfReader.cpp @@ -1212,6 +1212,7 @@ warnTruncatedStack(); warnInvalidRange(); generateUnsymbolizedProfile(); + AggregatedSamples.clear(); if (SkipSymbolization) writeUnsymbolizedProfile(OutputFilename); diff --git a/llvm/tools/llvm-profgen/llvm-profgen.cpp b/llvm/tools/llvm-profgen/llvm-profgen.cpp --- a/llvm/tools/llvm-profgen/llvm-profgen.cpp +++ b/llvm/tools/llvm-profgen/llvm-profgen.cpp @@ -158,6 +158,7 @@ ProfileGeneratorBase::create(Binary.get(), Reader->getSampleCounters(), Reader->profileIsCSFlat()); Generator->generateProfile(); + Reader.release(); Generator->write(); return EXIT_SUCCESS;