[llvm] [AMDGPU] Use reverse iteration in CodeGenPrepare (PR #145484)
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 29 01:27:57 PDT 2025
================
@@ -281,28 +284,18 @@ bool AMDGPUCodeGenPrepareImpl::run() {
BreakPhiNodesCache.clear();
bool MadeChange = false;
- Function::iterator NextBB;
- for (Function::iterator FI = F.begin(), FE = F.end(); FI != FE; FI = NextBB) {
- BasicBlock *BB = &*FI;
- NextBB = std::next(FI);
-
- BasicBlock::iterator Next;
- for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E;
- I = Next) {
- Next = std::next(I);
-
- MadeChange |= visit(*I);
-
- if (Next != E) { // Control flow changed
- BasicBlock *NextInstBB = Next->getParent();
- if (NextInstBB != BB) {
- BB = NextInstBB;
- E = BB->end();
- FE = F.end();
- }
- }
+ for (BasicBlock &BB : reverse(F)) {
+ for (Instruction &I : make_early_inc_range(reverse(BB))) {
----------------
jayfoad wrote:
Do you still need `make_early_inc_range`?
https://github.com/llvm/llvm-project/pull/145484
More information about the llvm-commits
mailing list