//===- llvm/ValueSymbolTable.h - Implement a Value Symtab -------*- 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 implements the name/Value symbol table for LLVM. // //===----------------------------------------------------------------------===// #ifndef LLVM_IR_VALUESYMBOLTABLE_H #define LLVM_IR_VALUESYMBOLTABLE_H #include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringRef.h" #include "llvm/IR/Value.h" #include <cstdint> namespace llvm { class Argument; class BasicBlock; class Function; class GlobalAlias; class GlobalIFunc; class GlobalVariable; class Instruction; template <bool ExtraIteratorBits> struct ilist_iterator_bits; template <class ParentTy> struct ilist_parent; template <unsigned InternalLen> class SmallString; template <typename ValueSubClass, typename ... Args> class SymbolTableListTraits; /// This class provides a symbol table of name/value pairs. It is essentially /// a std::map<std::string,Value*> but has a controlled interface provided by /// LLVM as well as ensuring uniqueness of names. /// class ValueSymbolTable { … }; } // end namespace llvm #endif // LLVM_IR_VALUESYMBOLTABLE_H