diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2011-05-01 21:29:53 +0000 | 
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2011-05-01 21:29:53 +0000 | 
| commit | 0e439960b816e1721fecf32bca8a1c8f9e1f2b0b (patch) | |
| tree | 479492832400601c939d734949481b0d44f5bb6f /clang/lib/Serialization/ASTReaderStmt.cpp | |
| parent | 56b579a3735c944580b3adca99b52d907cccfc9b (diff) | |
| download | bcm5719-llvm-0e439960b816e1721fecf32bca8a1c8f9e1f2b0b.tar.gz bcm5719-llvm-0e439960b816e1721fecf32bca8a1c8f9e1f2b0b.zip | |
Move the state bits in DeclRefExpr out of the pointer union and into
a bitfield in the base class. DREs weren't using any bits here past the
normal Expr bits, so we have plenty of room. This makes the common case
of getting a Decl out of a DRE no longer need to do any masking etc.
Also, while here, clean up code to use the accessor methods rather than
directly poking these bits, and provide a nice comment for DREs that
includes the information previously attached to the bits going into the
pointer union.
No functionality changed here, but DREs should be a tad faster now.
llvm-svn: 130666
Diffstat (limited to 'clang/lib/Serialization/ASTReaderStmt.cpp')
| -rw-r--r-- | clang/lib/Serialization/ASTReaderStmt.cpp | 14 | 
1 files changed, 5 insertions, 9 deletions
| diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp index 83b3907f581..f0b5abaf3bf 100644 --- a/clang/lib/Serialization/ASTReaderStmt.cpp +++ b/clang/lib/Serialization/ASTReaderStmt.cpp @@ -425,21 +425,17 @@ void ASTStmtReader::VisitPredefinedExpr(PredefinedExpr *E) {  void ASTStmtReader::VisitDeclRefExpr(DeclRefExpr *E) {    VisitExpr(E); -  bool HasQualifier = Record[Idx++]; -  bool HasExplicitTemplateArgs = Record[Idx++]; +  E->DeclRefExprBits.HasQualifier = Record[Idx++]; +  E->DeclRefExprBits.HasExplicitTemplateArgs = Record[Idx++];    unsigned NumTemplateArgs = 0; -  if (HasExplicitTemplateArgs) +  if (E->hasExplicitTemplateArgs())      NumTemplateArgs = Record[Idx++]; -  E->DecoratedD.setInt((HasQualifier? DeclRefExpr::HasQualifierFlag : 0) | -      (HasExplicitTemplateArgs  -         ? DeclRefExpr::HasExplicitTemplateArgumentListFlag : 0)); -   -  if (HasQualifier) +  if (E->hasQualifier())      E->getNameQualifier()->QualifierLoc        = Reader.ReadNestedNameSpecifierLoc(F, Record, Idx); -  if (HasExplicitTemplateArgs) +  if (E->hasExplicitTemplateArgs())      ReadExplicitTemplateArgumentList(E->getExplicitTemplateArgs(),                                       NumTemplateArgs); | 

