Lines Matching refs:MIRef
49 struct MIRef { struct
54 MIRef() = default;
55 MIRef(MachineBasicBlock *MBB) : MBB(MBB) { in MIRef() function
60 MIRef(MachineInstr *MI) in MIRef() argument
63 MIRef(MachineInstr *MI, MachineBasicBlock *MBB) in MIRef() function
66 MIRef(MachineInstr *MI, MachineBasicBlock *MBB, size_t Pos) in MIRef() argument
69 bool operator==(const MIRef &RHS) const { in operator ==() argument
72 bool operator!=(const MIRef &RHS) const { return !(*this == RHS); } in operator !=() argument
73 bool operator<(const MIRef &RHS) const { in operator <() argument
78 bool operator>(const MIRef &RHS) const { in operator >() argument
86 MIRef FirstAMX;
87 MIRef LastCall;
98 DenseMap<MachineBasicBlock *, SmallVector<MIRef, 8>> ShapeBBs;
141 bool hoistShapesInBB(MachineBasicBlock *MBB, SmallVectorImpl<MIRef> &Shapes) { in hoistShapesInBB()
142 MIRef &FirstAMX = BBVisitedInfo[MBB].FirstAMX; in hoistShapesInBB()
154 if (MO.isReg() && MIRef(MRI->getVRegDef(MO.getReg())) > FirstAMX) in hoistShapesInBB()
162 Shapes.push_back(MIRef(&*--InsertPoint, MBB)); in hoistShapesInBB()
206 MIRef MIR(MI, MBB); in INITIALIZE_PASS_DEPENDENCY()
246 SmallSet<MIRef, 8> CfgNeedInsert; in runOnMachineFunction()
260 BBVisitedInfo[&MBB].FirstAMX = MIRef(&MI, &MBB, Pos); in runOnMachineFunction()
263 BBVisitedInfo[&MBB].LastCall = MIRef(&MI, &MBB, Pos); in runOnMachineFunction()
268 CfgNeedInsert.insert(MIRef(&MBB)); in runOnMachineFunction()
287 CfgNeedInsert.insert(MIRef(Pred)); in runOnMachineFunction()
321 SmallSet<MIRef, 8> VisitedOrInserted; in runOnMachineFunction()
327 SmallSet<MIRef, 8> InsertPoints; in runOnMachineFunction()
328 SmallVector<MIRef, 8> WorkList({I}); in runOnMachineFunction()
330 MIRef I = WorkList.pop_back_val(); in runOnMachineFunction()
342 WorkList.push_back(MIRef(Succ)); in runOnMachineFunction()
348 for (MIRef I : InsertPoints) { in runOnMachineFunction()