Lines Matching refs:MBB

57   MachineBasicBlock *MBB = nullptr;  member
61 MIRef(MachineBasicBlock *MBB) : MBB(MBB) { in MIRef()
62 for (auto I = MBB->begin(), E = MBB->end(); I != E && I->isPHI(); in MIRef()
67 : MI(MI), MBB(MI->getParent()), in MIRef()
68 Pos(std::distance(MBB->instr_begin(), ++MI->getIterator())) {} in MIRef()
69 MIRef(MachineInstr *MI, MachineBasicBlock *MBB) in MIRef()
70 : MI(MI), MBB(MBB), in MIRef()
71 Pos(std::distance(MBB->instr_begin(), ++MI->getIterator())) {} in MIRef()
72 MIRef(MachineInstr *MI, MachineBasicBlock *MBB, size_t Pos) in MIRef()
73 : MI(MI), MBB(MBB), Pos(Pos) {} in MIRef()
74 operator bool() const { return MBB != nullptr; } in operator bool()
76 return MI == RHS.MI && MBB == RHS.MBB; in operator ==()
82 return MBB < RHS.MBB || (MBB == RHS.MBB && Pos < RHS.Pos); in operator <()
87 return MBB > RHS.MBB || (MBB == RHS.MBB && Pos > RHS.Pos); in operator >()
147 bool hoistShapesInBB(MachineBasicBlock *MBB, SmallVectorImpl<MIRef> &Shapes) { in hoistShapesInBB() argument
148 MIRef &FirstAMX = BBVisitedInfo[MBB].FirstAMX; in hoistShapesInBB()
164 MBB->insert(InsertPoint, I->MI->removeFromParent()); in hoistShapesInBB()
168 Shapes.push_back(MIRef(&*--InsertPoint, MBB)); in hoistShapesInBB()
211 auto RecordShape = [&](MachineInstr *MI, MachineBasicBlock *MBB) { in INITIALIZE_PASS_DEPENDENCY() argument
212 MIRef MIR(MI, MBB); in INITIALIZE_PASS_DEPENDENCY()
213 auto I = llvm::lower_bound(ShapeBBs[MBB], MIR); in INITIALIZE_PASS_DEPENDENCY()
214 if (I == ShapeBBs[MBB].end() || *I != MIR) in INITIALIZE_PASS_DEPENDENCY()
215 ShapeBBs[MBB].insert(I, MIR); in INITIALIZE_PASS_DEPENDENCY()
255 for (auto &MBB : MF) { in runOnMachineFunction() local
257 for (auto &MI : MBB) { in runOnMachineFunction()
261 if (BBVisitedInfo[&MBB].LastCall) in runOnMachineFunction()
262 CfgNeedInsert.insert(BBVisitedInfo[&MBB].LastCall); in runOnMachineFunction()
264 BBVisitedInfo[&MBB].NeedTileCfgLiveIn = true; in runOnMachineFunction()
266 if (!BBVisitedInfo[&MBB].FirstAMX) in runOnMachineFunction()
267 BBVisitedInfo[&MBB].FirstAMX = MIRef(&MI, &MBB, Pos); in runOnMachineFunction()
270 BBVisitedInfo[&MBB].LastCall = MIRef(&MI, &MBB, Pos); in runOnMachineFunction()
273 if (BBVisitedInfo[&MBB].NeedTileCfgLiveIn) { in runOnMachineFunction()
274 if (&MBB == &MF.front()) in runOnMachineFunction()
275 CfgNeedInsert.insert(MIRef(&MBB)); in runOnMachineFunction()
277 CfgLiveInBBs.push_back(&MBB); in runOnMachineFunction()
279 if (BBVisitedInfo[&MBB].FirstAMX || BBVisitedInfo[&MBB].HasAMXRegLiveIn) in runOnMachineFunction()
280 for (auto *Succ : MBB.successors()) in runOnMachineFunction()
281 if (!isLoopBackEdge(Succ, &MBB)) in runOnMachineFunction()
287 MachineBasicBlock *MBB = CfgLiveInBBs.pop_back_val(); in runOnMachineFunction() local
288 for (auto *Pred : MBB->predecessors()) { in runOnMachineFunction()
326 MachineBasicBlock *MBB = WorkList.pop_back_val(); in runOnMachineFunction() local
327 for (auto *Pred : MBB->predecessors()) { in runOnMachineFunction()
328 if (!BBVisitedInfo[Pred].TileCfgForbidden && !isLoopBackEdge(MBB, Pred)) { in runOnMachineFunction()
347 if (!BBVisitedInfo[I.MBB].TileCfgForbidden) { in runOnMachineFunction()
355 for (auto *Succ : I.MBB->successors()) in runOnMachineFunction()
365 if (ShapeBBs.count(I.MBB) && I < ShapeBBs[I.MBB].back()) in runOnMachineFunction()
366 I = ShapeBBs[I.MBB].back(); in runOnMachineFunction()
370 auto II = I.MI ? I.MI->getIterator() : I.MBB->instr_begin(); in runOnMachineFunction()
371 addFrameReference(BuildMI(*I.MBB, ++II, DL, TII->get(X86::PLDTILECFGV)), in runOnMachineFunction()
378 MachineBasicBlock &MBB = MF.front(); in runOnMachineFunction() local
379 MachineInstr *MI = &*MBB.begin(); in runOnMachineFunction()
382 BuildMI(MBB, MI, DL, TII->get(X86::AVX512_512_SET0), Zmm); in runOnMachineFunction()
383 addFrameReference(BuildMI(MBB, MI, DL, TII->get(X86::VMOVUPSZmr)), SS) in runOnMachineFunction()
387 BuildMI(MBB, MI, DL, TII->get(X86::AVX_SET0), Ymm); in runOnMachineFunction()
388 addFrameReference(BuildMI(MBB, MI, DL, TII->get(X86::VMOVUPSYmr)), SS) in runOnMachineFunction()
390 addFrameReference(BuildMI(MBB, MI, DL, TII->get(X86::VMOVUPSYmr)), SS, 32) in runOnMachineFunction()
396 BuildMI(MBB, MI, DL, TII->get(X86::V_SET0), Xmm); in runOnMachineFunction()
397 addFrameReference(BuildMI(MBB, MI, DL, TII->get(StoreOpc)), SS).addReg(Xmm); in runOnMachineFunction()
398 addFrameReference(BuildMI(MBB, MI, DL, TII->get(StoreOpc)), SS, 16) in runOnMachineFunction()
400 addFrameReference(BuildMI(MBB, MI, DL, TII->get(StoreOpc)), SS, 32) in runOnMachineFunction()
402 addFrameReference(BuildMI(MBB, MI, DL, TII->get(StoreOpc)), SS, 48) in runOnMachineFunction()
406 addFrameReference(BuildMI(MBB, MI, DL, TII->get(X86::MOV8mi)), SS).addImm(1); in runOnMachineFunction()