summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBruno Ricci <riccibrun@gmail.com>2018-11-15 13:56:22 +0000
committerBruno Ricci <riccibrun@gmail.com>2018-11-15 13:56:22 +0000
commit04166176dca81b428c2d6bb30080810a309144f8 (patch)
treed865d2116ea059fbdd17417ee158d81b59fc4083 /lib
parentee95fa569c6a5dae43a9c426a9ade3a065693d54 (diff)
downloadclang-04166176dca81b428c2d6bb30080810a309144f8.tar.gz
[AST] Pack MemberExpr
Use the newly available space in the bit-fields of Stmt to store some data from MemberExpr. This saves one pointer per MemberExpr. Differential Revision: https://reviews.llvm.org/D54525 Reviewed By: dblaikie git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@346953 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/AST/Expr.cpp5
-rw-r--r--lib/Serialization/ASTWriterStmt.cpp4
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp
index 564484ed03..b915bb58f5 100644
--- a/lib/AST/Expr.cpp
+++ b/lib/AST/Expr.cpp
@@ -1528,7 +1528,7 @@ MemberExpr *MemberExpr::Create(
QualifierLoc.getNestedNameSpecifier()->isInstantiationDependent())
E->setInstantiationDependent(true);
- E->HasQualifierOrFoundDecl = true;
+ E->MemberExprBits.HasQualifierOrFoundDecl = true;
MemberExprNameQualifier *NQ =
E->getTrailingObjects<MemberExprNameQualifier>();
@@ -1536,7 +1536,8 @@ MemberExpr *MemberExpr::Create(
NQ->FoundDecl = founddecl;
}
- E->HasTemplateKWAndArgsInfo = (targs || TemplateKWLoc.isValid());
+ E->MemberExprBits.HasTemplateKWAndArgsInfo =
+ (targs || TemplateKWLoc.isValid());
if (targs) {
bool Dependent = false;
diff --git a/lib/Serialization/ASTWriterStmt.cpp b/lib/Serialization/ASTWriterStmt.cpp
index 4f579dc346..f32705c2ef 100644
--- a/lib/Serialization/ASTWriterStmt.cpp
+++ b/lib/Serialization/ASTWriterStmt.cpp
@@ -655,8 +655,8 @@ void ASTStmtWriter::VisitMemberExpr(MemberExpr *E) {
if (E->hasQualifier())
Record.AddNestedNameSpecifierLoc(E->getQualifierLoc());
- Record.push_back(E->HasTemplateKWAndArgsInfo);
- if (E->HasTemplateKWAndArgsInfo) {
+ Record.push_back(E->hasTemplateKWAndArgsInfo());
+ if (E->hasTemplateKWAndArgsInfo()) {
Record.AddSourceLocation(E->getTemplateKeywordLoc());
unsigned NumTemplateArgs = E->getNumTemplateArgs();
Record.push_back(NumTemplateArgs);