[clang] ae372bf - [CodeGen] Use range-based for loops (NFC) (#145142)
via cfe-commits
cfe-commits at lists.llvm.org
Sat Jun 21 08:21:00 PDT 2025
Author: Kazu Hirata
Date: 2025-06-21T08:20:57-07:00
New Revision: ae372bfca890cc7a67553b3cb19134359b66c0e1
URL: https://github.com/llvm/llvm-project/commit/ae372bfca890cc7a67553b3cb19134359b66c0e1
DIFF: https://github.com/llvm/llvm-project/commit/ae372bfca890cc7a67553b3cb19134359b66c0e1.diff
LOG: [CodeGen] Use range-based for loops (NFC) (#145142)
Added:
Modified:
clang/include/clang/CodeGen/CGFunctionInfo.h
clang/lib/CodeGen/CGOpenMPRuntime.cpp
clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
clang/lib/CodeGen/CGStmt.cpp
clang/lib/CodeGen/MicrosoftCXXABI.cpp
clang/lib/CodeGen/ModuleBuilder.cpp
clang/lib/CodeGen/TargetBuiltins/ARM.cpp
clang/lib/CodeGen/Targets/X86.cpp
Removed:
################################################################################
diff --git a/clang/include/clang/CodeGen/CGFunctionInfo.h b/clang/include/clang/CodeGen/CGFunctionInfo.h
index 040ee025afaa8..50be51769f1a8 100644
--- a/clang/include/clang/CodeGen/CGFunctionInfo.h
+++ b/clang/include/clang/CodeGen/CGFunctionInfo.h
@@ -828,10 +828,8 @@ class CGFunctionInfo final
ID.AddInteger(paramInfo.getOpaqueValue());
}
resultType.Profile(ID);
- for (ArrayRef<CanQualType>::iterator
- i = argTypes.begin(), e = argTypes.end(); i != e; ++i) {
- i->Profile(ID);
- }
+ for (const CanQualType &argType : argTypes)
+ argType.Profile(ID);
}
};
diff --git a/clang/lib/CodeGen/CGOpenMPRuntime.cpp b/clang/lib/CodeGen/CGOpenMPRuntime.cpp
index 4173355491fd4..8ccc37ef98a74 100644
--- a/clang/lib/CodeGen/CGOpenMPRuntime.cpp
+++ b/clang/lib/CodeGen/CGOpenMPRuntime.cpp
@@ -4168,8 +4168,7 @@ void CGOpenMPRuntime::emitDepobjElements(CodeGenFunction &CGF,
CGF, cast_or_null<OMPIteratorExpr>(
Data.IteratorExpr ? Data.IteratorExpr->IgnoreParenImpCasts()
: nullptr));
- for (unsigned I = 0, End = Data.DepExprs.size(); I < End; ++I) {
- const Expr *E = Data.DepExprs[I];
+ for (const Expr *E : Data.DepExprs) {
llvm::Value *NumDeps;
LValue Base;
LValue DepobjLVal = CGF.EmitLValue(E->IgnoreParenImpCasts());
@@ -4289,31 +4288,26 @@ std::pair<llvm::Value *, Address> CGOpenMPRuntime::emitDependClause(
/*isSigned=*/false);
}
unsigned Pos = 0;
- for (unsigned I = 0, End = Dependencies.size(); I < End; ++I) {
- if (Dependencies[I].DepKind == OMPC_DEPEND_depobj ||
- Dependencies[I].IteratorExpr)
+ for (const OMPTaskDataTy::DependData &Dep : Dependencies) {
+ if (Dep.DepKind == OMPC_DEPEND_depobj || Dep.IteratorExpr)
continue;
- emitDependData(CGF, KmpDependInfoTy, &Pos, Dependencies[I],
- DependenciesArray);
+ emitDependData(CGF, KmpDependInfoTy, &Pos, Dep, DependenciesArray);
}
// Copy regular dependencies with iterators.
LValue PosLVal = CGF.MakeAddrLValue(
CGF.CreateMemTemp(C.getSizeType(), "dep.counter.addr"), C.getSizeType());
CGF.EmitStoreOfScalar(llvm::ConstantInt::get(CGF.SizeTy, Pos), PosLVal);
- for (unsigned I = 0, End = Dependencies.size(); I < End; ++I) {
- if (Dependencies[I].DepKind == OMPC_DEPEND_depobj ||
- !Dependencies[I].IteratorExpr)
+ for (const OMPTaskDataTy::DependData &Dep : Dependencies) {
+ if (Dep.DepKind == OMPC_DEPEND_depobj || !Dep.IteratorExpr)
continue;
- emitDependData(CGF, KmpDependInfoTy, &PosLVal, Dependencies[I],
- DependenciesArray);
+ emitDependData(CGF, KmpDependInfoTy, &PosLVal, Dep, DependenciesArray);
}
// Copy final depobj arrays without iterators.
if (HasDepobjDeps) {
- for (unsigned I = 0, End = Dependencies.size(); I < End; ++I) {
- if (Dependencies[I].DepKind != OMPC_DEPEND_depobj)
+ for (const OMPTaskDataTy::DependData &Dep : Dependencies) {
+ if (Dep.DepKind != OMPC_DEPEND_depobj)
continue;
- emitDepobjElements(CGF, KmpDependInfoTy, PosLVal, Dependencies[I],
- DependenciesArray);
+ emitDepobjElements(CGF, KmpDependInfoTy, PosLVal, Dep, DependenciesArray);
}
}
DependenciesArray = CGF.Builder.CreatePointerBitCastOrAddrSpaceCast(
diff --git a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
index 232e2d8b43ca1..e1310aed818ad 100644
--- a/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
+++ b/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp
@@ -972,18 +972,16 @@ void CGRecordLowering::determinePacked(bool NVBaseType) {
CharUnits NVAlignment = CharUnits::One();
CharUnits NVSize =
!NVBaseType && RD ? Layout.getNonVirtualSize() : CharUnits::Zero();
- for (std::vector<MemberInfo>::const_iterator Member = Members.begin(),
- MemberEnd = Members.end();
- Member != MemberEnd; ++Member) {
- if (!Member->Data)
+ for (const MemberInfo &Member : Members) {
+ if (!Member.Data)
continue;
// If any member falls at an offset that it not a multiple of its alignment,
// then the entire record must be packed.
- if (Member->Offset % getAlignment(Member->Data))
+ if (Member.Offset % getAlignment(Member.Data))
Packed = true;
- if (Member->Offset < NVSize)
- NVAlignment = std::max(NVAlignment, getAlignment(Member->Data));
- Alignment = std::max(Alignment, getAlignment(Member->Data));
+ if (Member.Offset < NVSize)
+ NVAlignment = std::max(NVAlignment, getAlignment(Member.Data));
+ Alignment = std::max(Alignment, getAlignment(Member.Data));
}
// If the size of the record (the capstone's offset) is not a multiple of the
// record's alignment, it must be packed.
@@ -1002,45 +1000,39 @@ void CGRecordLowering::determinePacked(bool NVBaseType) {
void CGRecordLowering::insertPadding() {
std::vector<std::pair<CharUnits, CharUnits> > Padding;
CharUnits Size = CharUnits::Zero();
- for (std::vector<MemberInfo>::const_iterator Member = Members.begin(),
- MemberEnd = Members.end();
- Member != MemberEnd; ++Member) {
- if (!Member->Data)
+ for (const MemberInfo &Member : Members) {
+ if (!Member.Data)
continue;
- CharUnits Offset = Member->Offset;
+ CharUnits Offset = Member.Offset;
assert(Offset >= Size);
// Insert padding if we need to.
if (Offset !=
- Size.alignTo(Packed ? CharUnits::One() : getAlignment(Member->Data)))
+ Size.alignTo(Packed ? CharUnits::One() : getAlignment(Member.Data)))
Padding.push_back(std::make_pair(Size, Offset - Size));
- Size = Offset + getSize(Member->Data);
+ Size = Offset + getSize(Member.Data);
}
if (Padding.empty())
return;
// Add the padding to the Members list and sort it.
- for (std::vector<std::pair<CharUnits, CharUnits> >::const_iterator
- Pad = Padding.begin(), PadEnd = Padding.end();
- Pad != PadEnd; ++Pad)
- Members.push_back(StorageInfo(Pad->first, getByteArrayType(Pad->second)));
+ for (const auto &Pad : Padding)
+ Members.push_back(StorageInfo(Pad.first, getByteArrayType(Pad.second)));
llvm::stable_sort(Members);
}
void CGRecordLowering::fillOutputFields() {
- for (std::vector<MemberInfo>::const_iterator Member = Members.begin(),
- MemberEnd = Members.end();
- Member != MemberEnd; ++Member) {
- if (Member->Data)
- FieldTypes.push_back(Member->Data);
- if (Member->Kind == MemberInfo::Field) {
- if (Member->FD)
- Fields[Member->FD->getCanonicalDecl()] = FieldTypes.size() - 1;
+ for (const MemberInfo &Member : Members) {
+ if (Member.Data)
+ FieldTypes.push_back(Member.Data);
+ if (Member.Kind == MemberInfo::Field) {
+ if (Member.FD)
+ Fields[Member.FD->getCanonicalDecl()] = FieldTypes.size() - 1;
// A field without storage must be a bitfield.
- if (!Member->Data)
- setBitFieldInfo(Member->FD, Member->Offset, FieldTypes.back());
- } else if (Member->Kind == MemberInfo::Base)
- NonVirtualBases[Member->RD] = FieldTypes.size() - 1;
- else if (Member->Kind == MemberInfo::VBase)
- VirtualBases[Member->RD] = FieldTypes.size() - 1;
+ if (!Member.Data)
+ setBitFieldInfo(Member.FD, Member.Offset, FieldTypes.back());
+ } else if (Member.Kind == MemberInfo::Base)
+ NonVirtualBases[Member.RD] = FieldTypes.size() - 1;
+ else if (Member.Kind == MemberInfo::VBase)
+ VirtualBases[Member.RD] = FieldTypes.size() - 1;
}
}
@@ -1224,20 +1216,18 @@ void CGRecordLayout::print(raw_ostream &OS) const {
// Print bit-field infos in declaration order.
std::vector<std::pair<unsigned, const CGBitFieldInfo*> > BFIs;
- for (llvm::DenseMap<const FieldDecl*, CGBitFieldInfo>::const_iterator
- it = BitFields.begin(), ie = BitFields.end();
- it != ie; ++it) {
- const RecordDecl *RD = it->first->getParent();
+ for (const auto &BitField : BitFields) {
+ const RecordDecl *RD = BitField.first->getParent();
unsigned Index = 0;
- for (RecordDecl::field_iterator
- it2 = RD->field_begin(); *it2 != it->first; ++it2)
+ for (RecordDecl::field_iterator it2 = RD->field_begin();
+ *it2 != BitField.first; ++it2)
++Index;
- BFIs.push_back(std::make_pair(Index, &it->second));
+ BFIs.push_back(std::make_pair(Index, &BitField.second));
}
llvm::array_pod_sort(BFIs.begin(), BFIs.end());
- for (unsigned i = 0, e = BFIs.size(); i != e; ++i) {
+ for (auto &BFI : BFIs) {
OS.indent(4);
- BFIs[i].second->print(OS);
+ BFI.second->print(OS);
OS << "\n";
}
diff --git a/clang/lib/CodeGen/CGStmt.cpp b/clang/lib/CodeGen/CGStmt.cpp
index 8742f8e0fc04a..e0650067b9547 100644
--- a/clang/lib/CodeGen/CGStmt.cpp
+++ b/clang/lib/CodeGen/CGStmt.cpp
@@ -757,10 +757,9 @@ void CodeGenFunction::LexicalScope::rescopeLabels() {
= CGF.EHStack.getInnermostNormalCleanup();
// Change the scope depth of all the labels.
- for (SmallVectorImpl<const LabelDecl*>::const_iterator
- i = Labels.begin(), e = Labels.end(); i != e; ++i) {
- assert(CGF.LabelMap.count(*i));
- JumpDest &dest = CGF.LabelMap.find(*i)->second;
+ for (const LabelDecl *Label : Labels) {
+ assert(CGF.LabelMap.count(Label));
+ JumpDest &dest = CGF.LabelMap.find(Label)->second;
assert(dest.getScopeDepth().isValid());
assert(innermostScope.encloses(dest.getScopeDepth()));
dest.setScopeDepth(innermostScope);
@@ -2302,8 +2301,8 @@ void CodeGenFunction::EmitSwitchStmt(const SwitchStmt &S) {
// Okay, we can dead code eliminate everything except this case. Emit the
// specified series of statements and we're good.
- for (unsigned i = 0, e = CaseStmts.size(); i != e; ++i)
- EmitStmt(CaseStmts[i]);
+ for (const Stmt *CaseStmt : CaseStmts)
+ EmitStmt(CaseStmt);
incrementProfileCounter(&S);
PGO->markStmtMaybeUsed(S.getBody());
diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
index 514cc1d9015ee..a181559834296 100644
--- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp
+++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp
@@ -1836,9 +1836,9 @@ llvm::GlobalVariable *MicrosoftCXXABI::getAddrOfVTable(const CXXRecordDecl *RD,
// Create all the vftables at once in order to make sure each vftable has
// a unique mangled name.
llvm::StringSet<> ObservedMangledNames;
- for (size_t J = 0, F = VFPtrs.size(); J != F; ++J) {
+ for (const auto &VFPtr : VFPtrs) {
SmallString<256> Name;
- mangleVFTableName(getMangleContext(), RD, *VFPtrs[J], Name);
+ mangleVFTableName(getMangleContext(), RD, *VFPtr, Name);
if (!ObservedMangledNames.insert(Name.str()).second)
llvm_unreachable("Already saw this mangling before?");
}
diff --git a/clang/lib/CodeGen/ModuleBuilder.cpp b/clang/lib/CodeGen/ModuleBuilder.cpp
index 09a7d79ae4afb..8c1fee8c974f1 100644
--- a/clang/lib/CodeGen/ModuleBuilder.cpp
+++ b/clang/lib/CodeGen/ModuleBuilder.cpp
@@ -186,8 +186,8 @@ namespace {
HandlingTopLevelDeclRAII HandlingDecl(*this);
// Make sure to emit all elements of a Decl.
- for (DeclGroupRef::iterator I = DG.begin(), E = DG.end(); I != E; ++I)
- Builder->EmitTopLevelDecl(*I);
+ for (auto &I : DG)
+ Builder->EmitTopLevelDecl(I);
return true;
}
diff --git a/clang/lib/CodeGen/TargetBuiltins/ARM.cpp b/clang/lib/CodeGen/TargetBuiltins/ARM.cpp
index dab311903f6dd..6738d4be6dd21 100644
--- a/clang/lib/CodeGen/TargetBuiltins/ARM.cpp
+++ b/clang/lib/CodeGen/TargetBuiltins/ARM.cpp
@@ -4560,10 +4560,10 @@ Value *CodeGenFunction::EmitAArch64SVEBuiltinExpr(unsigned BuiltinID,
Ops.insert(&Ops[1], Builder.getInt32(/*SV_ALL*/ 31));
// Predicates must match the main datatype.
- for (unsigned i = 0, e = Ops.size(); i != e; ++i)
- if (auto PredTy = dyn_cast<llvm::VectorType>(Ops[i]->getType()))
+ for (Value *&Op : Ops)
+ if (auto PredTy = dyn_cast<llvm::VectorType>(Op->getType()))
if (PredTy->getElementType()->isIntegerTy(1))
- Ops[i] = EmitSVEPredicateCast(Ops[i], getSVEType(TypeFlags));
+ Op = EmitSVEPredicateCast(Op, getSVEType(TypeFlags));
// Splat scalar operand to vector (intrinsics with _n infix)
if (TypeFlags.hasSplatOperand()) {
@@ -4936,10 +4936,10 @@ Value *CodeGenFunction::EmitAArch64SMEBuiltinExpr(unsigned BuiltinID,
}
// Predicates must match the main datatype.
- for (unsigned i = 0, e = Ops.size(); i != e; ++i)
- if (auto PredTy = dyn_cast<llvm::VectorType>(Ops[i]->getType()))
+ for (Value *&Op : Ops)
+ if (auto PredTy = dyn_cast<llvm::VectorType>(Op->getType()))
if (PredTy->getElementType()->isIntegerTy(1))
- Ops[i] = EmitSVEPredicateCast(Ops[i], getSVEType(TypeFlags));
+ Op = EmitSVEPredicateCast(Op, getSVEType(TypeFlags));
Function *F =
TypeFlags.isOverloadNone()
@@ -8036,8 +8036,8 @@ BuildVector(ArrayRef<llvm::Value*> Ops) {
// If this is a constant vector, create a ConstantVector.
if (AllConstants) {
SmallVector<llvm::Constant*, 16> CstOps;
- for (unsigned i = 0, e = Ops.size(); i != e; ++i)
- CstOps.push_back(cast<Constant>(Ops[i]));
+ for (llvm::Value *Op : Ops)
+ CstOps.push_back(cast<Constant>(Op));
return llvm::ConstantVector::get(CstOps);
}
diff --git a/clang/lib/CodeGen/Targets/X86.cpp b/clang/lib/CodeGen/Targets/X86.cpp
index b36a6e1396653..0f59caac2323e 100644
--- a/clang/lib/CodeGen/Targets/X86.cpp
+++ b/clang/lib/CodeGen/Targets/X86.cpp
@@ -1462,9 +1462,8 @@ class X86_64TargetCodeGenInfo : public TargetCodeGenInfo {
// defines varargs anyway.
if (fnType->getCallConv() == CC_C) {
bool HasAVXType = false;
- for (CallArgList::const_iterator
- it = args.begin(), ie = args.end(); it != ie; ++it) {
- if (getABIInfo<X86_64ABIInfo>().isPassedUsingAVXType(it->Ty)) {
+ for (const CallArg &arg : args) {
+ if (getABIInfo<X86_64ABIInfo>().isPassedUsingAVXType(arg.Ty)) {
HasAVXType = true;
break;
}
More information about the cfe-commits
mailing list