Lines Matching refs:MachineInstr
62 bool runOnInstruction(MachineInstr *MI);
99 bool hasPartialWrite(MachineInstr *MI);
100 SmallVector<unsigned, 8> getReadDPRs(MachineInstr *MI);
107 MachineInstr *elideCopies(MachineInstr *MI);
108 void elideCopiesAndPHIs(MachineInstr *MI,
109 SmallVectorImpl<MachineInstr*> &Outs);
114 unsigned optimizeAllLanesPattern(MachineInstr *MI, unsigned Reg);
115 unsigned optimizeSDPattern(MachineInstr *MI);
121 void eraseInstrWithNoUses(MachineInstr *MI);
126 std::map<MachineInstr*, unsigned> Replacements;
127 std::set<MachineInstr *> DeadInstr;
158 MachineInstr *MI = MRI->getVRegDef(SReg); in getPrefSPRLane()
179 void A15SDOptimizer::eraseInstrWithNoUses(MachineInstr *MI) { in eraseInstrWithNoUses()
180 SmallVector<MachineInstr *, 8> Front; in eraseInstrWithNoUses()
203 MachineInstr *Def = Op->getParent(); in eraseInstrWithNoUses()
222 for (MachineInstr &Use : MRI->use_instructions(Reg)) { in eraseInstrWithNoUses()
243 unsigned A15SDOptimizer::optimizeSDPattern(MachineInstr *MI) { in optimizeSDPattern()
253 MachineInstr *DPRMI = MRI->getVRegDef(MI->getOperand(1).getReg()); in optimizeSDPattern()
254 MachineInstr *SPRMI = MRI->getVRegDef(MI->getOperand(2).getReg()); in optimizeSDPattern()
258 MachineInstr *ECDef = elideCopies(DPRMI); in optimizeSDPattern()
263 MachineInstr *EC = elideCopies(SPRMI); in optimizeSDPattern()
305 MachineInstr *Def = MRI->getVRegDef(OpReg); in optimizeSDPattern()
325 bool A15SDOptimizer::hasPartialWrite(MachineInstr *MI) { in hasPartialWrite()
343 MachineInstr *A15SDOptimizer::elideCopies(MachineInstr *MI) { in elideCopies()
348 MachineInstr *Def = MRI->getVRegDef(MI->getOperand(1).getReg()); in elideCopies()
356 void A15SDOptimizer::elideCopiesAndPHIs(MachineInstr *MI, in elideCopiesAndPHIs()
357 SmallVectorImpl<MachineInstr*> &Outs) { in elideCopiesAndPHIs()
360 std::set<MachineInstr *> Reached; in elideCopiesAndPHIs()
361 SmallVector<MachineInstr *, 8> Front; in elideCopiesAndPHIs()
377 MachineInstr *NewMI = MRI->getVRegDef(Reg); in elideCopiesAndPHIs()
385 MachineInstr *NewMI = MRI->getVRegDef(MI->getOperand(1).getReg()); in elideCopiesAndPHIs()
398 SmallVector<unsigned, 8> A15SDOptimizer::getReadDPRs(MachineInstr *MI) { in getReadDPRs()
510 A15SDOptimizer::optimizeAllLanesPattern(MachineInstr *MI, unsigned Reg) { in optimizeAllLanesPattern()
565 bool A15SDOptimizer::runOnInstruction(MachineInstr *MI) { in runOnInstruction()
605 SmallVector<MachineInstr *, 8> DefSrcs; in runOnInstruction()
608 MachineInstr *Def = MRI->getVRegDef(*I); in runOnInstruction()
614 for (MachineInstr *MI : DefSrcs) { in runOnInstruction()
677 for (MachineInstr &MI : MBB) { in runOnMachineFunction()
682 for (MachineInstr *MI : DeadInstr) { in runOnMachineFunction()