[flang-commits] [flang] [mlir] Reland "[flang][OpenMP] Fix lowering of LINEAR iteration variables (#183794)" (PR #188851)
via flang-commits
flang-commits at lists.llvm.org
Fri Mar 27 09:29:48 PDT 2026
================
@@ -277,17 +277,41 @@ class LinearClauseProcessor {
}
}
- // Rewrite all uses of the original variable in `BBName`
- // with the linear variable in-place
- void rewriteInPlace(llvm::IRBuilderBase &builder, const std::string &BBName,
+ // Rewrite all uses of the original variable, in the basic blocks whose names
+ // start with `prefix`, with the linear variable in-place.
+ void rewriteInPlace(llvm::IRBuilderBase &builder, llvm::BasicBlock *startBB,
+ llvm::BasicBlock *endBB, llvm::StringRef prefix,
size_t varIndex) {
- llvm::SmallVector<llvm::User *> users;
- for (llvm::User *user : linearOrigVal[varIndex]->users())
- users.push_back(user);
- for (auto *user : users) {
+ llvm::SmallVector<llvm::BasicBlock *, 32> worklist;
+ llvm::SmallPtrSet<llvm::BasicBlock *, 32> visited;
+ llvm::SmallPtrSet<llvm::BasicBlock *, 32> matchingBBs;
+
+ assert(startBB && endBB && "Invalid startBB/endBB");
----------------
NimishMishra wrote:
Thanks for this logic
https://github.com/llvm/llvm-project/pull/188851
More information about the flang-commits
mailing list