[clang] [analyzer][NFC] Change LiveVariablesImpl::inAssignment from DenseMap to DenseSet (PR #157685)
Balazs Benics via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 9 07:59:43 PDT 2025
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 <benicsbalazs at 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())
More information about the cfe-commits
mailing list