[Mlir-commits] [mlir] [MLIR][LLVMIR][NFC] Drop uses of BranchInst (PR #187304)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Mar 18 08:32:30 PDT 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
Author: Alexis Engelke (aengelke)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/187304.diff
3 Files Affected:
- (modified) mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp (+2-2)
- (modified) mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp (+1-1)
- (modified) mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp (+7-10)
``````````diff
diff --git a/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
index e60a682b42ea1..8c3680033b2b9 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
@@ -685,14 +685,14 @@ convertOperationImpl(Operation &opInst, llvm::IRBuilderBase &builder,
// Emit branches. We need to look up the remapped blocks and ignore the
// block arguments that were transformed into PHI nodes.
if (auto brOp = dyn_cast<LLVM::BrOp>(opInst)) {
- llvm::BranchInst *branch =
+ llvm::UncondBrInst *branch =
builder.CreateBr(moduleTranslation.lookupBlock(brOp.getSuccessor()));
moduleTranslation.mapBranch(&opInst, branch);
moduleTranslation.setLoopMetadata(&opInst, branch);
return success();
}
if (auto condbrOp = dyn_cast<LLVM::CondBrOp>(opInst)) {
- llvm::BranchInst *branch = builder.CreateCondBr(
+ llvm::CondBrInst *branch = builder.CreateCondBr(
moduleTranslation.lookupValue(condbrOp.getOperand(0)),
moduleTranslation.lookupBlock(condbrOp.getSuccessor(0)),
moduleTranslation.lookupBlock(condbrOp.getSuccessor(1)));
diff --git a/mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp
index 97c6b4e25542d..9bb6939043621 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/Dialect/OpenACC/OpenACCToLLVMIRTranslation.cpp
@@ -383,7 +383,7 @@ static LogicalResult convertDataOp(acc::DataOp &op,
auto afterDataRegion = builder.saveIP();
- llvm::BranchInst *sourceTerminator = builder.CreateBr(entryBlock);
+ llvm::UncondBrInst *sourceTerminator = builder.CreateBr(entryBlock);
builder.restoreIP(afterDataRegion);
llvm::BasicBlock *endDataBlock = llvm::BasicBlock::Create(
diff --git a/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
index 37b1a37c2e1a5..3449445816510 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
@@ -2130,7 +2130,7 @@ buildDependData(std::optional<ArrayAttr> dependKinds, OperandRange dependVars,
/// The terminator will need to be fixed to branch to the correct block to
/// cleanup the construct.
static void
-pushCancelFinalizationCB(SmallVectorImpl<llvm::BranchInst *> &cancelTerminators,
+pushCancelFinalizationCB(SmallVectorImpl<llvm::UncondBrInst *> &cancelTerminators,
llvm::IRBuilderBase &llvmBuilder,
llvm::OpenMPIRBuilder &ompBuilder, mlir::Operation *op,
llvm::omp::Directive cancelDirective) {
@@ -2160,16 +2160,13 @@ pushCancelFinalizationCB(SmallVectorImpl<llvm::BranchInst *> &cancelTerminators,
/// is immediately before the continuation block. Now this finalization has
/// been created we can fix the branch.
static void
-popCancelFinalizationCB(const ArrayRef<llvm::BranchInst *> cancelTerminators,
+popCancelFinalizationCB(const ArrayRef<llvm::UncondBrInst *> cancelTerminators,
llvm::OpenMPIRBuilder &ompBuilder,
const llvm::OpenMPIRBuilder::InsertPointTy &afterIP) {
ompBuilder.popFinalizationCB();
llvm::BasicBlock *constructFini = afterIP.getBlock()->getSinglePredecessor();
- for (llvm::BranchInst *cancelBranch : cancelTerminators) {
- assert(cancelBranch->getNumSuccessors() == 1 &&
- "cancel branch should have one target");
- cancelBranch->setSuccessor(0, constructFini);
- }
+ for (llvm::UncondBrInst *cancelBranch : cancelTerminators)
+ cancelBranch->setSuccessor(constructFini);
}
namespace {
@@ -2811,7 +2808,7 @@ convertOmpTaskOp(omp::TaskOp taskOp, llvm::IRBuilderBase &builder,
};
llvm::OpenMPIRBuilder &ompBuilder = *moduleTranslation.getOpenMPBuilder();
- SmallVector<llvm::BranchInst *> cancelTerminators;
+ SmallVector<llvm::UncondBrInst *> cancelTerminators;
// The directive to match here is OMPD_taskgroup because it is the taskgroup
// which is canceled. This is handled here because it is the task's cleanup
// block which should be branched to.
@@ -3197,7 +3194,7 @@ convertOmpTaskloopOp(Operation &opInst, llvm::IRBuilderBase &builder,
taskDupOrNull = taskDupCB;
llvm::OpenMPIRBuilder &ompBuilder = *moduleTranslation.getOpenMPBuilder();
- SmallVector<llvm::BranchInst *> cancelTerminators;
+ SmallVector<llvm::UncondBrInst *> cancelTerminators;
// The directive to match here is OMPD_taskgroup because it is the
// taskgroup which is canceled. This is handled here because it is the
// task's cleanup block which should be branched to. It doesn't depend upon
@@ -3365,7 +3362,7 @@ convertOmpWsloop(Operation &opInst, llvm::IRBuilderBase &builder,
? llvm::omp::WorksharingLoopType::DistributeForStaticLoop
: llvm::omp::WorksharingLoopType::ForStaticLoop;
- SmallVector<llvm::BranchInst *> cancelTerminators;
+ SmallVector<llvm::UncondBrInst *> cancelTerminators;
pushCancelFinalizationCB(cancelTerminators, builder, *ompBuilder, wsloopOp,
llvm::omp::Directive::OMPD_for);
``````````
</details>
https://github.com/llvm/llvm-project/pull/187304
More information about the Mlir-commits
mailing list