|
clang 22.0.0git
|
Implements an efficient mapping from strings to IdentifierInfo nodes. More...
#include "clang/Basic/IdentifierTable.h"
Public Types | |
| using | iterator = HashTableTy::const_iterator |
| using | const_iterator = HashTableTy::const_iterator |
Public Member Functions | |
| IdentifierTable (IdentifierInfoLookup *ExternalLookup=nullptr) | |
| Create the identifier table. | |
| IdentifierTable (const LangOptions &LangOpts, IdentifierInfoLookup *ExternalLookup=nullptr) | |
Create the identifier table, populating it with info about the language keywords for the language specified by LangOpts. | |
| void | setExternalIdentifierLookup (IdentifierInfoLookup *IILookup) |
| Set the external identifier lookup mechanism. | |
| IdentifierInfoLookup * | getExternalIdentifierLookup () const |
| Retrieve the external identifier lookup object, if any. | |
| llvm::BumpPtrAllocator & | getAllocator () |
| IdentifierInfo & | get (StringRef Name) |
| Return the identifier token info for the specified named identifier. | |
| IdentifierInfo & | get (StringRef Name, tok::TokenKind TokenCode) |
| IdentifierInfo & | getOwn (StringRef Name) |
| Gets an IdentifierInfo for the given name without consulting external sources. | |
| iterator | begin () const |
| iterator | end () const |
| unsigned | size () const |
| iterator | find (StringRef Name) const |
| void | PrintStats () const |
| Print some statistics to stderr that indicate how well the hashing is doing. | |
| void | AddKeywords (const LangOptions &LangOpts) |
Populate the identifier table with info about the language keywords for the language specified by LangOpts. | |
| diag::kind | getFutureCompatDiagKind (const IdentifierInfo &II, const LangOptions &LangOpts) |
| Returns the correct diagnostic to issue for a future-compat diagnostic warning. | |
Implements an efficient mapping from strings to IdentifierInfo nodes.
This has no other purpose, but this is an extremely performance-critical piece of the code, as each occurrence of every identifier goes through here when lexed.
Definition at line 714 of file IdentifierTable.h.
| using clang::IdentifierTable::const_iterator = HashTableTy::const_iterator |
Definition at line 807 of file IdentifierTable.h.
| using clang::IdentifierTable::iterator = HashTableTy::const_iterator |
Definition at line 806 of file IdentifierTable.h.
|
explicit |
Create the identifier table.
Definition at line 64 of file IdentifierTable.cpp.
Referenced by IdentifierTable().
|
explicit |
Create the identifier table, populating it with info about the language keywords for the language specified by LangOpts.
Definition at line 68 of file IdentifierTable.cpp.
References AddKeywords(), and IdentifierTable().
| void IdentifierTable::AddKeywords | ( | const LangOptions & | LangOpts | ) |
Populate the identifier table with info about the language keywords for the language specified by LangOpts.
AddKeywords - Add all keywords to the symbol table.
Definition at line 267 of file IdentifierTable.cpp.
References AddKeyword(), get(), clang::KEYALL, and clang::IdentifierInfo::setModulesImport().
Referenced by IdentifierTable().
|
inline |
Definition at line 809 of file IdentifierTable.h.
|
inline |
Definition at line 810 of file IdentifierTable.h.
Referenced by clang::Builtin::Context::initializeBuiltins().
|
inline |
Definition at line 813 of file IdentifierTable.h.
Referenced by clang::Builtin::Context::initializeBuiltins().
|
inline |
Return the identifier token info for the specified named identifier.
Definition at line 747 of file IdentifierTable.h.
References getAllocator().
Referenced by clang::SemaOpenMP::ActOnStartOfFunctionDefinitionInOpenMPDeclareVariantScope(), clang::SemaHLSL::ActOnStartRootSignatureDecl(), AddCXXOperatorKeyword(), addFunctionPointerConversion(), AddKeyword(), AddKeywords(), clang::hlsl::BuiltinTypeDeclBuilder::addLoadMethods(), clang::hlsl::BuiltinTypeDeclBuilder::addMemberVariable(), AddNotableIdentifier(), AddObjCKeyword(), clang::hlsl::TemplateParameterListBuilder::addTypeParameter(), buildCapture(), buildCoroutineHandle(), buildImplicitMapper(), buildMemberCall(), buildMemcpyForAssignmentOp(), BuildNonArrayForRange(), buildSingleCopyAssignRecursively(), buildStdNoThrowDeclRef(), buildVarDecl(), BuiltinInvoke(), clang::hlsl::BuiltinTypeDeclBuilder::BuiltinTypeDeclBuilder(), clang::hlsl::BuiltinTypeMethodBuilder::BuiltinTypeMethodBuilder(), CheckKeyForObjCARCConversion(), CheckProtocolMethodDefs(), configureBlocksRuntimeObject(), clang::SelectorTable::constructSetterSelector(), CXXRecordMembersNamed(), clang::hlsl::BuiltinTypeMethodBuilder::declareLocalVar(), DiagnoseDirectIsaAccess(), clang::CodeGen::CodeGenFunction::EmitBlockCopyAndAutorelease(), emitOutlinedFunctionPrologue(), emitReplacement(), clang::ExternalSource::FindExternalVisibleDeclsByName(), findOMPAllocatorHandleT(), findOMPAlloctraitT(), findOMPDependT(), findOMPEventHandleT(), clang::CodeGen::CodeGenFunction::generateBuiltinOSLogHelperFunction(), get(), clang::ObjCPropertyDecl::getDefaultSynthIvarName(), getGlobalStreamPointerByName(), getHostLayoutStructName(), clang::getKeywordSelector(), getLambdaStaticInvokers(), getNSNumberFactoryMethod(), clang::GetNullarySelector(), getOpenCLEnumType(), getOpenCLTypedefType(), getStdTrait(), clang::GetUnarySelector(), handleAvailabilityAttr(), handleFormatAttrCommon(), handleOwnershipAttr(), hasMember(), clang::Builtin::Context::initializeBuiltins(), clang::HLSLExternalSemaSource::InitializeSema(), clang::SemaObjC::isCFStringType(), isImplicitMapperNeeded(), isMacroDefined(), clang::SemaObjC::isNSStringType(), isNSStringType(), isStdClassTemplate(), isValidInteropVariable(), lookupCoroutineHandleType(), lookupCXXRecordDecl(), clang::LookupNamed(), clang::LookupNamespace(), lookupPromiseType(), LookupStdClassTemplate(), lookupStdNamespace(), LookupStdSourceLocationImpl(), MarkIdentifierAsKeywordInCpp(), markUsedForAliasOrIfunc(), mergeDeclAttribute(), ProcessAPINotes(), processImplicitMapsWithDefaultMappers(), shouldRunOnFunctionOrMethod(), clang::syntax::tokenize(), and transferARCOwnershipToDeclaratorChunk().
|
inline |
Definition at line 771 of file IdentifierTable.h.
References get().
|
inline |
Definition at line 741 of file IdentifierTable.h.
|
inline |
Retrieve the external identifier lookup object, if any.
Definition at line 737 of file IdentifierTable.h.
Referenced by highlightLines().
| diag::kind IdentifierTable::getFutureCompatDiagKind | ( | const IdentifierInfo & | II, |
| const LangOptions & | LangOpts ) |
Returns the correct diagnostic to issue for a future-compat diagnostic warning.
Note, this function assumes the identifier passed has already been determined to be a future compatible keyword.
Definition at line 817 of file IdentifierTable.cpp.
References clang::CHAR8SUPPORT, clang::IdentifierInfo::getName(), clang::IdentifierInfo::isFutureCompatKeyword(), clang::KEYC23, clang::KEYC99, clang::KEYCXX11, and clang::KEYCXX20.
|
inline |
Gets an IdentifierInfo for the given name without consulting external sources.
This is a version of get() meant for external sources that want to introduce or modify an identifier. If they called get(), they would likely end up in a recursion.
Definition at line 784 of file IdentifierTable.h.
References getAllocator(), and clang::IdentifierInfo::setModulesImport().
Referenced by clang::CodeGen::CodeGenFunction::EmitAndRegisterVariableArrayDimensions().
| void IdentifierTable::PrintStats | ( | ) | const |
Print some statistics to stderr that indicate how well the hashing is doing.
PrintStats - Print statistics about how well the identifier table is doing at hashing identifiers.
Definition at line 459 of file IdentifierTable.cpp.
References stderr.
Referenced by clang::FrontendAction::EndSourceFile().
|
inline |
Set the external identifier lookup mechanism.
Definition at line 732 of file IdentifierTable.h.
|
inline |
Definition at line 811 of file IdentifierTable.h.