diff options
author | hjk <hjk@qt.io> | 2022-06-23 16:56:36 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2022-06-24 11:49:41 +0000 |
commit | ffa3aad57647be2d33246b5f07eaa32450dd87a6 (patch) | |
tree | 6ad17cd8d0e23ddedd461fd846777287f4029573 /src/libs/3rdparty/cplusplus/Bind.cpp | |
parent | 85cd97a33446699f97a21429ceb22f3acf40a5be (diff) |
CPlusPlus: Inline some simple central functions
Depending on context, callgrind sees contributions of >8% to
the total cost of project parsing for these functions. The
functional are actualy executed executed out-of-line, often
for a function body of one "payload" instruction only.
Inlining removes the call/endbr64/ret overhead.
Change-Id: I6886f08e322fcaa4e0f54d424279e0a8c24e4718
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Bind.cpp')
-rw-r--r-- | src/libs/3rdparty/cplusplus/Bind.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/libs/3rdparty/cplusplus/Bind.cpp b/src/libs/3rdparty/cplusplus/Bind.cpp index 9a9cf34cbc..2a911fb0da 100644 --- a/src/libs/3rdparty/cplusplus/Bind.cpp +++ b/src/libs/3rdparty/cplusplus/Bind.cpp @@ -2024,7 +2024,7 @@ bool Bind::visit(SimpleDeclarationAST *ast) decl->setInitializer(asStringLiteral(initializer)); } - if (_scope->isClass()) { + if (_scope->asClass()) { decl->setVisibility(_visibility); if (Function *funTy = decl->type()->asFunctionType()) { @@ -2050,7 +2050,7 @@ bool Bind::visit(EmptyDeclarationAST *ast) { (void) ast; int semicolon_token = ast->semicolon_token; - if (_scope && (_scope->isClass() || _scope->isNamespace())) { + if (_scope && (_scope->asClass() || _scope->asNamespace())) { const Token &tk = tokenAt(semicolon_token); if (! tk.generated()) @@ -2227,7 +2227,7 @@ bool Bind::visit(AliasDeclarationAST *ast) decl->setType(ty); decl->setStorage(Symbol::Typedef); ast->symbol = decl; - if (_scope->isClass()) + if (_scope->asClass()) decl->setVisibility(_visibility); _scope->addMember(decl); @@ -2299,7 +2299,7 @@ bool Bind::visit(FunctionDefinitionAST *ast) setDeclSpecifiers(fun, declSpecifiers); fun->setEndOffset(tokenAt(ast->lastToken() - 1).utf16charsEnd()); - if (_scope->isClass()) { + if (_scope->asClass()) { fun->setVisibility(_visibility); fun->setMethodKey(methodKey); } @@ -3147,7 +3147,7 @@ bool Bind::visit(ClassSpecifierAST *ast) klass->setEndOffset(tokenAt(ast->lastToken() - 1).utf16charsEnd()); _scope->addMember(klass); - if (_scope->isClass()) + if (_scope->asClass()) klass->setVisibility(_visibility); // set the class key @@ -3210,7 +3210,7 @@ bool Bind::visit(EnumSpecifierAST *ast) ast->symbol = e; _scope->addMember(e); - if (_scope->isClass()) + if (_scope->asClass()) e->setVisibility(_visibility); Scope *previousScope = switchScope(e); @@ -3398,7 +3398,7 @@ void Bind::ensureValidClassName(const Name **name, int sourceLocation) const QualifiedNameId *qName = (*name)->asQualifiedNameId(); const Name *uqName = qName ? qName->name() : *name; - if (!uqName->isNameId() && !uqName->isTemplateNameId()) { + if (!uqName->asNameId() && !uqName->asTemplateNameId()) { translationUnit()->error(sourceLocation, "expected a class-name"); *name = uqName->identifier(); |