[include-cleaner] Reorder SymbolReference fields to avoid padding space, NFC
authorHaojian Wu <hokein.wu@gmail.com>
Thu, 15 Jun 2023 13:38:03 +0000 (15:38 +0200)
committerHaojian Wu <hokein.wu@gmail.com>
Fri, 16 Jun 2023 08:21:44 +0000 (10:21 +0200)
This will bring down the size from 40 bytes to 32 bytes.

Differential Revision: https://reviews.llvm.org/D153018

clang-tools-extra/clangd/IncludeCleaner.cpp
clang-tools-extra/include-cleaner/include/clang-include-cleaner/Types.h
clang-tools-extra/include-cleaner/lib/Analysis.cpp
clang-tools-extra/include-cleaner/lib/HTMLReport.cpp
clang-tools-extra/include-cleaner/lib/Record.cpp
clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp

index 8f1be54..dac24bc 100644 (file)
@@ -370,10 +370,9 @@ collectMacroReferences(ParsedAST &AST) {
       continue;
     if (auto DefLoc = Macro->Info->getDefinitionLoc(); DefLoc.isValid())
       Macros.push_back(
-          {Tok.location(),
-           include_cleaner::Macro{/*Name=*/PP.getIdentifierInfo(Tok.text(SM)),
+          {include_cleaner::Macro{/*Name=*/PP.getIdentifierInfo(Tok.text(SM)),
                                   DefLoc},
-           include_cleaner::RefType::Explicit});
+           Tok.location(), include_cleaner::RefType::Explicit});
   }
   return Macros;
 }
index 39055db..0f7fd1c 100644 (file)
@@ -95,10 +95,10 @@ llvm::raw_ostream &operator<<(llvm::raw_ostream &, RefType);
 
 /// Indicates that a piece of code refers to a symbol.
 struct SymbolReference {
-  /// The point in the code that refers to the symbol.
-  SourceLocation RefLocation;
   /// The symbol referred to.
   Symbol Target;
+  /// The point in the code that refers to the symbol.
+  SourceLocation RefLocation;
   /// Relation type between the reference location and the target.
   RefType RT;
 };
index 2c589ae..3952d10 100644 (file)
@@ -45,7 +45,7 @@ void walkUsed(llvm::ArrayRef<Decl *> ASTRoots,
         return;
       // FIXME: Most of the work done here is repetitive. It might be useful to
       // have a cache/batching.
-      SymbolReference SymRef{Loc, ND, RT};
+      SymbolReference SymRef{ND, Loc, RT};
       return CB(SymRef, headersForSymbol(ND, SM, PI));
     });
   }
index 65b8297..431d4bb 100644 (file)
@@ -521,7 +521,7 @@ void writeHTMLReport(FileID File, const include_cleaner::Includes &Includes,
     walkAST(*Root, [&](SourceLocation Loc, const NamedDecl &D, RefType T) {
       if(!SM.isWrittenInMainFile(SM.getSpellingLoc(Loc)))
         return;
-      R.addRef(SymbolReference{Loc, D, T});
+      R.addRef(SymbolReference{D, Loc, T});
     });
   for (const SymbolReference &Ref : MacroRefs) {
     if (!SM.isWrittenInMainFile(SM.getSpellingLoc(Ref.RefLocation)))
index e367531..dc3192b 100644 (file)
@@ -134,9 +134,9 @@ private:
                       RefType RT = RefType::Explicit) {
     if (MI.isBuiltinMacro())
       return; // __FILE__ is not a reference.
-    Recorded.MacroReferences.push_back(SymbolReference{
-        Tok.getLocation(),
-        Macro{Tok.getIdentifierInfo(), MI.getDefinitionLoc()}, RT});
+    Recorded.MacroReferences.push_back(
+        SymbolReference{Macro{Tok.getIdentifierInfo(), MI.getDefinitionLoc()},
+                        Tok.getLocation(), RT});
   }
 
   bool Active = false;
index 8593d05..bad55e1 100644 (file)
@@ -182,13 +182,14 @@ TEST_F(WalkUsedTest, MacroRefs) {
   Symbol Answer2 =
       Macro{&Idents.get("ANSWER"), SM.getComposedLoc(HdrID, Hdr.point())};
   EXPECT_THAT(
-      offsetToProviders(AST, SM,
-                        {SymbolReference{SM.getComposedLoc(SM.getMainFileID(),
-                                                           Code.point("1")),
-                                         Answer1, RefType::Explicit},
-                         SymbolReference{SM.getComposedLoc(SM.getMainFileID(),
-                                                           Code.point("2")),
-                                         Answer2, RefType::Explicit}}),
+      offsetToProviders(
+          AST, SM,
+          {SymbolReference{
+               Answer1, SM.getComposedLoc(SM.getMainFileID(), Code.point("1")),
+               RefType::Explicit},
+           SymbolReference{
+               Answer2, SM.getComposedLoc(SM.getMainFileID(), Code.point("2")),
+               RefType::Explicit}}),
       UnorderedElementsAre(
           Pair(Code.point("1"), UnorderedElementsAre(HdrFile)),
           Pair(Code.point("2"), UnorderedElementsAre(HdrFile)),