[llvm] [IRBuilder] Remove FPMathTag and OpBundles constructor arguments (PR #228013)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 1 02:47:50 PDT 2026
https://github.com/nikic created https://github.com/llvm/llvm-project/pull/228013
Remove the FPMathTag and OpBundles IRBuilder constructor arguments, which are never used in tree. The setDefaultFPMathTag() and setDefaultOperandBundles() APIs can be used instead.
>From 0792bd2801e6e8d0b7939dad822fb84b416bf0f5 Mon Sep 17 00:00:00 2001
From: Nikita Popov <npopov at redhat.com>
Date: Thu, 1 Oct 2026 10:59:56 +0200
Subject: [PATCH 1/2] [IRBuilder] Remove OpBundles ctor args
---
llvm/include/llvm/IR/IRBuilder.h | 68 +++++++++++++-------------------
1 file changed, 28 insertions(+), 40 deletions(-)
diff --git a/llvm/include/llvm/IR/IRBuilder.h b/llvm/include/llvm/IR/IRBuilder.h
index 359d491adeebd..ff87422d6b9e2 100644
--- a/llvm/include/llvm/IR/IRBuilder.h
+++ b/llvm/include/llvm/IR/IRBuilder.h
@@ -134,10 +134,9 @@ class IRBuilderBase {
public:
IRBuilderBase(LLVMContext &context, const IRBuilderFolder &Folder,
- const IRBuilderDefaultInserter &Inserter, MDNode *FPMathTag,
- ArrayRef<OperandBundleDef> OpBundles)
+ const IRBuilderDefaultInserter &Inserter, MDNode *FPMathTag)
: Context(context), Folder(Folder), Inserter(Inserter),
- DefaultFPMathTag(FPMathTag), DefaultOperandBundles(OpBundles) {
+ DefaultFPMathTag(FPMathTag) {
ClearInsertionPoint();
}
@@ -2926,57 +2925,49 @@ class IRBuilder : public IRBuilderBase {
public:
IRBuilder(LLVMContext &C, FolderTy Folder, InserterTy Inserter,
- MDNode *FPMathTag = nullptr,
- ArrayRef<OperandBundleDef> OpBundles = {})
- : IRBuilderBase(C, this->Folder, this->Inserter, FPMathTag, OpBundles),
+ MDNode *FPMathTag = nullptr)
+ : IRBuilderBase(C, this->Folder, this->Inserter, FPMathTag),
Folder(Folder), Inserter(Inserter) {}
- IRBuilder(LLVMContext &C, FolderTy Folder, MDNode *FPMathTag = nullptr,
- ArrayRef<OperandBundleDef> OpBundles = {})
- : IRBuilderBase(C, this->Folder, this->Inserter, FPMathTag, OpBundles),
+ IRBuilder(LLVMContext &C, FolderTy Folder, MDNode *FPMathTag = nullptr)
+ : IRBuilderBase(C, this->Folder, this->Inserter, FPMathTag),
Folder(Folder) {}
- explicit IRBuilder(LLVMContext &C, MDNode *FPMathTag = nullptr,
- ArrayRef<OperandBundleDef> OpBundles = {})
- : IRBuilderBase(C, this->Folder, this->Inserter, FPMathTag, OpBundles) {}
+ explicit IRBuilder(LLVMContext &C, MDNode *FPMathTag = nullptr)
+ : IRBuilderBase(C, this->Folder, this->Inserter, FPMathTag) {}
explicit IRBuilder(BasicBlock *TheBB, FolderTy Folder,
- MDNode *FPMathTag = nullptr,
- ArrayRef<OperandBundleDef> OpBundles = {})
+ MDNode *FPMathTag = nullptr)
: IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter,
- FPMathTag, OpBundles),
+ FPMathTag),
Folder(Folder) {
SetInsertPoint(TheBB);
}
- explicit IRBuilder(BasicBlock *TheBB, MDNode *FPMathTag = nullptr,
- ArrayRef<OperandBundleDef> OpBundles = {})
+ explicit IRBuilder(BasicBlock *TheBB, MDNode *FPMathTag = nullptr)
: IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter,
- FPMathTag, OpBundles) {
+ FPMathTag) {
SetInsertPoint(TheBB);
}
- explicit IRBuilder(Instruction *IP, MDNode *FPMathTag = nullptr,
- ArrayRef<OperandBundleDef> OpBundles = {})
- : IRBuilderBase(IP->getContext(), this->Folder, this->Inserter, FPMathTag,
- OpBundles) {
+ explicit IRBuilder(Instruction *IP, MDNode *FPMathTag = nullptr)
+ : IRBuilderBase(IP->getContext(), this->Folder, this->Inserter,
+ FPMathTag) {
SetInsertPoint(IP);
}
IRBuilder(BasicBlock *TheBB, BasicBlock::iterator IP, FolderTy Folder,
- MDNode *FPMathTag = nullptr,
- ArrayRef<OperandBundleDef> OpBundles = {})
+ MDNode *FPMathTag = nullptr)
: IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter,
- FPMathTag, OpBundles),
+ FPMathTag),
Folder(Folder) {
SetInsertPoint(TheBB, IP);
}
IRBuilder(BasicBlock *TheBB, BasicBlock::iterator IP,
- MDNode *FPMathTag = nullptr,
- ArrayRef<OperandBundleDef> OpBundles = {})
+ MDNode *FPMathTag = nullptr)
: IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter,
- FPMathTag, OpBundles) {
+ FPMathTag) {
SetInsertPoint(TheBB, IP);
}
@@ -2989,20 +2980,17 @@ class IRBuilder : public IRBuilderBase {
};
template <typename FolderTy, typename InserterTy>
-IRBuilder(LLVMContext &, FolderTy, InserterTy, MDNode *,
- ArrayRef<OperandBundleDef>) -> IRBuilder<FolderTy, InserterTy>;
-IRBuilder(LLVMContext &, MDNode *, ArrayRef<OperandBundleDef>) -> IRBuilder<>;
+IRBuilder(LLVMContext &, FolderTy, InserterTy, MDNode *)
+ -> IRBuilder<FolderTy, InserterTy>;
+IRBuilder(LLVMContext &, MDNode *) -> IRBuilder<>;
template <typename FolderTy>
-IRBuilder(BasicBlock *, FolderTy, MDNode *, ArrayRef<OperandBundleDef>)
- -> IRBuilder<FolderTy>;
-IRBuilder(BasicBlock *, MDNode *, ArrayRef<OperandBundleDef>) -> IRBuilder<>;
-IRBuilder(Instruction *, MDNode *, ArrayRef<OperandBundleDef>) -> IRBuilder<>;
+IRBuilder(BasicBlock *, FolderTy, MDNode *) -> IRBuilder<FolderTy>;
+IRBuilder(BasicBlock *, MDNode *) -> IRBuilder<>;
+IRBuilder(Instruction *, MDNode *) -> IRBuilder<>;
template <typename FolderTy>
-IRBuilder(BasicBlock *, BasicBlock::iterator, FolderTy, MDNode *,
- ArrayRef<OperandBundleDef>) -> IRBuilder<FolderTy>;
-IRBuilder(BasicBlock *, BasicBlock::iterator, MDNode *,
- ArrayRef<OperandBundleDef>) -> IRBuilder<>;
-
+IRBuilder(BasicBlock *, BasicBlock::iterator, FolderTy, MDNode *)
+ -> IRBuilder<FolderTy>;
+IRBuilder(BasicBlock *, BasicBlock::iterator, MDNode *) -> IRBuilder<>;
// Create wrappers for C Binding types (see CBindingWrapping.h).
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(IRBuilder<>, LLVMBuilderRef)
>From 15a4e506614ed8c702b425aab0b7a5ceae9acfa7 Mon Sep 17 00:00:00 2001
From: Nikita Popov <npopov at redhat.com>
Date: Thu, 1 Oct 2026 11:39:19 +0200
Subject: [PATCH 2/2] [IRBuilder] Remove FPMathTag ctor args
---
llvm/include/llvm/IR/IRBuilder.h | 72 +++++++++++++-------------------
1 file changed, 30 insertions(+), 42 deletions(-)
diff --git a/llvm/include/llvm/IR/IRBuilder.h b/llvm/include/llvm/IR/IRBuilder.h
index ff87422d6b9e2..aba9e8faa919d 100644
--- a/llvm/include/llvm/IR/IRBuilder.h
+++ b/llvm/include/llvm/IR/IRBuilder.h
@@ -123,7 +123,7 @@ class IRBuilderBase {
const IRBuilderFolder &Folder;
const IRBuilderDefaultInserter &Inserter;
- MDNode *DefaultFPMathTag;
+ MDNode *DefaultFPMathTag = nullptr;
FastMathFlags FMF;
bool IsFPConstrained = false;
@@ -134,9 +134,8 @@ class IRBuilderBase {
public:
IRBuilderBase(LLVMContext &context, const IRBuilderFolder &Folder,
- const IRBuilderDefaultInserter &Inserter, MDNode *FPMathTag)
- : Context(context), Folder(Folder), Inserter(Inserter),
- DefaultFPMathTag(FPMathTag) {
+ const IRBuilderDefaultInserter &Inserter)
+ : Context(context), Folder(Folder), Inserter(Inserter) {
ClearInsertionPoint();
}
@@ -2924,50 +2923,40 @@ class IRBuilder : public IRBuilderBase {
InserterTy Inserter;
public:
- IRBuilder(LLVMContext &C, FolderTy Folder, InserterTy Inserter,
- MDNode *FPMathTag = nullptr)
- : IRBuilderBase(C, this->Folder, this->Inserter, FPMathTag),
- Folder(Folder), Inserter(Inserter) {}
-
- IRBuilder(LLVMContext &C, FolderTy Folder, MDNode *FPMathTag = nullptr)
- : IRBuilderBase(C, this->Folder, this->Inserter, FPMathTag),
- Folder(Folder) {}
-
- explicit IRBuilder(LLVMContext &C, MDNode *FPMathTag = nullptr)
- : IRBuilderBase(C, this->Folder, this->Inserter, FPMathTag) {}
-
- explicit IRBuilder(BasicBlock *TheBB, FolderTy Folder,
- MDNode *FPMathTag = nullptr)
- : IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter,
- FPMathTag),
+ IRBuilder(LLVMContext &C, FolderTy Folder, InserterTy Inserter)
+ : IRBuilderBase(C, this->Folder, this->Inserter), Folder(Folder),
+ Inserter(Inserter) {}
+
+ IRBuilder(LLVMContext &C, FolderTy Folder)
+ : IRBuilderBase(C, this->Folder, this->Inserter), Folder(Folder) {}
+
+ explicit IRBuilder(LLVMContext &C)
+ : IRBuilderBase(C, this->Folder, this->Inserter) {}
+
+ explicit IRBuilder(BasicBlock *TheBB, FolderTy Folder)
+ : IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter),
Folder(Folder) {
SetInsertPoint(TheBB);
}
- explicit IRBuilder(BasicBlock *TheBB, MDNode *FPMathTag = nullptr)
- : IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter,
- FPMathTag) {
+ explicit IRBuilder(BasicBlock *TheBB)
+ : IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter) {
SetInsertPoint(TheBB);
}
- explicit IRBuilder(Instruction *IP, MDNode *FPMathTag = nullptr)
- : IRBuilderBase(IP->getContext(), this->Folder, this->Inserter,
- FPMathTag) {
+ explicit IRBuilder(Instruction *IP)
+ : IRBuilderBase(IP->getContext(), this->Folder, this->Inserter) {
SetInsertPoint(IP);
}
- IRBuilder(BasicBlock *TheBB, BasicBlock::iterator IP, FolderTy Folder,
- MDNode *FPMathTag = nullptr)
- : IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter,
- FPMathTag),
+ IRBuilder(BasicBlock *TheBB, BasicBlock::iterator IP, FolderTy Folder)
+ : IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter),
Folder(Folder) {
SetInsertPoint(TheBB, IP);
}
- IRBuilder(BasicBlock *TheBB, BasicBlock::iterator IP,
- MDNode *FPMathTag = nullptr)
- : IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter,
- FPMathTag) {
+ IRBuilder(BasicBlock *TheBB, BasicBlock::iterator IP)
+ : IRBuilderBase(TheBB->getContext(), this->Folder, this->Inserter) {
SetInsertPoint(TheBB, IP);
}
@@ -2980,17 +2969,16 @@ class IRBuilder : public IRBuilderBase {
};
template <typename FolderTy, typename InserterTy>
-IRBuilder(LLVMContext &, FolderTy, InserterTy, MDNode *)
+IRBuilder(LLVMContext &, FolderTy, InserterTy)
-> IRBuilder<FolderTy, InserterTy>;
-IRBuilder(LLVMContext &, MDNode *) -> IRBuilder<>;
+IRBuilder(LLVMContext &) -> IRBuilder<>;
template <typename FolderTy>
-IRBuilder(BasicBlock *, FolderTy, MDNode *) -> IRBuilder<FolderTy>;
-IRBuilder(BasicBlock *, MDNode *) -> IRBuilder<>;
-IRBuilder(Instruction *, MDNode *) -> IRBuilder<>;
+IRBuilder(BasicBlock *, FolderTy) -> IRBuilder<FolderTy>;
+IRBuilder(BasicBlock *) -> IRBuilder<>;
+IRBuilder(Instruction *) -> IRBuilder<>;
template <typename FolderTy>
-IRBuilder(BasicBlock *, BasicBlock::iterator, FolderTy, MDNode *)
- -> IRBuilder<FolderTy>;
-IRBuilder(BasicBlock *, BasicBlock::iterator, MDNode *) -> IRBuilder<>;
+IRBuilder(BasicBlock *, BasicBlock::iterator, FolderTy) -> IRBuilder<FolderTy>;
+IRBuilder(BasicBlock *, BasicBlock::iterator) -> IRBuilder<>;
// Create wrappers for C Binding types (see CBindingWrapping.h).
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(IRBuilder<>, LLVMBuilderRef)
More information about the llvm-commits
mailing list