@@ -277,21 +277,18 @@ class MachineRegisterInfo {
277
277
// / reg_begin/reg_end - Provide iteration support to walk over all definitions
278
278
// / and uses of a register within the MachineFunction that corresponds to this
279
279
// / MachineRegisterInfo object.
280
- template <bool Uses, bool Defs, bool SkipDebug,
281
- bool ByOperand, bool ByInstr, bool ByBundle>
280
+ template <bool Uses, bool Defs, bool SkipDebug, bool ByOperand, bool ByInstr>
282
281
class defusechain_iterator ;
283
282
template <bool Uses, bool Defs, bool SkipDebug, bool ByInstr>
284
283
class defusechain_instr_iterator ;
285
284
286
285
// Make it a friend so it can access getNextOperandForReg().
287
- template <bool , bool , bool , bool , bool , bool >
288
- friend class defusechain_iterator ;
286
+ template <bool , bool , bool , bool , bool > friend class defusechain_iterator ;
289
287
template <bool , bool , bool , bool > friend class defusechain_instr_iterator ;
290
288
291
289
// / reg_iterator/reg_begin/reg_end - Walk all defs and uses of the specified
292
290
// / register.
293
- using reg_iterator =
294
- defusechain_iterator<true , true , false , true , false , false >;
291
+ using reg_iterator = defusechain_iterator<true , true , false , true , false >;
295
292
reg_iterator reg_begin (Register RegNo) const {
296
293
return reg_iterator (getRegUseDefListHead (RegNo));
297
294
}
@@ -339,7 +336,7 @@ class MachineRegisterInfo {
339
336
// / reg_nodbg_iterator/reg_nodbg_begin/reg_nodbg_end - Walk all defs and uses
340
337
// / of the specified register, skipping those marked as Debug.
341
338
using reg_nodbg_iterator =
342
- defusechain_iterator<true , true , true , true , false , false >;
339
+ defusechain_iterator<true , true , true , true , false >;
343
340
reg_nodbg_iterator reg_nodbg_begin (Register RegNo) const {
344
341
return reg_nodbg_iterator (getRegUseDefListHead (RegNo));
345
342
}
@@ -393,8 +390,7 @@ class MachineRegisterInfo {
393
390
}
394
391
395
392
// / def_iterator/def_begin/def_end - Walk all defs of the specified register.
396
- using def_iterator =
397
- defusechain_iterator<false , true , false , true , false , false >;
393
+ using def_iterator = defusechain_iterator<false , true , false , true , false >;
398
394
def_iterator def_begin (Register RegNo) const {
399
395
return def_iterator (getRegUseDefListHead (RegNo));
400
396
}
@@ -473,8 +469,7 @@ class MachineRegisterInfo {
473
469
}
474
470
475
471
// / use_iterator/use_begin/use_end - Walk all uses of the specified register.
476
- using use_iterator =
477
- defusechain_iterator<true , false , false , true , false , false >;
472
+ using use_iterator = defusechain_iterator<true , false , false , true , false >;
478
473
use_iterator use_begin (Register RegNo) const {
479
474
return use_iterator (getRegUseDefListHead (RegNo));
480
475
}
@@ -528,7 +523,7 @@ class MachineRegisterInfo {
528
523
// / use_nodbg_iterator/use_nodbg_begin/use_nodbg_end - Walk all uses of the
529
524
// / specified register, skipping those marked as Debug.
530
525
using use_nodbg_iterator =
531
- defusechain_iterator<true , false , true , true , false , false >;
526
+ defusechain_iterator<true , false , true , true , false >;
532
527
use_nodbg_iterator use_nodbg_begin (Register RegNo) const {
533
528
return use_nodbg_iterator (getRegUseDefListHead (RegNo));
534
529
}
@@ -1045,9 +1040,11 @@ class MachineRegisterInfo {
1045
1040
// / returns end(). If SkipDebug is true it skips uses marked Debug
1046
1041
// / when incrementing.
1047
1042
template <bool ReturnUses, bool ReturnDefs, bool SkipDebug, bool ByOperand,
1048
- bool ByInstr, bool ByBundle >
1043
+ bool ByInstr>
1049
1044
class defusechain_iterator {
1050
1045
friend class MachineRegisterInfo ;
1046
+ static_assert (!ByOperand || !ByInstr,
1047
+ " ByOperand and ByInstr are mutually exclusive" );
1051
1048
1052
1049
public:
1053
1050
using iterator_category = std::forward_iterator_tag;
@@ -1110,7 +1107,7 @@ class MachineRegisterInfo {
1110
1107
do {
1111
1108
advance ();
1112
1109
} while (Op && Op->getParent () == P);
1113
- } else if (ByBundle) {
1110
+ } else {
1114
1111
MachineBasicBlock::instr_iterator P =
1115
1112
getBundleStart (Op->getParent ()->getIterator ());
1116
1113
do {
0 commit comments