[llvm-branch-commits] [llvm] [mlir] [WIP][mlir][llvmir][OpenMP] Translate affinity clause in task construct to llvmir (PR #182223)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Feb 20 15:58:55 PST 2026


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff origin/main HEAD --extensions h,cpp -- llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp --diff_from_common_commit
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h b/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
index 77e97a448..a85b34eae 100644
--- a/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+++ b/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
@@ -3933,13 +3933,12 @@ public:
   getOrCreateInternalVariable(Type *Ty, const StringRef &Name,
                               std::optional<unsigned> AddressSpace = {});
 
-  using IteratorBodyGenTy =
-    llvm::function_ref<llvm::Error(InsertPointTy BodyIP, llvm::Value *LinearIV)>;
+  using IteratorBodyGenTy = llvm::function_ref<llvm::Error(
+      InsertPointTy BodyIP, llvm::Value *LinearIV)>;
 
-  LLVM_ABI InsertPointOrErrorTy createIteratorLoop(LocationDescription Loc,
-                                                  llvm::Value *TripCount,
-                                                  IteratorBodyGenTy BodyGen,
-                                                  llvm::StringRef Name = "iterator");
+  LLVM_ABI InsertPointOrErrorTy createIteratorLoop(
+      LocationDescription Loc, llvm::Value *TripCount,
+      IteratorBodyGenTy BodyGen, llvm::StringRef Name = "iterator");
 };
 
 /// Class to represented the control flow structure of an OpenMP canonical loop.
diff --git a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
index 15cd93b90..7c93bd8bb 100644
--- a/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+++ b/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
@@ -11544,19 +11544,21 @@ void OpenMPIRBuilder::loadOffloadInfoMetadata(vfs::FileSystem &VFS,
   loadOffloadInfoMetadata(*M.get());
 }
 
-OpenMPIRBuilder::InsertPointOrErrorTy
-OpenMPIRBuilder::createIteratorLoop(LocationDescription Loc, llvm::Value *TripCount,
-                                    IteratorBodyGenTy BodyGen, llvm::StringRef Name) {
+OpenMPIRBuilder::InsertPointOrErrorTy OpenMPIRBuilder::createIteratorLoop(
+    LocationDescription Loc, llvm::Value *TripCount, IteratorBodyGenTy BodyGen,
+    llvm::StringRef Name) {
   IRBuilderBase &B = Builder;
   B.restoreIP(Loc.IP);
 
   BasicBlock *CurBB = Builder.GetInsertBlock();
-  assert(CurBB && "expected a valid insertion block for creating an iterator loop");
+  assert(CurBB &&
+         "expected a valid insertion block for creating an iterator loop");
   Function *F = CurBB->getParent();
   LLVMContext &Ctx = F->getContext();
 
-  // If splitting at end() but CurBB has no terminator, make it well-formed first.
-  // This happens in some pipelines where blocks are still under construction.
+  // If splitting at end() but CurBB has no terminator, make it well-formed
+  // first. This happens in some pipelines where blocks are still under
+  // construction.
   if (B.GetInsertPoint() == CurBB->end() && !CurBB->getTerminator()) {
     BasicBlock *TmpCont = BasicBlock::Create(Ctx, "omp.it.tmp.cont", F);
     B.SetInsertPoint(CurBB);
@@ -11567,7 +11569,8 @@ OpenMPIRBuilder::createIteratorLoop(LocationDescription Loc, llvm::Value *TripCo
     B.SetInsertPoint(CurBB->end());
   }
 
-  BasicBlock *ContBB = CurBB->splitBasicBlock(Builder.GetInsertPoint(), "omp.it.cont");
+  BasicBlock *ContBB =
+      CurBB->splitBasicBlock(Builder.GetInsertPoint(), "omp.it.cont");
   // Remove the branch to contBB since we will branch to contBB after the loop
   CurBB->getTerminator()->eraseFromParent();
 
diff --git a/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
index 1cf040db0..d5469e3c7 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
@@ -2440,8 +2440,8 @@ buildTaskAffinityIteratorLoop(mlir::omp::IteratorsOp itersOp,
       llvm::Type::getInt64Ty(ctx), llvm::Type::getInt64Ty(ctx),
       llvm::Type::getInt32Ty(ctx));
 
-  auto *list = builder.CreateAlloca(kmpTaskAffinityInfoTy, iterInfo.getTotalTrips(),
-                                   "omp.affinity_list");
+  auto *list = builder.CreateAlloca(
+      kmpTaskAffinityInfoTy, iterInfo.getTotalTrips(), "omp.affinity_list");
 
   mlir::Region &itersRegion = itersOp.getRegion();
   mlir::Block &iteratorRegionBlock = itersRegion.front();
@@ -2466,8 +2466,7 @@ buildTaskAffinityIteratorLoop(mlir::omp::IteratorsOp itersOp,
       // physIV_d = lb_d + idx_d * step_d
       llvm::Value *physIV = builder.CreateAdd(
           iterInfo.getLowerBounds()[d],
-          builder.CreateMul(idx, iterInfo.getSteps()[d]),
-          "omp.it.phys_iv");
+          builder.CreateMul(idx, iterInfo.getSteps()[d]), "omp.it.phys_iv");
 
       moduleTranslation.mapValue(iteratorRegionBlock.getArgument(d), physIV);
     }
@@ -2483,13 +2482,13 @@ buildTaskAffinityIteratorLoop(mlir::omp::IteratorsOp itersOp,
     }
 
     // Extract affinity entry from omp.yield and store into list[linearIV].
-    auto yield = mlir::dyn_cast<mlir::omp::YieldOp>(
-        iteratorRegionBlock.getTerminator());
+    auto yield =
+        mlir::dyn_cast<mlir::omp::YieldOp>(iteratorRegionBlock.getTerminator());
     auto entryOp =
         yield.getResults()[0].getDefiningOp<mlir::omp::AffinityEntryOp>();
 
     llvm::Value *addr = moduleTranslation.lookupValue(entryOp.getAddr());
-    llvm::Value *len  = moduleTranslation.lookupValue(entryOp.getLen());
+    llvm::Value *len = moduleTranslation.lookupValue(entryOp.getLen());
 
     storeAffinityEntry(builder, list, linearIV, addr, len);
 
@@ -2507,8 +2506,9 @@ buildTaskAffinityIteratorLoop(mlir::omp::IteratorsOp itersOp,
 
   builder.restoreIP(*afterIP);
 
-  ad.Info  = list;
-  ad.Count = builder.CreateTrunc(iterInfo.getTotalTrips(), builder.getInt32Ty());
+  ad.Info = list;
+  ad.Count =
+      builder.CreateTrunc(iterInfo.getTotalTrips(), builder.getInt32Ty());
   return mlir::success();
 }
 

``````````

</details>


https://github.com/llvm/llvm-project/pull/182223


More information about the llvm-branch-commits mailing list