[llvm] [GISel][NFC] Use ranged-for/enumerate in a few places. (PR #143185)

Jason Eckhardt via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 6 11:10:24 PDT 2025


https://github.com/nvjle created https://github.com/llvm/llvm-project/pull/143185

Follow-up to https://github.com/llvm/llvm-project/pull/143113.

>From 42f17bca15753af243a3d8c179a6c25618f0865b Mon Sep 17 00:00:00 2001
From: Jason Eckhardt <jeckhardt at nvidia.com>
Date: Fri, 6 Jun 2025 13:02:34 -0500
Subject: [PATCH] [GISel][NFC] Use ranged-for/enumerate in a few places.

Follow-up to https://github.com/llvm/llvm-project/pull/142355.
---
 .../CodeGen/GlobalISel/GISelValueTracking.cpp | 23 ++++++++-----------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp b/llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
index 135e1d2163e23..6650ad25bed04 100644
--- a/llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
@@ -222,12 +222,11 @@ void GISelValueTracking::computeKnownBitsImpl(Register R, KnownBits &Known,
     // Collect the known bits that are shared by every demanded vector element.
     Known.Zero.setAllBits();
     Known.One.setAllBits();
-    for (unsigned I = 0, E = MI.getNumOperands() - 1; I < E; ++I) {
+    for (const auto &[I, MO] : enumerate(drop_begin(MI.operands()))) {
       if (!DemandedElts[I])
         continue;
 
-      computeKnownBitsImpl(MI.getOperand(I + 1).getReg(), Known2, APInt(1, 1),
-                           Depth + 1);
+      computeKnownBitsImpl(MO.getReg(), Known2, APInt(1, 1), Depth + 1);
 
       // Known bits are the values that are shared by every demanded element.
       Known = Known.intersectWith(Known2);
@@ -683,14 +682,12 @@ void GISelValueTracking::computeKnownBitsImpl(Register R, KnownBits &Known,
     Known.One.setAllBits();
     unsigned NumSubVectorElts =
         MRI.getType(MI.getOperand(1).getReg()).getNumElements();
-    unsigned NumSubVectors = MI.getNumOperands() - 1;
 
-    for (unsigned I = 0; I != NumSubVectors; ++I) {
+    for (const auto &[I, MO] : enumerate(drop_begin(MI.operands()))) {
       APInt DemandedSub =
           DemandedElts.extractBits(NumSubVectorElts, I * NumSubVectorElts);
       if (!!DemandedSub) {
-        computeKnownBitsImpl(MI.getOperand(I + 1).getReg(), Known2, DemandedSub,
-                             Depth + 1);
+        computeKnownBitsImpl(MO.getReg(), Known2, DemandedSub, Depth + 1);
 
         Known = Known.intersectWith(Known2);
       }
@@ -1944,12 +1941,12 @@ unsigned GISelValueTracking::computeNumSignBits(Register R,
     // Collect the known bits that are shared by every demanded vector element.
     FirstAnswer = TyBits;
     APInt SingleDemandedElt(1, 1);
-    for (unsigned I = 0, E = MI.getNumOperands() - 1; I < E; ++I) {
+    for (const auto &[I, MO] : enumerate(drop_begin(MI.operands()))) {
       if (!DemandedElts[I])
         continue;
 
-      unsigned Tmp2 = computeNumSignBits(MI.getOperand(I + 1).getReg(),
-                                         SingleDemandedElt, Depth + 1);
+      unsigned Tmp2 =
+          computeNumSignBits(MO.getReg(), SingleDemandedElt, Depth + 1);
       FirstAnswer = std::min(FirstAnswer, Tmp2);
 
       // If we don't know any bits, early out.
@@ -1966,14 +1963,12 @@ unsigned GISelValueTracking::computeNumSignBits(Register R,
     // elts of the input vectors. Early out if the result is already 1.
     unsigned NumSubVectorElts =
         MRI.getType(MI.getOperand(1).getReg()).getNumElements();
-    unsigned NumSubVectors = MI.getNumOperands() - 1;
-    for (unsigned I = 0; I < NumSubVectors; ++I) {
+    for (const auto &[I, MO] : enumerate(drop_begin(MI.operands()))) {
       APInt DemandedSub =
           DemandedElts.extractBits(NumSubVectorElts, I * NumSubVectorElts);
       if (!DemandedSub)
         continue;
-      unsigned Tmp2 = computeNumSignBits(MI.getOperand(I + 1).getReg(),
-                                         DemandedSub, Depth + 1);
+      unsigned Tmp2 = computeNumSignBits(MO.getReg(), DemandedSub, Depth + 1);
 
       FirstAnswer = std::min(FirstAnswer, Tmp2);
 



More information about the llvm-commits mailing list