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 663 of file IdentifierTable.h.
using clang::IdentifierTable::const_iterator = HashTableTy::const_iterator |
Definition at line 756 of file IdentifierTable.h.
using clang::IdentifierTable::iterator = HashTableTy::const_iterator |
Definition at line 755 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 320 of file IdentifierTable.cpp.
References AddKeyword(), get(), and clang::IdentifierInfo::setModulesImport().
Referenced by IdentifierTable().
|
inline |
Definition at line 758 of file IdentifierTable.h.
|
inline |
Definition at line 759 of file IdentifierTable.h.
Referenced by clang::Builtin::Context::initializeBuiltins().
|
inline |
Definition at line 762 of file IdentifierTable.h.
Referenced by clang::Builtin::Context::initializeBuiltins().
|
inline |
Return the identifier token info for the specified named identifier.
Definition at line 696 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 720 of file IdentifierTable.h.
References get().
|
inline |
Definition at line 690 of file IdentifierTable.h.
|
inline |
Retrieve the external identifier lookup object, if any.
Definition at line 686 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 870 of file IdentifierTable.cpp.
References clang::IdentifierInfo::getName(), and clang::IdentifierInfo::isFutureCompatKeyword().
|
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 733 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 512 of file IdentifierTable.cpp.
Referenced by clang::FrontendAction::EndSourceFile().
|
inline |
Set the external identifier lookup mechanism.
Definition at line 681 of file IdentifierTable.h.
|
inline |
Definition at line 760 of file IdentifierTable.h.