Lines Matching refs:MI

184     bool isInvalidLoopOperation(const MachineInstr *MI,
196 bool isDead(const MachineInstr *MI,
200 void removeIfDead(MachineInstr *MI);
208 /// \brief Return true if MO and MI pair is visited only once. If visited
211 bool isLoopFeeder(MachineLoop *L, MachineBasicBlock *A, MachineInstr *MI,
947 bool HexagonHardwareLoops::isInvalidLoopOperation(const MachineInstr *MI,
952 if (MI->getDesc().isCall() && MI->getOpcode() != Hexagon::CALLv3nr)
956 for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
957 const MachineOperand &MO = MI->getOperand(i);
980 const MachineInstr *MI = &*MII;
981 if (isInvalidLoopOperation(MI, IsInnerHWLoop)) {
982 DEBUG(dbgs()<< "\nCannot convert to hw_loop due to:"; MI->dump(););
994 bool HexagonHardwareLoops::isDead(const MachineInstr *MI,
997 for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
998 const MachineOperand &MO = MI->getOperand(i);
1030 // If the phi node has a user that is not MI, bail.
1031 if (MI != UseMI)
1042 void HexagonHardwareLoops::removeIfDead(MachineInstr *MI) {
1046 if (isDead(MI, DeadPhis)) {
1047 DEBUG(dbgs() << "HW looping will remove: " << *MI);
1052 for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) {
1053 const MachineOperand &MO = MI->getOperand(i);
1063 if (UseMI == MI)
1070 MI->eraseFromParent();
1325 MachineInstr *MI,
1417 MachineInstr *MI = &*I;
1421 if (!TII->analyzeCompare(MI, CmpReg1, CmpReg2, CmpMask, CmpValue))
1426 if (TII->AnalyzeBranch(*MI->getParent(), TBB, FBB, Cond, false))
1429 Comparison::Kind Cmp = getComparisonKind(MI->getOpcode(), 0, 0, 0);