[llvm] 840b366 - CodeGen: Remove redundant arguments to defusechain_instr_iterator (#135023)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 9 09:24:32 PDT 2025
Author: Matt Arsenault
Date: 2025-04-09T18:24:28+02:00
New Revision: 840b366d47115ecf2f7034721c13576e6f14cd82
URL: https://github.com/llvm/llvm-project/commit/840b366d47115ecf2f7034721c13576e6f14cd82
DIFF: https://github.com/llvm/llvm-project/commit/840b366d47115ecf2f7034721c13576e6f14cd82.diff
LOG: CodeGen: Remove redundant arguments to defusechain_instr_iterator (#135023)
ByOperand must be false, this is implied by the iterator type.
The instr_iterator cases are a separate implementation from the single
operand defusechain_iterator.
Additionally ByInstr and ByBundle are mutually exclusive.
Added:
Modified:
llvm/include/llvm/CodeGen/MachineRegisterInfo.h
Removed:
################################################################################
diff --git a/llvm/include/llvm/CodeGen/MachineRegisterInfo.h b/llvm/include/llvm/CodeGen/MachineRegisterInfo.h
index aad876d87ccfb..1d4bcbb8cab9e 100644
--- a/llvm/include/llvm/CodeGen/MachineRegisterInfo.h
+++ b/llvm/include/llvm/CodeGen/MachineRegisterInfo.h
@@ -280,15 +280,13 @@ class MachineRegisterInfo {
template<bool Uses, bool Defs, bool SkipDebug,
bool ByOperand, bool ByInstr, bool ByBundle>
class defusechain_iterator;
- template<bool Uses, bool Defs, bool SkipDebug,
- bool ByOperand, bool ByInstr, bool ByBundle>
+ template <bool Uses, bool Defs, bool SkipDebug, bool ByInstr>
class defusechain_instr_iterator;
// Make it a friend so it can access getNextOperandForReg().
template<bool, bool, bool, bool, bool, bool>
friend class defusechain_iterator;
- template<bool, bool, bool, bool, bool, bool>
- friend class defusechain_instr_iterator;
+ template <bool, bool, bool, bool> friend class defusechain_instr_iterator;
/// reg_iterator/reg_begin/reg_end - Walk all defs and uses of the specified
/// register.
@@ -306,7 +304,7 @@ class MachineRegisterInfo {
/// reg_instr_iterator/reg_instr_begin/reg_instr_end - Walk all defs and uses
/// of the specified register, stepping by MachineInstr.
using reg_instr_iterator =
- defusechain_instr_iterator<true, true, false, false, true, false>;
+ defusechain_instr_iterator<true, true, false, /*ByInstr=*/true>;
reg_instr_iterator reg_instr_begin(Register RegNo) const {
return reg_instr_iterator(getRegUseDefListHead(RegNo));
}
@@ -322,7 +320,7 @@ class MachineRegisterInfo {
/// reg_bundle_iterator/reg_bundle_begin/reg_bundle_end - Walk all defs and uses
/// of the specified register, stepping by bundle.
using reg_bundle_iterator =
- defusechain_instr_iterator<true, true, false, false, false, true>;
+ defusechain_instr_iterator<true, true, false, /*ByInstr=*/false>;
reg_bundle_iterator reg_bundle_begin(Register RegNo) const {
return reg_bundle_iterator(getRegUseDefListHead(RegNo));
}
@@ -358,7 +356,7 @@ class MachineRegisterInfo {
/// all defs and uses of the specified register, stepping by MachineInstr,
/// skipping those marked as Debug.
using reg_instr_nodbg_iterator =
- defusechain_instr_iterator<true, true, true, false, true, false>;
+ defusechain_instr_iterator<true, true, true, /*ByInstr=*/true>;
reg_instr_nodbg_iterator reg_instr_nodbg_begin(Register RegNo) const {
return reg_instr_nodbg_iterator(getRegUseDefListHead(RegNo));
}
@@ -375,7 +373,7 @@ class MachineRegisterInfo {
/// all defs and uses of the specified register, stepping by bundle,
/// skipping those marked as Debug.
using reg_bundle_nodbg_iterator =
- defusechain_instr_iterator<true, true, true, false, false, true>;
+ defusechain_instr_iterator<true, true, true, /*ByInstr=*/false>;
reg_bundle_nodbg_iterator reg_bundle_nodbg_begin(Register RegNo) const {
return reg_bundle_nodbg_iterator(getRegUseDefListHead(RegNo));
}
@@ -409,7 +407,7 @@ class MachineRegisterInfo {
/// def_instr_iterator/def_instr_begin/def_instr_end - Walk all defs of the
/// specified register, stepping by MachineInst.
using def_instr_iterator =
- defusechain_instr_iterator<false, true, false, false, true, false>;
+ defusechain_instr_iterator<false, true, false, /*ByInstr=*/true>;
def_instr_iterator def_instr_begin(Register RegNo) const {
return def_instr_iterator(getRegUseDefListHead(RegNo));
}
@@ -425,7 +423,7 @@ class MachineRegisterInfo {
/// def_bundle_iterator/def_bundle_begin/def_bundle_end - Walk all defs of the
/// specified register, stepping by bundle.
using def_bundle_iterator =
- defusechain_instr_iterator<false, true, false, false, false, true>;
+ defusechain_instr_iterator<false, true, false, /*ByInstr=*/false>;
def_bundle_iterator def_bundle_begin(Register RegNo) const {
return def_bundle_iterator(getRegUseDefListHead(RegNo));
}
@@ -489,7 +487,7 @@ class MachineRegisterInfo {
/// use_instr_iterator/use_instr_begin/use_instr_end - Walk all uses of the
/// specified register, stepping by MachineInstr.
using use_instr_iterator =
- defusechain_instr_iterator<true, false, false, false, true, false>;
+ defusechain_instr_iterator<true, false, false, /*ByInstr=*/true>;
use_instr_iterator use_instr_begin(Register RegNo) const {
return use_instr_iterator(getRegUseDefListHead(RegNo));
}
@@ -505,7 +503,7 @@ class MachineRegisterInfo {
/// use_bundle_iterator/use_bundle_begin/use_bundle_end - Walk all uses of the
/// specified register, stepping by bundle.
using use_bundle_iterator =
- defusechain_instr_iterator<true, false, false, false, false, true>;
+ defusechain_instr_iterator<true, false, false, /*ByInstr=*/false>;
use_bundle_iterator use_bundle_begin(Register RegNo) const {
return use_bundle_iterator(getRegUseDefListHead(RegNo));
}
@@ -547,7 +545,7 @@ class MachineRegisterInfo {
/// all uses of the specified register, stepping by MachineInstr, skipping
/// those marked as Debug.
using use_instr_nodbg_iterator =
- defusechain_instr_iterator<true, false, true, false, true, false>;
+ defusechain_instr_iterator<true, false, true, /*ByInstr=*/true>;
use_instr_nodbg_iterator use_instr_nodbg_begin(Register RegNo) const {
return use_instr_nodbg_iterator(getRegUseDefListHead(RegNo));
}
@@ -564,7 +562,7 @@ class MachineRegisterInfo {
/// all uses of the specified register, stepping by bundle, skipping
/// those marked as Debug.
using use_bundle_nodbg_iterator =
- defusechain_instr_iterator<true, false, true, false, false, true>;
+ defusechain_instr_iterator<true, false, true, /*ByInstr=*/false>;
use_bundle_nodbg_iterator use_bundle_nodbg_begin(Register RegNo) const {
return use_bundle_nodbg_iterator(getRegUseDefListHead(RegNo));
}
@@ -1151,8 +1149,7 @@ class MachineRegisterInfo {
/// returns defs. If neither are true then you are silly and it always
/// returns end(). If SkipDebug is true it skips uses marked Debug
/// when incrementing.
- template <bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand,
- bool ByInstr, bool ByBundle>
+ template <bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByInstr>
class defusechain_instr_iterator {
friend class MachineRegisterInfo;
@@ -1210,14 +1207,12 @@ class MachineRegisterInfo {
// Iterator traversal: forward iteration only
defusechain_instr_iterator &operator++() { // Preincrement
assert(Op && "Cannot increment end iterator!");
- if (ByOperand)
- advance();
- else if (ByInstr) {
+ if (ByInstr) {
MachineInstr *P = Op->getParent();
do {
advance();
} while (Op && Op->getParent() == P);
- } else if (ByBundle) {
+ } else {
MachineBasicBlock::instr_iterator P =
getBundleStart(Op->getParent()->getIterator());
do {
@@ -1234,7 +1229,7 @@ class MachineRegisterInfo {
// Retrieve a reference to the current operand.
MachineInstr &operator*() const {
assert(Op && "Cannot dereference end iterator!");
- if (ByBundle)
+ if (!ByInstr)
return *getBundleStart(Op->getParent()->getIterator());
return *Op->getParent();
}
More information about the llvm-commits
mailing list