Skip to content

Commit

Permalink
[include-cleaner] Reorder SymbolReference fields to avoid padding spa…
Browse files Browse the repository at this point in the history
…ce, NFC

This will bring down the size from 40 bytes to 32 bytes.

Differential Revision: https://reviews.llvm.org/D153018
  • Loading branch information
hokein committed Jun 16, 2023
1 parent 461f91b commit 3b59842
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 17 deletions.
5 changes: 2 additions & 3 deletions clang-tools-extra/clangd/IncludeCleaner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};
Expand Down
2 changes: 1 addition & 1 deletion clang-tools-extra/include-cleaner/lib/Analysis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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));
});
}
Expand Down
2 changes: 1 addition & 1 deletion clang-tools-extra/include-cleaner/lib/HTMLReport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)))
Expand Down
6 changes: 3 additions & 3 deletions clang-tools-extra/include-cleaner/lib/Record.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,9 @@ class PPRecorder : public PPCallbacks {
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;
Expand Down
15 changes: 8 additions & 7 deletions clang-tools-extra/include-cleaner/unittests/AnalysisTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)),
Expand Down

0 comments on commit 3b59842

Please sign in to comment.