Lines Matching refs:MIRef
55 struct MIRef { struct
60 MIRef() = default;
61 MIRef(MachineBasicBlock *MBB) : MBB(MBB) { in MIRef() argument
66 MIRef(MachineInstr *MI) in MIRef() argument
69 MIRef(MachineInstr *MI, MachineBasicBlock *MBB) in MIRef() argument
72 MIRef(MachineInstr *MI, MachineBasicBlock *MBB, size_t Pos) in MIRef() argument
75 bool operator==(const MIRef &RHS) const { in operator ==() argument
78 bool operator!=(const MIRef &RHS) const { return !(*this == RHS); } in operator !=() argument
79 bool operator<(const MIRef &RHS) const { in operator <() argument
84 bool operator>(const MIRef &RHS) const { in operator >() argument
92 MIRef FirstAMX;
93 MIRef LastCall;
104 DenseMap<MachineBasicBlock *, SmallVector<MIRef, 8>> ShapeBBs;
147 bool hoistShapesInBB(MachineBasicBlock *MBB, SmallVectorImpl<MIRef> &Shapes) { in hoistShapesInBB()
148 MIRef &FirstAMX = BBVisitedInfo[MBB].FirstAMX; in hoistShapesInBB()
160 if (MO.isReg() && MIRef(MRI->getVRegDef(MO.getReg())) > FirstAMX) in hoistShapesInBB()
168 Shapes.push_back(MIRef(&*--InsertPoint, MBB)); in hoistShapesInBB()
212 MIRef MIR(MI, MBB); in INITIALIZE_PASS_DEPENDENCY()
253 SmallSet<MIRef, 8> CfgNeedInsert; in runOnMachineFunction()
267 BBVisitedInfo[&MBB].FirstAMX = MIRef(&MI, &MBB, Pos); in runOnMachineFunction()
270 BBVisitedInfo[&MBB].LastCall = MIRef(&MI, &MBB, Pos); in runOnMachineFunction()
275 CfgNeedInsert.insert(MIRef(&MBB)); in runOnMachineFunction()
294 CfgNeedInsert.insert(MIRef(Pred)); in runOnMachineFunction()
336 SmallSet<MIRef, 8> VisitedOrInserted; in runOnMachineFunction()
342 SmallSet<MIRef, 8> InsertPoints; in runOnMachineFunction()
343 SmallVector<MIRef, 8> WorkList({I}); in runOnMachineFunction()
345 MIRef I = WorkList.pop_back_val(); in runOnMachineFunction()
357 WorkList.push_back(MIRef(Succ)); in runOnMachineFunction()
363 for (MIRef I : InsertPoints) { in runOnMachineFunction()