//===- MemProfReader.h - Instrumented memory profiling reader ---*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file contains support for reading MemProf profiling data. // //===----------------------------------------------------------------------===// #ifndef LLVM_PROFILEDATA_MEMPROFREADER_H_ #define LLVM_PROFILEDATA_MEMPROFREADER_H_ #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/MapVector.h" #include "llvm/ADT/StringRef.h" #include "llvm/DebugInfo/Symbolize/SymbolizableModule.h" #include "llvm/DebugInfo/Symbolize/Symbolize.h" #include "llvm/IR/GlobalValue.h" #include "llvm/Object/Binary.h" #include "llvm/Object/ObjectFile.h" #include "llvm/ProfileData/InstrProfReader.h" #include "llvm/ProfileData/MemProf.h" #include "llvm/ProfileData/MemProfData.inc" #include "llvm/Support/Error.h" #include "llvm/Support/MemoryBuffer.h" #include <functional> namespace llvm { namespace memprof { // A class for memprof profile data populated directly from external // sources. class MemProfReader { … }; // Map from id (recorded from sanitizer stack depot) to virtual addresses for // each program counter address in the callstack. CallStackMap; // Specializes the MemProfReader class to populate the contents from raw binary // memprof profiles from instrumentation based profiling. class RawMemProfReader final : public MemProfReader { … }; } // namespace memprof } // namespace llvm #endif // LLVM_PROFILEDATA_MEMPROFREADER_H_