@@ -1329,9 +1329,8 @@ void RegAllocFastImpl::findAndSortDefOperandIndexes(const MachineInstr &MI) {
13291329  //  we assign these.
13301330  SmallVector<unsigned > RegClassDefCounts (TRI->getNumRegClasses (), 0 );
13311331
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 ());
13351334
13361335  llvm::sort (DefOperandIndexes, [&](unsigned  I0, unsigned  I1) {
13371336    const  MachineOperand &MO0 = MI.getOperand (I0);
@@ -1481,9 +1480,7 @@ void RegAllocFastImpl::allocateInstruction(MachineInstr &MI) {
14811480        //  Assign virtual register defs.
14821481        while  (ReArrangedImplicitOps) {
14831482          ReArrangedImplicitOps = false ;
1484-           for  (MachineOperand &MO : MI.operands ()) {
1485-             if  (!MO.isReg () || !MO.isDef ())
1486-               continue ;
1483+           for  (MachineOperand &MO : MI.all_defs ()) {
14871484            Register Reg = MO.getReg ();
14881485            if  (Reg.isVirtual ()) {
14891486              ReArrangedImplicitOps =
@@ -1499,10 +1496,7 @@ void RegAllocFastImpl::allocateInstruction(MachineInstr &MI) {
14991496    //  Free registers occupied by defs.
15001497    //  Iterate operands in reverse order, so we see the implicit super register
15011498    //  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 ())) {
15061500      Register Reg = MO.getReg ();
15071501
15081502      //  subreg defs don't free the full register. We left the subreg number
0 commit comments