#pragma once #ifdef __GNUC__ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" #endif #ifndef LLVM_PROFILEDATA_RAWMEMPROFREADER_H_ #define LLVM_PROFILEDATA_RAWMEMPROFREADER_H_ //===- 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. // //===----------------------------------------------------------------------===// #include "llvm/Support/Error.h" #include "llvm/Support/MemoryBuffer.h" namespace llvm { namespace memprof { class RawMemProfReader { public: RawMemProfReader(std::unique_ptr DataBuffer) : DataBuffer(std::move(DataBuffer)) {} // Prints aggregate counts for each raw profile parsed from the DataBuffer. void printSummaries(raw_ostream &OS) const; // Return true if the \p DataBuffer starts with magic bytes indicating it is // a raw binary memprof profile. static bool hasFormat(const MemoryBuffer &DataBuffer); // Create a RawMemProfReader after sanity checking the contents of the file at // \p Path. static Expected> create(const Twine &Path); private: std::unique_ptr DataBuffer; }; } // namespace memprof } // namespace llvm #endif // LLVM_PROFILEDATA_RAWMEMPROFREADER_H_ #ifdef __GNUC__ #pragma GCC diagnostic pop #endif