[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