Home | History | Annotate | Download | only in Hexagon

Lines Matching refs:TfrI

173     bool predicate(MachineInstr *TfrI, bool Cond);
697 MachineInstr *TfrI = BuildMI(B, At, DL, HII->get(Opc))
702 TfrI->clearKillInfo();
703 DEBUG(dbgs() << "created an initial copy: " << *TfrI);
704 return TfrI;
968 bool HexagonExpandCondsets::predicate(MachineInstr *TfrI, bool Cond) {
969 // TfrI - A2_tfr[tf] Instruction (not A2_tfrsi).
970 unsigned Opc = TfrI->getOpcode();
974 << ": " << *TfrI);
976 MachineOperand &MD = TfrI->getOperand(0);
977 MachineOperand &MP = TfrI->getOperand(1);
978 MachineOperand &MS = TfrI->getOperand(2);
987 MachineInstr *DefI = getReachingDefForPred(RT, TfrI, PredR, Cond);
994 // DefI and the TfrI.
997 MachineBasicBlock::iterator DefIt = DefI, TfrIt = TfrI;
999 // Check if the predicate register is valid between DefI and TfrI.
1015 // as TfrI (Exec_Then), and also on the opposite one (Exec_Else).
1042 // RD = TfrI ..., RT
1045 // DefI and TfrI, we may not be able proceed with this transformation.
1046 // We can ignore a def that will not execute together with TfrI, and a
1048 // TfrI), we will not be able to move DefI down. If there is a use that
1049 // executed if TfrI's condition is false, then RT must be available
1055 // If the predicate register is defined between DefI and TfrI, the only
1056 // potential thing to do would be to move the DefI down to TfrI, and then
1058 // of the TfrI.
1059 // If the target register of the TfrI (RD) is not used or defined between
1060 // DefI and TfrI, consider moving TfrI up to DefI.
1061 bool CanUp = canMoveOver(TfrI, Defs, Uses);
1063 // The TfrI does not access memory, but DefI could. Check if it's safe
1064 // to move DefI down to TfrI.
1066 if (!canMoveMemTo(DefI, TfrI, true))
1084 removeInstrFromLiveness(TfrI);