Lines Matching defs:UseMI

92   bool xformUseMI(MachineInstr *TfrMI, MachineInstr *UseMI,
96 bool updateAddUses(MachineInstr *AddMI, MachineInstr *UseMI);
189 MachineInstr &UseMI = *NodeAddr<StmtNode *>(IA).Addr->getCode();
193 MI.getParent() != UseMI.getParent())
196 const MCInstrDesc &UseMID = UseMI.getDesc();
198 HII->getAddrMode(UseMI) != HexagonII::BaseImmOffset ||
199 getBaseWithLongOffset(UseMI) < 0)
203 if (UseMID.mayStore() && UseMI.getOperand(2).isReg() &&
204 UseMI.getOperand(2).getReg() == MI.getOperand(0).getReg())
207 for (auto &Mo : UseMI.operands())
322 MachineInstr *UseMI = NodeAddr<StmtNode *>(IA).Addr->getCode();
326 MI->getParent() != UseMI->getParent())
472 MachineInstr *UseMI = OwnerN.Addr->getCode();
473 LLVM_DEBUG(dbgs() << "\t\t[MI <BB#" << UseMI->getParent()->getNumber()
474 << ">]: " << *UseMI << "\n");
475 Changed |= updateAddUses(AddMI, UseMI);
491 MachineInstr *UseMI) {
496 MachineOperand &BaseOp = UseMI->getOperand(getBaseOpPosition(UseMI));
497 MachineOperand &OffsetOp = UseMI->getOperand(getOffsetOpPosition(UseMI));
699 MachineInstr *UseMI = UseIA.Addr->getCode();
700 LLVM_DEBUG(dbgs() << "[MI <" << printMBBReference(*UseMI->getParent())
701 << ">]: " << *UseMI << "\n");
702 const MCInstrDesc &UseMID = UseMI->getDesc();
703 assert(HII->getAddrMode(*UseMI) == HexagonII::BaseImmOffset);
705 auto UsePos = MachineBasicBlock::iterator(UseMI);
707 short NewOpCode = getBaseWithLongOffset(*UseMI);
711 unsigned OpEnd = UseMI->getNumOperands();
713 MachineBasicBlock *BB = UseMI->getParent();
715 BuildMI(*BB, InsertPt, UseMI->getDebugLoc(), HII->get(NewOpCode));
718 MIB.add(UseMI->getOperand(0));
722 MIB.addGlobalAddress(GV, UseMI->getOperand(2).getImm()+ImmOp.getOffset(),
729 MIB.addGlobalAddress(GV, UseMI->getOperand(1).getImm()+ImmOp.getOffset(),
731 MIB.add(UseMI->getOperand(2));
737 MIB.add(UseMI->getOperand(i));
739 Deleted.insert(UseMI);
745 bool HexagonOptAddrMode::xformUseMI(MachineInstr *TfrMI, MachineInstr *UseMI,
749 const MCInstrDesc &MID = UseMI->getDesc();
752 Changed = changeLoad(UseMI, ImmOp, UseMOnum);
754 Changed = changeStore(UseMI, ImmOp, UseMOnum);
755 else if (UseMI->getOpcode() == Hexagon::S2_addasl_rrri)
756 Changed = changeAddAsl(UseN, UseMI, ImmOp, UseMOnum);
759 Deleted.insert(UseMI);
826 MachineInstr *UseMI = OwnerN.Addr->getCode();
827 LLVM_DEBUG(dbgs() << "\t\t[MI <" << printMBBReference(*UseMI->getParent())
828 << ">]: " << *UseMI << "\n");
831 unsigned NumOperands = UseMI->getNumOperands();
833 const MachineOperand &op = UseMI->getOperand(j);
841 // Change UseMI if replacement is possible. If any replacement failed,
844 if (UseMOnum >= 0 && InstrEvalResult[UseMI])
845 Xformed = xformUseMI(MI, UseMI, UseN, UseMOnum);