//===-------------------- VTuneSharedStructs.h ------------------*- 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 // //===----------------------------------------------------------------------===// // // Structs and serialization to share VTune-related information // //===----------------------------------------------------------------------===// #ifndef LLVM_EXECUTIONENGINE_ORC_SHARED_VTUNESHAREDSTRUCTS_H #define LLVM_EXECUTIONENGINE_ORC_SHARED_VTUNESHAREDSTRUCTS_H #include "ExecutorAddress.h" #include <utility> #include <vector> namespace llvm { namespace orc { VTuneLineTable; // SI = String Index, 1-indexed into the VTuneMethodBatch::Strings table. // SI == 0 means replace with nullptr. // MI = Method Index, 1-indexed into the VTuneMethodBatch::Methods table. // MI == 0 means this is a parent method and was not inlined. struct VTuneMethodInfo { … }; VTuneMethodTable; VTuneStringTable; struct VTuneMethodBatch { … }; VTuneUnloadedMethodIDs; namespace shared { SPSVTuneLineTable; SPSVTuneMethodInfo; SPSVTuneMethodTable; SPSVTuneStringTable; SPSVTuneMethodBatch; SPSVTuneUnloadedMethodIDs; template <> class SPSSerializationTraits<SPSVTuneMethodInfo, VTuneMethodInfo> { … }; template <> class SPSSerializationTraits<SPSVTuneMethodBatch, VTuneMethodBatch> { … }; } // end namespace shared } // end namespace orc } // end namespace llvm #endif