[llvm-branch-commits] [llvm] [mlir] [WIP][mlir][llvmir][OpenMP] Translate affinity clause in task construct to llvmir (PR #182223)
Tom Eccles via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Feb 19 09:11:04 PST 2026
================
@@ -11844,3 +11860,85 @@ void CanonicalLoopInfo::invalidate() {
Latch = nullptr;
Exit = nullptr;
}
+
+IteratorLoopNestScope::IteratorLoopNestScope(
+ llvm::IRBuilderBase &Builder, unsigned Dims,
+ llvm::ArrayRef<llvm::Value *> LowerBounds,
+ llvm::ArrayRef<llvm::Value *> UpperBounds,
+ llvm::ArrayRef<llvm::Value *> Steps)
+ : B(Builder), Ctx(Builder.getContext()), Dims(Dims),
+ LowerBounds(LowerBounds), UpperBounds(UpperBounds), Steps(Steps) {
+ Function *F = B.GetInsertBlock()->getParent();
+ IVs.assign(Dims, nullptr);
+ HdrBBs.resize(Dims);
+ BodyBBs.resize(Dims);
+ LatchBBs.resize(Dims);
+ ExitBBs.resize(Dims);
+
+ llvm::BasicBlock *PreBB = B.GetInsertBlock();
+
+ for (unsigned Dimension = 0; Dimension < Dims; ++Dimension) {
+ HdrBBs[Dimension] = llvm::BasicBlock::Create(Ctx, "omp.iter.hdr", F);
+ BodyBBs[Dimension] = llvm::BasicBlock::Create(Ctx, "omp.iter.body", F);
+ LatchBBs[Dimension] = llvm::BasicBlock::Create(Ctx, "omp.iter.latch", F);
+ ExitBBs[Dimension] = llvm::BasicBlock::Create(Ctx, "omp.iter.exit", F);
+ }
----------------
tblah wrote:
This feels a bit like it is reinventing `CanonicalLoopInfo` and related code (see `OMPIRBuilder.h`)
https://github.com/llvm/llvm-project/pull/182223
More information about the llvm-branch-commits
mailing list