Lines Matching refs:FuncInfo
313 : MachineFunctionPass(ID), TM(tm), FuncInfo(new FunctionLoweringInfo()), in SelectionDAGISel()
316 SDB(std::make_unique<SelectionDAGBuilder>(*CurDAG, *FuncInfo, *SwiftError, in SelectionDAGISel()
415 FuncInfo->set(Fn, *MF, CurDAG); in runOnMachineFunction()
424 FuncInfo->BPI = &getAnalysis<BranchProbabilityInfoWrapperPass>().getBPI(); in runOnMachineFunction()
426 FuncInfo->BPI = nullptr; in runOnMachineFunction()
437 FuncInfo->SplitCSR = false; in runOnMachineFunction()
442 FuncInfo->SplitCSR = true; in runOnMachineFunction()
454 FuncInfo->SplitCSR = false; in runOnMachineFunction()
460 if (FuncInfo->SplitCSR) in runOnMachineFunction()
477 for (DenseMap<Register, Register>::iterator I = FuncInfo->RegFixups.begin(), in runOnMachineFunction()
478 E = FuncInfo->RegFixups.end(); in runOnMachineFunction()
485 DenseMap<Register, Register>::iterator J = FuncInfo->RegFixups.find(To); in runOnMachineFunction()
510 if (FuncInfo->SplitCSR) { in runOnMachineFunction()
527 if (!FuncInfo->ArgDbgValues.empty()) in runOnMachineFunction()
534 for (unsigned i = 0, e = FuncInfo->ArgDbgValues.size(); i != e; ++i) { in runOnMachineFunction()
535 MachineInstr *MI = FuncInfo->ArgDbgValues[e - i - 1]; in runOnMachineFunction()
640 FuncInfo->clear(); in runOnMachineFunction()
720 FuncInfo->AddLiveOutRegInfo(DestReg, NumSignBits, Known); in ComputeLiveOutVRegInfo()
731 getAnalysis<TargetTransformInfoWrapperPass>().getTTI(*FuncInfo->Fn); in CodeGenAndEmitDAG()
740 FuncInfo->MBB->getBasicBlock()->getName()); in CodeGenAndEmitDAG()
749 (MF->getName() + ":" + FuncInfo->MBB->getBasicBlock()->getName()).str(); in CodeGenAndEmitDAG()
752 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
772 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
794 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
818 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
836 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
852 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
872 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
892 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
912 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
936 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
948 Scheduler->Run(CurDAG, FuncInfo->MBB); in CodeGenAndEmitDAG()
956 MachineBasicBlock *FirstMBB = FuncInfo->MBB, *LastMBB; in CodeGenAndEmitDAG()
963 LastMBB = FuncInfo->MBB = Scheduler->EmitSchedule(FuncInfo->InsertPt); in CodeGenAndEmitDAG()
1058 << printMBBReference(*FuncInfo->MBB) << " '" in DoInstructionSelection()
1059 << FuncInfo->MBB->getName() << "'\n"); in DoInstructionSelection()
1212 MachineBasicBlock *MBB = FuncInfo->MBB; in PrepareEHLandingPad()
1213 const Constant *PersonalityFn = FuncInfo->Fn->getPersonalityFn(); in PrepareEHLandingPad()
1230 unsigned VReg = FuncInfo->getCatchPadExceptionPointerVReg(CPI, PtrRC); in PrepareEHLandingPad()
1231 BuildMI(*MBB, FuncInfo->InsertPt, SDB->getCurDebugLoc(), in PrepareEHLandingPad()
1244 BuildMI(*MBB, FuncInfo->InsertPt, SDB->getCurDebugLoc(), II) in PrepareEHLandingPad()
1261 FuncInfo->ExceptionPointerVirtReg = MBB->addLiveIn(Reg, PtrRC); in PrepareEHLandingPad()
1264 FuncInfo->ExceptionSelectorVirtReg = MBB->addLiveIn(Reg, PtrRC); in PrepareEHLandingPad()
1274 const FunctionLoweringInfo &FuncInfo) { in isFoldedOrDeadInstruction() argument
1279 !FuncInfo.isExportedInst(I); // Exported instrs must be computed. in isFoldedOrDeadInstruction()
1284 static void processDbgDeclares(FunctionLoweringInfo &FuncInfo) { in processDbgDeclares() argument
1285 MachineFunction *MF = FuncInfo.MF; in processDbgDeclares()
1287 for (const BasicBlock &BB : *FuncInfo.Fn) { in processDbgDeclares()
1312 auto SI = FuncInfo.StaticAllocaMap.find(AI); in processDbgDeclares()
1313 if (SI != FuncInfo.StaticAllocaMap.end()) in processDbgDeclares()
1316 FI = FuncInfo.getArgumentFrameIndex(Arg); in processDbgDeclares()
1338 FastIS = TLI->createFastISel(*FuncInfo, LibInfo); in SelectAllBasicBlocks()
1351 FuncInfo->MBB = FuncInfo->MBBMap[&Fn.getEntryBlock()]; in SelectAllBasicBlocks()
1352 FuncInfo->InsertPt = FuncInfo->MBB->begin(); in SelectAllBasicBlocks()
1354 CurDAG->setFunctionLoweringInfo(FuncInfo.get()); in SelectAllBasicBlocks()
1383 if (FuncInfo->InsertPt != FuncInfo->MBB->begin()) in SelectAllBasicBlocks()
1384 FastIS->setLastLocalValue(&*std::prev(FuncInfo->InsertPt)); in SelectAllBasicBlocks()
1392 FastIS->setLastLocalValue(&*std::prev(FuncInfo->InsertPt)); in SelectAllBasicBlocks()
1394 processDbgDeclares(*FuncInfo); in SelectAllBasicBlocks()
1402 if (!FuncInfo->VisitedBBs.count(Pred)) { in SelectAllBasicBlocks()
1410 FuncInfo->ComputePHILiveOutRegInfo(&PN); in SelectAllBasicBlocks()
1413 FuncInfo->InvalidatePHILiveOutRegInfo(&PN); in SelectAllBasicBlocks()
1416 FuncInfo->VisitedBBs.insert(LLVMBB); in SelectAllBasicBlocks()
1424 FuncInfo->MBB = FuncInfo->MBBMap[LLVMBB]; in SelectAllBasicBlocks()
1425 if (!FuncInfo->MBB) in SelectAllBasicBlocks()
1429 FuncInfo->InsertPt = FuncInfo->MBB->end(); in SelectAllBasicBlocks()
1432 FuncInfo->ExceptionPointerVirtReg = 0; in SelectAllBasicBlocks()
1433 FuncInfo->ExceptionSelectorVirtReg = 0; in SelectAllBasicBlocks()
1446 SwiftError->preassignVRegs(FuncInfo->MBB, Begin, End); in SelectAllBasicBlocks()
1453 if (isFoldedOrDeadInstruction(Inst, *FuncInfo) || in SelectAllBasicBlocks()
1473 if (!isFoldedOrDeadInstruction(BeforeInst, *FuncInfo)) in SelectAllBasicBlocks()
1515 Register &R = FuncInfo->ValueMap[Inst]; in SelectAllBasicBlocks()
1517 R = FuncInfo->CreateRegs(Inst); in SelectAllBasicBlocks()
1521 MachineBasicBlock::iterator SavedInsertPt = FuncInfo->InsertPt; in SelectAllBasicBlocks()
1527 FastIS->removeDeadCode(SavedInsertPt, FuncInfo->MBB->end()); in SelectAllBasicBlocks()
1572 SDB->SPDescriptor.initialize(LLVMBB, FuncInfo->MBBMap[LLVMBB], in SelectAllBasicBlocks()
1591 if (FastIS && HadTailCall && FuncInfo->InsertPt != FuncInfo->MBB->end()) in SelectAllBasicBlocks()
1592 FastIS->removeDeadCode(FuncInfo->InsertPt, FuncInfo->MBB->end()); in SelectAllBasicBlocks()
1598 FuncInfo->PHINodesToUpdate.clear(); in SelectAllBasicBlocks()
1614 << FuncInfo->PHINodesToUpdate.size() << "\n"; in FinishBasicBlock()
1615 for (unsigned i = 0, e = FuncInfo->PHINodesToUpdate.size(); i != e; in FinishBasicBlock()
1617 << "Node " << i << " : (" << FuncInfo->PHINodesToUpdate[i].first in FinishBasicBlock()
1618 << ", " << FuncInfo->PHINodesToUpdate[i].second << ")\n"); in FinishBasicBlock()
1622 for (unsigned i = 0, e = FuncInfo->PHINodesToUpdate.size(); i != e; ++i) { in FinishBasicBlock()
1623 MachineInstrBuilder PHI(*MF, FuncInfo->PHINodesToUpdate[i].first); in FinishBasicBlock()
1626 if (!FuncInfo->MBB->isSuccessor(PHI->getParent())) in FinishBasicBlock()
1628 PHI.addReg(FuncInfo->PHINodesToUpdate[i].second).addMBB(FuncInfo->MBB); in FinishBasicBlock()
1638 FuncInfo->MBB = ParentMBB; in FinishBasicBlock()
1639 FuncInfo->InsertPt = in FinishBasicBlock()
1667 FuncInfo->MBB = ParentMBB; in FinishBasicBlock()
1668 FuncInfo->InsertPt = ParentMBB->end(); in FinishBasicBlock()
1677 FuncInfo->MBB = FailureMBB; in FinishBasicBlock()
1678 FuncInfo->InsertPt = FailureMBB->end(); in FinishBasicBlock()
1694 FuncInfo->MBB = BTB.Parent; in FinishBasicBlock()
1695 FuncInfo->InsertPt = FuncInfo->MBB->end(); in FinishBasicBlock()
1697 SDB->visitBitTestHeader(BTB, FuncInfo->MBB); in FinishBasicBlock()
1707 FuncInfo->MBB = BTB.Cases[j].ThisBB; in FinishBasicBlock()
1708 FuncInfo->InsertPt = FuncInfo->MBB->end(); in FinishBasicBlock()
1733 FuncInfo->MBB); in FinishBasicBlock()
1748 FuncInfo->PHINodesToUpdate) { in FinishBasicBlock()
1778 FuncInfo->MBB = SDB->SL->JTCases[i].first.HeaderBB; in FinishBasicBlock()
1779 FuncInfo->InsertPt = FuncInfo->MBB->end(); in FinishBasicBlock()
1782 SDB->SL->JTCases[i].first, FuncInfo->MBB); in FinishBasicBlock()
1789 FuncInfo->MBB = SDB->SL->JTCases[i].second.MBB; in FinishBasicBlock()
1790 FuncInfo->InsertPt = FuncInfo->MBB->end(); in FinishBasicBlock()
1798 for (unsigned pi = 0, pe = FuncInfo->PHINodesToUpdate.size(); in FinishBasicBlock()
1800 MachineInstrBuilder PHI(*MF, FuncInfo->PHINodesToUpdate[pi].first); in FinishBasicBlock()
1806 PHI.addReg(FuncInfo->PHINodesToUpdate[pi].second) in FinishBasicBlock()
1809 if (FuncInfo->MBB->isSuccessor(PHIBB)) in FinishBasicBlock()
1810 PHI.addReg(FuncInfo->PHINodesToUpdate[pi].second).addMBB(FuncInfo->MBB); in FinishBasicBlock()
1819 FuncInfo->MBB = SDB->SL->SwitchCases[i].ThisBB; in FinishBasicBlock()
1820 FuncInfo->InsertPt = FuncInfo->MBB->end(); in FinishBasicBlock()
1829 SDB->visitSwitchCase(SDB->SL->SwitchCases[i], FuncInfo->MBB); in FinishBasicBlock()
1836 MachineBasicBlock *ThisBB = FuncInfo->MBB; in FinishBasicBlock()
1843 FuncInfo->MBB = Succs[i]; in FinishBasicBlock()
1844 FuncInfo->InsertPt = FuncInfo->MBB->end(); in FinishBasicBlock()
1847 if (ThisBB->isSuccessor(FuncInfo->MBB)) { in FinishBasicBlock()
1849 MBBI = FuncInfo->MBB->begin(), MBBE = FuncInfo->MBB->end(); in FinishBasicBlock()
1854 assert(pn != FuncInfo->PHINodesToUpdate.size() && in FinishBasicBlock()
1856 if (FuncInfo->PHINodesToUpdate[pn].first == PHI) { in FinishBasicBlock()
1857 PHI.addReg(FuncInfo->PHINodesToUpdate[pn].second).addMBB(ThisBB); in FinishBasicBlock()