https://github.com/steakhal created https://github.com/llvm/llvm-project/pull/157685
The `inAssignment` variable is actually used as a set; let's declare it as a set. >From f7e4b8295a5e003ff272d9272d197e911bac30cc Mon Sep 17 00:00:00 2001 From: Balazs Benics <benicsbal...@gmail.com> Date: Tue, 9 Sep 2025 16:08:06 +0200 Subject: [PATCH] [analyzer][NFC] Change LiveVariablesImpl::inAssignment from DenseMap to DenseSet The `inAssignment` variable is actually used as a set; let's declare it as a set. --- clang/lib/Analysis/LiveVariables.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/clang/lib/Analysis/LiveVariables.cpp b/clang/lib/Analysis/LiveVariables.cpp index 33a53c2af6039..5e07d83c13384 100644 --- a/clang/lib/Analysis/LiveVariables.cpp +++ b/clang/lib/Analysis/LiveVariables.cpp @@ -18,6 +18,7 @@ #include "clang/Analysis/FlowSensitive/DataflowWorklist.h" #include "clang/Basic/SourceManager.h" #include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/DenseSet.h" #include "llvm/ADT/STLExtras.h" #include "llvm/Support/raw_ostream.h" #include <optional> @@ -35,7 +36,7 @@ class LiveVariablesImpl { llvm::DenseMap<const CFGBlock *, LiveVariables::LivenessValues> blocksEndToLiveness; llvm::DenseMap<const CFGBlock *, LiveVariables::LivenessValues> blocksBeginToLiveness; llvm::DenseMap<const Stmt *, LiveVariables::LivenessValues> stmtsToLiveness; - llvm::DenseMap<const DeclRefExpr *, unsigned> inAssignment; + llvm::DenseSet<const DeclRefExpr *> inAssignment; const bool killAtAssign; LiveVariables::LivenessValues @@ -370,7 +371,7 @@ static bool writeShouldKill(const VarDecl *VD) { void TransferFunctions::VisitBinaryOperator(BinaryOperator *B) { if (LV.killAtAssign && B->getOpcode() == BO_Assign) { if (const auto *DR = dyn_cast<DeclRefExpr>(B->getLHS()->IgnoreParens())) { - LV.inAssignment[DR] = 1; + LV.inAssignment.insert(DR); } } if (B->isAssignmentOp()) { @@ -412,7 +413,7 @@ void TransferFunctions::VisitBlockExpr(BlockExpr *BE) { void TransferFunctions::VisitDeclRefExpr(DeclRefExpr *DR) { const Decl* D = DR->getDecl(); - bool InAssignment = LV.inAssignment[DR]; + bool InAssignment = LV.inAssignment.contains(DR); if (const auto *BD = dyn_cast<BindingDecl>(D)) { if (!InAssignment) { if (const auto *HV = BD->getHoldingVar()) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits