//===- TypePool.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 // //===----------------------------------------------------------------------===// #ifndef LLVM_DWARFLINKER_PARALLEL_TYPEPOOL_H #define LLVM_DWARFLINKER_PARALLEL_TYPEPOOL_H #include "ArrayList.h" #include "llvm/ADT/ConcurrentHashtable.h" #include "llvm/ADT/StringMap.h" #include "llvm/CodeGen/DIE.h" #include "llvm/Support/Allocator.h" #include <atomic> namespace llvm { namespace dwarf_linker { namespace parallel { class TypePool; class CompileUnit; class TypeEntryBody; TypeEntry; /// Keeps cloned data for the type DIE. class TypeEntryBody { … }; class TypeEntryInfo { … }; /// TypePool keeps type descriptors which contain partially cloned DIE /// correspinding to each type. Types are identified by names. class TypePool : ConcurrentHashTableByPtr<StringRef, TypeEntry, llvm::parallel::PerThreadBumpPtrAllocator, TypeEntryInfo> { … }; } // end of namespace parallel } // end of namespace dwarf_linker } // end of namespace llvm #endif // LLVM_DWARFLINKER_PARALLEL_TYPEPOOL_H