//===- ProfileSummary.h - Profile summary data structure. -------*- 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 defines the profile summary data structure. // //===----------------------------------------------------------------------===// #ifndef LLVM_IR_PROFILESUMMARY_H #define LLVM_IR_PROFILESUMMARY_H #include <algorithm> #include <cassert> #include <cstdint> #include <vector> namespace llvm { class LLVMContext; class Metadata; class raw_ostream; // The profile summary is one or more (Cutoff, MinCount, NumCounts) triplets. // The semantics of counts depend on the type of profile. For instrumentation // profile, counts are block counts and for sample profile, counts are // per-line samples. Given a target counts percentile, we compute the minimum // number of counts needed to reach this target and the minimum among these // counts. struct ProfileSummaryEntry { … }; SummaryEntryVector; class ProfileSummary { … }; } // end namespace llvm #endif // LLVM_IR_PROFILESUMMARY_H