@@ -1329,9 +1329,8 @@ void RegAllocFastImpl::findAndSortDefOperandIndexes(const MachineInstr &MI) {
1329
1329
// we assign these.
1330
1330
SmallVector<unsigned > RegClassDefCounts (TRI->getNumRegClasses (), 0 );
1331
1331
1332
- for (const MachineOperand &MO : MI.operands ())
1333
- if (MO.isReg () && MO.isDef ())
1334
- addRegClassDefCounts (RegClassDefCounts, MO.getReg ());
1332
+ for (const MachineOperand &MO : MI.all_defs ())
1333
+ addRegClassDefCounts (RegClassDefCounts, MO.getReg ());
1335
1334
1336
1335
llvm::sort (DefOperandIndexes, [&](unsigned I0, unsigned I1) {
1337
1336
const MachineOperand &MO0 = MI.getOperand (I0);
@@ -1481,9 +1480,7 @@ void RegAllocFastImpl::allocateInstruction(MachineInstr &MI) {
1481
1480
// Assign virtual register defs.
1482
1481
while (ReArrangedImplicitOps) {
1483
1482
ReArrangedImplicitOps = false ;
1484
- for (MachineOperand &MO : MI.operands ()) {
1485
- if (!MO.isReg () || !MO.isDef ())
1486
- continue ;
1483
+ for (MachineOperand &MO : MI.all_defs ()) {
1487
1484
Register Reg = MO.getReg ();
1488
1485
if (Reg.isVirtual ()) {
1489
1486
ReArrangedImplicitOps =
@@ -1499,10 +1496,7 @@ void RegAllocFastImpl::allocateInstruction(MachineInstr &MI) {
1499
1496
// Free registers occupied by defs.
1500
1497
// Iterate operands in reverse order, so we see the implicit super register
1501
1498
// defs first (we added them earlier in case of <def,read-undef>).
1502
- for (MachineOperand &MO : reverse (MI.operands ())) {
1503
- if (!MO.isReg () || !MO.isDef ())
1504
- continue ;
1505
-
1499
+ for (MachineOperand &MO : reverse (MI.all_defs ())) {
1506
1500
Register Reg = MO.getReg ();
1507
1501
1508
1502
// subreg defs don't free the full register. We left the subreg number
0 commit comments