Lines Matching refs:MBB
51 MachineBasicBlock *MBB = nullptr; member
55 MIRef(MachineBasicBlock *MBB) : MBB(MBB) { in MIRef()
56 for (auto I = MBB->begin(), E = MBB->end(); I != E && I->isPHI(); in MIRef()
61 : MI(MI), MBB(MI->getParent()), in MIRef()
62 Pos(std::distance(MBB->instr_begin(), ++MI->getIterator())) {} in MIRef()
63 MIRef(MachineInstr *MI, MachineBasicBlock *MBB) in MIRef()
64 : MI(MI), MBB(MBB), in MIRef()
65 Pos(std::distance(MBB->instr_begin(), ++MI->getIterator())) {} in MIRef()
66 MIRef(MachineInstr *MI, MachineBasicBlock *MBB, size_t Pos) in MIRef()
67 : MI(MI), MBB(MBB), Pos(Pos) {} in MIRef()
68 operator bool() const { return MBB != nullptr; } in operator bool()
70 return MI == RHS.MI && MBB == RHS.MBB; in operator ==()
76 return MBB < RHS.MBB || (MBB == RHS.MBB && Pos < RHS.Pos); in operator <()
81 return MBB > RHS.MBB || (MBB == RHS.MBB && Pos > RHS.Pos); in operator >()
141 bool hoistShapesInBB(MachineBasicBlock *MBB, SmallVectorImpl<MIRef> &Shapes) { in hoistShapesInBB() argument
142 MIRef &FirstAMX = BBVisitedInfo[MBB].FirstAMX; in hoistShapesInBB()
158 MBB->insert(InsertPoint, I->MI->removeFromParent()); in hoistShapesInBB()
162 Shapes.push_back(MIRef(&*--InsertPoint, MBB)); in hoistShapesInBB()
205 auto RecordShape = [&](MachineInstr *MI, MachineBasicBlock *MBB) { in INITIALIZE_PASS_DEPENDENCY() argument
206 MIRef MIR(MI, MBB); in INITIALIZE_PASS_DEPENDENCY()
207 auto I = llvm::lower_bound(ShapeBBs[MBB], MIR); in INITIALIZE_PASS_DEPENDENCY()
208 if (I == ShapeBBs[MBB].end() || *I != MIR) in INITIALIZE_PASS_DEPENDENCY()
209 ShapeBBs[MBB].insert(I, MIR); in INITIALIZE_PASS_DEPENDENCY()
248 for (auto &MBB : MF) { in runOnMachineFunction() local
250 for (auto &MI : MBB) { in runOnMachineFunction()
254 if (BBVisitedInfo[&MBB].LastCall) in runOnMachineFunction()
255 CfgNeedInsert.insert(BBVisitedInfo[&MBB].LastCall); in runOnMachineFunction()
257 BBVisitedInfo[&MBB].NeedTileCfgLiveIn = true; in runOnMachineFunction()
259 if (!BBVisitedInfo[&MBB].FirstAMX) in runOnMachineFunction()
260 BBVisitedInfo[&MBB].FirstAMX = MIRef(&MI, &MBB, Pos); in runOnMachineFunction()
263 BBVisitedInfo[&MBB].LastCall = MIRef(&MI, &MBB, Pos); in runOnMachineFunction()
266 if (BBVisitedInfo[&MBB].NeedTileCfgLiveIn) { in runOnMachineFunction()
267 if (&MBB == &MF.front()) in runOnMachineFunction()
268 CfgNeedInsert.insert(MIRef(&MBB)); in runOnMachineFunction()
270 CfgLiveInBBs.push_back(&MBB); in runOnMachineFunction()
272 if (BBVisitedInfo[&MBB].FirstAMX || BBVisitedInfo[&MBB].HasAMXRegLiveIn) in runOnMachineFunction()
273 for (auto *Succ : MBB.successors()) in runOnMachineFunction()
274 if (!isLoopBackEdge(Succ, &MBB)) in runOnMachineFunction()
280 MachineBasicBlock *MBB = CfgLiveInBBs.pop_back_val(); in runOnMachineFunction() local
281 for (auto *Pred : MBB->predecessors()) { in runOnMachineFunction()
311 MachineBasicBlock *MBB = WorkList.pop_back_val(); in runOnMachineFunction() local
312 for (auto *Pred : MBB->predecessors()) { in runOnMachineFunction()
313 if (!BBVisitedInfo[Pred].TileCfgForbidden && !isLoopBackEdge(MBB, Pred)) { in runOnMachineFunction()
332 if (!BBVisitedInfo[I.MBB].TileCfgForbidden) { in runOnMachineFunction()
340 for (auto *Succ : I.MBB->successors()) in runOnMachineFunction()
350 if (ShapeBBs.count(I.MBB) && I < ShapeBBs[I.MBB].back()) in runOnMachineFunction()
351 I = ShapeBBs[I.MBB].back(); in runOnMachineFunction()
355 auto II = I.MI ? I.MI->getIterator() : I.MBB->instr_begin(); in runOnMachineFunction()
356 addFrameReference(BuildMI(*I.MBB, ++II, DL, TII->get(X86::LDTILECFG)), in runOnMachineFunction()
363 MachineBasicBlock &MBB = MF.front(); in runOnMachineFunction() local
364 MachineInstr *MI = &*MBB.begin(); in runOnMachineFunction()
367 BuildMI(MBB, MI, DL, TII->get(X86::VPXORDZrr), Zmm) in runOnMachineFunction()
370 addFrameReference(BuildMI(MBB, MI, DL, TII->get(X86::VMOVUPSZmr)), SS) in runOnMachineFunction()
374 BuildMI(MBB, MI, DL, TII->get(X86::VPXORYrr), Ymm) in runOnMachineFunction()
377 addFrameReference(BuildMI(MBB, MI, DL, TII->get(X86::VMOVUPSYmr)), SS) in runOnMachineFunction()
379 addFrameReference(BuildMI(MBB, MI, DL, TII->get(X86::VMOVUPSYmr)), SS, 32) in runOnMachineFunction()
384 BuildMI(MBB, MI, DL, TII->get(X86::PXORrr), Xmm) in runOnMachineFunction()
387 addFrameReference(BuildMI(MBB, MI, DL, TII->get(X86::MOVUPSmr)), SS) in runOnMachineFunction()
389 addFrameReference(BuildMI(MBB, MI, DL, TII->get(X86::MOVUPSmr)), SS, 16) in runOnMachineFunction()
391 addFrameReference(BuildMI(MBB, MI, DL, TII->get(X86::MOVUPSmr)), SS, 32) in runOnMachineFunction()
393 addFrameReference(BuildMI(MBB, MI, DL, TII->get(X86::MOVUPSmr)), SS, 48) in runOnMachineFunction()
397 addFrameReference(BuildMI(MBB, MI, DL, TII->get(X86::MOV8mi)), SS).addImm(1); in runOnMachineFunction()