Lines Matching defs:TfrI

235     bool predicate(MachineInstr &TfrI, bool Cond, std::set<Register> &UpdRegs);
955 bool HexagonExpandCondsets::predicate(MachineInstr &TfrI, bool Cond,
957 // TfrI - A2_tfr[tf] Instruction (not A2_tfrsi).
958 unsigned Opc = TfrI.getOpcode();
962 << ": " << TfrI);
964 MachineOperand &MD = TfrI.getOperand(0);
965 MachineOperand &MP = TfrI.getOperand(1);
966 MachineOperand &MS = TfrI.getOperand(2);
979 MachineInstr *DefI = getReachingDefForPred(RT, TfrI, PredR, Cond);
986 // DefI and the TfrI.
989 MachineBasicBlock::iterator DefIt = DefI, TfrIt = TfrI;
991 // Check if the predicate register is valid between DefI and TfrI.
1006 // as TfrI (Exec_Then), and also on the opposite one (Exec_Else).
1041 // RD = TfrI ..., RT
1044 // DefI and TfrI, we may not be able proceed with this transformation.
1045 // We can ignore a def that will not execute together with TfrI, and a
1047 // TfrI), we will not be able to move DefI down. If there is a use that
1048 // executed if TfrI's condition is false, then RT must be available
1054 // If the predicate register is defined between DefI and TfrI, the only
1055 // potential thing to do would be to move the DefI down to TfrI, and then
1057 // of the TfrI.
1058 // If the target register of the TfrI (RD) is not used or defined between
1059 // DefI and TfrI, consider moving TfrI up to DefI.
1060 bool CanUp = canMoveOver(TfrI, Defs, Uses);
1062 // The TfrI does not access memory, but DefI could. Check if it's safe
1063 // to move DefI down to TfrI.
1065 if (!canMoveMemTo(*DefI, TfrI, true))
1084 removeInstr(TfrI);