Lines Matching refs:MachineInstr
111 DenseMap<unsigned, std::vector<const MachineInstr*> > CSEMap;
158 MachineInstr *MI;
161 CandidateInfo(MachineInstr *mi, unsigned def, int fi) in CandidateInfo()
167 void HoistPostRA(MachineInstr *MI, unsigned Def);
169 void ProcessMI(MachineInstr *MI, BitVector &PhysRegDefs,
175 bool IsLICMCandidate(MachineInstr &I);
177 bool IsLoopInvariantInst(MachineInstr &I);
179 bool HasLoopPHIUse(const MachineInstr *MI) const;
181 bool HasHighOperandLatency(MachineInstr &MI, unsigned DefIdx,
184 bool IsCheapInstruction(MachineInstr &MI) const;
189 void UpdateBackTraceRegPressure(const MachineInstr *MI);
191 bool IsProfitableToHoist(MachineInstr &MI);
212 DenseMap<unsigned, int> calcRegisterCost(const MachineInstr *MI,
216 void UpdateRegPressure(const MachineInstr *MI,
219 MachineInstr *ExtractHoistableLoad(MachineInstr *MI);
221 const MachineInstr *
222 LookForDuplicate(const MachineInstr *MI,
223 std::vector<const MachineInstr *> &PrevMIs);
226 MachineInstr *MI,
227 DenseMap<unsigned, std::vector<const MachineInstr *>>::iterator &CI);
229 bool MayCSE(MachineInstr *MI);
231 bool Hoist(MachineInstr *MI, MachineBasicBlock *Preheader);
332 static bool InstructionStoresToFI(const MachineInstr *MI, int FI) { in InstructionStoresToFI()
333 for (MachineInstr::mmo_iterator o = MI->memoperands_begin(), in InstructionStoresToFI()
348 void MachineLICM::ProcessMI(MachineInstr *MI, in ProcessMI()
470 MachineInstr *MI = &*MII; in HoistRegionPostRA()
507 MachineInstr *MI = Candidates[i].MI; in HoistRegionPostRA()
537 MachineInstr *MI = &*MII; in AddToLiveIns()
550 void MachineLICM::HoistPostRA(MachineInstr *MI, unsigned Def) { in HoistPostRA()
699 MachineInstr *MI = &*MII; in HoistOutOfLoop()
718 SmallVector<MachineInstr *, 8> Candidates; in SinkIntoLoop()
727 for (MachineInstr *I : Candidates) { in SinkIntoLoop()
735 for (MachineInstr &MI : MRI->use_instructions(MO.getReg())) { in SinkIntoLoop()
781 for (const MachineInstr &MI : *BB) in InitRegPressure()
786 void MachineLICM::UpdateRegPressure(const MachineInstr *MI, in UpdateRegPressure()
805 MachineLICM::calcRegisterCost(const MachineInstr *MI, bool ConsiderSeen, in calcRegisterCost()
849 static bool isLoadFromGOTOrConstantPool(MachineInstr &MI) { in isLoadFromGOTOrConstantPool()
851 for (MachineInstr::mmo_iterator I = MI.memoperands_begin(), in isLoadFromGOTOrConstantPool()
863 bool MachineLICM::IsLICMCandidate(MachineInstr &I) { in IsLICMCandidate()
887 bool MachineLICM::IsLoopInvariantInst(MachineInstr &I) { in IsLoopInvariantInst()
940 bool MachineLICM::HasLoopPHIUse(const MachineInstr *MI) const { in HasLoopPHIUse()
941 SmallVector<const MachineInstr*, 8> Work(1, MI); in HasLoopPHIUse()
950 for (MachineInstr &UseMI : MRI->use_instructions(Reg)) { in HasLoopPHIUse()
975 bool MachineLICM::HasHighOperandLatency(MachineInstr &MI, in HasHighOperandLatency()
980 for (MachineInstr &UseMI : MRI->use_nodbg_instructions(Reg)) { in HasHighOperandLatency()
1006 bool MachineLICM::IsCheapInstruction(MachineInstr &MI) const { in IsCheapInstruction()
1056 void MachineLICM::UpdateBackTraceRegPressure(const MachineInstr *MI) { in UpdateBackTraceRegPressure()
1070 bool MachineLICM::IsProfitableToHoist(MachineInstr &MI) { in IsProfitableToHoist()
1162 MachineInstr *MachineLICM::ExtractHoistableLoad(MachineInstr *MI) { in ExtractHoistableLoad()
1188 SmallVector<MachineInstr *, 2> NewMIs; in ExtractHoistableLoad()
1224 const MachineInstr *MI = &*I; in InitCSEMap()
1232 const MachineInstr*
1233 MachineLICM::LookForDuplicate(const MachineInstr *MI, in LookForDuplicate()
1234 std::vector<const MachineInstr*> &PrevMIs) { in LookForDuplicate()
1236 const MachineInstr *PrevMI = PrevMIs[i]; in LookForDuplicate()
1247 bool MachineLICM::EliminateCSE(MachineInstr *MI, in EliminateCSE()
1248 DenseMap<unsigned, std::vector<const MachineInstr*> >::iterator &CI) { in EliminateCSE()
1254 if (const MachineInstr *Dup = LookForDuplicate(MI, CI->second)) { in EliminateCSE()
1306 bool MachineLICM::MayCSE(MachineInstr *MI) { in MayCSE()
1308 DenseMap<unsigned, std::vector<const MachineInstr*> >::iterator in MayCSE()
1321 bool MachineLICM::Hoist(MachineInstr *MI, MachineBasicBlock *Preheader) { in Hoist()
1351 DenseMap<unsigned, std::vector<const MachineInstr*> >::iterator in Hoist()