From 4d7b439ea8d0d0c03d53cdc53ae419887b161d07 Mon Sep 17 00:00:00 2001 From: Ramkumar Ramachandra Date: Tue, 22 Apr 2025 20:19:54 +0100 Subject: [PATCH] [LAA] Prefer set-contains over set-count (NFC) Improve code by preferring {SmallSet,SmallPtrSet}::contains() over the count() function, when used in a boolean context. --- llvm/lib/Analysis/LoopAccessAnalysis.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp index 9a7d361b5b512..c65bb8be8b996 100644 --- a/llvm/lib/Analysis/LoopAccessAnalysis.cpp +++ b/llvm/lib/Analysis/LoopAccessAnalysis.cpp @@ -513,7 +513,7 @@ void RuntimePointerChecking::groupChecks( for (unsigned I = 0; I < Pointers.size(); ++I) { // We've seen this pointer before, and therefore already processed // its equivalence class. - if (Seen.count(I)) + if (Seen.contains(I)) continue; MemoryDepChecker::MemAccessInfo Access(Pointers[I].PointerValue, @@ -1212,7 +1212,7 @@ bool AccessAnalysis::canCheckPtrAtRT( SmallVector AccessInfos; for (const Value *ConstPtr : ASPointers) { Value *Ptr = const_cast(ConstPtr); - bool IsWrite = Accesses.count(MemAccessInfo(Ptr, true)); + bool IsWrite = Accesses.contains(MemAccessInfo(Ptr, true)); if (IsWrite) ++NumWritePtrChecks; else @@ -1341,9 +1341,10 @@ void AccessAnalysis::processMemAccesses() { LLVM_DEBUG({ for (const auto &[A, _] : Accesses) dbgs() << "\t" << *A.getPointer() << " (" - << (A.getInt() ? "write" - : (ReadOnlyPtr.count(A.getPointer()) ? "read-only" - : "read")) + << (A.getInt() + ? "write" + : (ReadOnlyPtr.contains(A.getPointer()) ? "read-only" + : "read")) << ")\n"; }); @@ -1387,13 +1388,13 @@ void AccessAnalysis::processMemAccesses() { // If we're using the deferred access set, then it contains only // reads. - bool IsReadOnlyPtr = ReadOnlyPtr.count(Ptr) && !IsWrite; + bool IsReadOnlyPtr = ReadOnlyPtr.contains(Ptr) && !IsWrite; if (UseDeferred && !IsReadOnlyPtr) continue; // Otherwise, the pointer must be in the PtrAccessSet, either as a // read or a write. assert(((IsReadOnlyPtr && UseDeferred) || IsWrite || - S.count(MemAccessInfo(Ptr, false))) && + S.contains(MemAccessInfo(Ptr, false))) && "Alias-set pointer not in the access set?"); MemAccessInfo Access(Ptr, IsWrite); @@ -2260,7 +2261,7 @@ bool MemoryDepChecker::areDepsSafe(const DepCandidates &AccessSets, MinDepDistBytes = -1; SmallPtrSet Visited; for (MemAccessInfo CurAccess : CheckDeps) { - if (Visited.count(CurAccess)) + if (Visited.contains(CurAccess)) continue; // Check accesses within this set. @@ -2605,7 +2606,7 @@ bool LoopAccessInfo::analyzeLoop(AAResults *AA, const LoopInfo *LI, // See if there is an unsafe dependency between a load to a uniform address and // store to the same uniform address. - if (UniformStores.count(Ptr)) { + if (UniformStores.contains(Ptr)) { LLVM_DEBUG(dbgs() << "LAA: Found an unsafe dependency between a uniform " "load and uniform store to the same address!\n"); HasLoadStoreDependenceInvolvingLoopInvariantAddress = true;