• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/llvm-project/llvm/lib/CodeGen/SelectionDAG/

Lines Matching refs:FuncInfo

311     : MachineFunctionPass(ID), TM(tm), FuncInfo(new FunctionLoweringInfo()),
314 SDB(std::make_unique<SelectionDAGBuilder>(*CurDAG, *FuncInfo, *SwiftError,
454 FuncInfo->set(Fn, *MF, CurDAG);
463 FuncInfo->BPI = &getAnalysis<BranchProbabilityInfoWrapperPass>().getBPI();
465 FuncInfo->BPI = nullptr;
476 FuncInfo->SplitCSR = false;
481 FuncInfo->SplitCSR = true;
493 FuncInfo->SplitCSR = false;
499 if (FuncInfo->SplitCSR)
516 for (DenseMap<unsigned, unsigned>::iterator I = FuncInfo->RegFixups.begin(),
517 E = FuncInfo->RegFixups.end();
524 DenseMap<unsigned, unsigned>::iterator J = FuncInfo->RegFixups.find(To);
549 if (FuncInfo->SplitCSR) {
566 if (!FuncInfo->ArgDbgValues.empty())
572 for (unsigned i = 0, e = FuncInfo->ArgDbgValues.size(); i != e; ++i) {
573 MachineInstr *MI = FuncInfo->ArgDbgValues[e-i-1];
664 I = FuncInfo->RegFixups.begin(), E = FuncInfo->RegFixups.end();
671 DenseMap<unsigned, unsigned>::iterator J = FuncInfo->RegFixups.find(To);
693 FuncInfo->clear();
772 FuncInfo->AddLiveOutRegInfo(DestReg, NumSignBits, Known);
783 getAnalysis<TargetTransformInfoWrapperPass>().getTTI(*FuncInfo->Fn);
792 FuncInfo->MBB->getBasicBlock()->getName());
801 (MF->getName() + ":" + FuncInfo->MBB->getBasicBlock()->getName()).str();
804 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName
824 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName
846 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName
870 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName
883 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName
894 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName
909 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName
934 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName
954 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName
973 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName
985 Scheduler->Run(CurDAG, FuncInfo->MBB);
993 MachineBasicBlock *FirstMBB = FuncInfo->MBB, *LastMBB;
998 // FuncInfo->InsertPt is passed by reference and set to the end of the
1000 LastMBB = FuncInfo->MBB = Scheduler->EmitSchedule(FuncInfo->InsertPt);
1095 << printMBBReference(*FuncInfo->MBB) << " '"
1096 << FuncInfo->MBB->getName() << "'\n");
1246 MachineBasicBlock *MBB = FuncInfo->MBB;
1247 const Constant *PersonalityFn = FuncInfo->Fn->getPersonalityFn();
1264 unsigned VReg = FuncInfo->getCatchPadExceptionPointerVReg(CPI, PtrRC);
1265 BuildMI(*MBB, FuncInfo->InsertPt, SDB->getCurDebugLoc(),
1278 BuildMI(*MBB, FuncInfo->InsertPt, SDB->getCurDebugLoc(), II)
1289 FuncInfo->ExceptionPointerVirtReg = MBB->addLiveIn(Reg, PtrRC);
1292 FuncInfo->ExceptionSelectorVirtReg = MBB->addLiveIn(Reg, PtrRC);
1302 const FunctionLoweringInfo &FuncInfo) {
1307 !FuncInfo.isExportedInst(I); // Exported instrs must be computed.
1312 static void processDbgDeclares(FunctionLoweringInfo &FuncInfo) {
1313 MachineFunction *MF = FuncInfo.MF;
1315 for (const BasicBlock &BB : *FuncInfo.Fn) {
1337 auto SI = FuncInfo.StaticAllocaMap.find(AI);
1338 if (SI != FuncInfo.StaticAllocaMap.end())
1341 FI = FuncInfo.getArgumentFrameIndex(Arg);
1361 FastIS = TLI->createFastISel(*FuncInfo, LibInfo);
1371 // Set up FuncInfo for ISel. Entry blocks never have PHIs.
1372 FuncInfo->MBB = FuncInfo->MBBMap[&Fn.getEntryBlock()];
1373 FuncInfo->InsertPt = FuncInfo->MBB->begin();
1375 CurDAG->setFunctionLoweringInfo(FuncInfo.get());
1404 if (FuncInfo->InsertPt != FuncInfo->MBB->begin())
1405 FastIS->setLastLocalValue(&*std::prev(FuncInfo->InsertPt));
1413 FastIS->setLastLocalValue(&*std::prev(FuncInfo->InsertPt));
1415 processDbgDeclares(*FuncInfo);
1424 if (!FuncInfo->VisitedBBs.count(*PI)) {
1432 FuncInfo->ComputePHILiveOutRegInfo(&PN);
1435 FuncInfo->InvalidatePHILiveOutRegInfo(&PN);
1438 FuncInfo->VisitedBBs.insert(LLVMBB);
1446 FuncInfo->MBB = FuncInfo->MBBMap[LLVMBB];
1447 if (!FuncInfo->MBB)
1451 FuncInfo->InsertPt = FuncInfo->MBB->end();
1454 FuncInfo->ExceptionPointerVirtReg = 0;
1455 FuncInfo->ExceptionSelectorVirtReg = 0;
1468 SwiftError->preassignVRegs(FuncInfo->MBB, Begin, End);
1475 if (isFoldedOrDeadInstruction(Inst, *FuncInfo) ||
1495 if (!isFoldedOrDeadInstruction(BeforeInst, *FuncInfo))
1535 unsigned &R = FuncInfo->ValueMap[Inst];
1537 R = FuncInfo->CreateRegs(Inst);
1541 MachineBasicBlock::iterator SavedInsertPt = FuncInfo->InsertPt;
1547 FastIS->removeDeadCode(SavedInsertPt, FuncInfo->MBB->end());
1592 SDB->SPDescriptor.initialize(LLVMBB, FuncInfo->MBBMap[LLVMBB],
1611 if (FastIS && HadTailCall && FuncInfo->InsertPt != FuncInfo->MBB->end())
1612 FastIS->removeDeadCode(FuncInfo->InsertPt, FuncInfo->MBB->end());
1618 FuncInfo->PHINodesToUpdate.clear();
1717 << FuncInfo->PHINodesToUpdate.size() << "\n";
1718 for (unsigned i = 0, e = FuncInfo->PHINodesToUpdate.size(); i != e;
1720 << "Node " << i << " : (" << FuncInfo->PHINodesToUpdate[i].first
1721 << ", " << FuncInfo->PHINodesToUpdate[i].second << ")\n");
1725 for (unsigned i = 0, e = FuncInfo->PHINodesToUpdate.size(); i != e; ++i) {
1726 MachineInstrBuilder PHI(*MF, FuncInfo->PHINodesToUpdate[i].first);
1729 if (!FuncInfo->MBB->isSuccessor(PHI->getParent()))
1731 PHI.addReg(FuncInfo->PHINodesToUpdate[i].second).addMBB(FuncInfo->MBB);
1741 FuncInfo->MBB = ParentMBB;
1742 FuncInfo->InsertPt =
1770 FuncInfo->MBB = ParentMBB;
1771 FuncInfo->InsertPt = ParentMBB->end();
1780 FuncInfo->MBB = FailureMBB;
1781 FuncInfo->InsertPt = FailureMBB->end();
1797 FuncInfo->MBB = BTB.Parent;
1798 FuncInfo->InsertPt = FuncInfo->MBB->end();
1800 SDB->visitBitTestHeader(BTB, FuncInfo->MBB);
1810 FuncInfo->MBB = BTB.Cases[j].ThisBB;
1811 FuncInfo->InsertPt = FuncInfo->MBB->end();
1836 FuncInfo->MBB);
1850 for (unsigned pi = 0, pe = FuncInfo->PHINodesToUpdate.size();
1852 MachineInstrBuilder PHI(*MF, FuncInfo->PHINodesToUpdate[pi].first);
1859 PHI.addReg(FuncInfo->PHINodesToUpdate[pi].second).addMBB(BTB.Parent);
1861 PHI.addReg(FuncInfo->PHINodesToUpdate[pi].second)
1870 PHI.addReg(FuncInfo->PHINodesToUpdate[pi].second).addMBB(cBB);
1883 FuncInfo->MBB = SDB->SL->JTCases[i].first.HeaderBB;
1884 FuncInfo->InsertPt = FuncInfo->MBB->end();
1887 SDB->SL->JTCases[i].first, FuncInfo->MBB);
1894 FuncInfo->MBB = SDB->SL->JTCases[i].second.MBB;
1895 FuncInfo->InsertPt = FuncInfo->MBB->end();
1903 for (unsigned pi = 0, pe = FuncInfo->PHINodesToUpdate.size();
1905 MachineInstrBuilder PHI(*MF, FuncInfo->PHINodesToUpdate[pi].first);
1911 PHI.addReg(FuncInfo->PHINodesToUpdate[pi].second)
1914 if (FuncInfo->MBB->isSuccessor(PHIBB))
1915 PHI.addReg(FuncInfo->PHINodesToUpdate[pi].second).addMBB(FuncInfo->MBB);
1924 FuncInfo->MBB = SDB->SL->SwitchCases[i].ThisBB;
1925 FuncInfo->InsertPt = FuncInfo->MBB->end();
1933 // Emit the code. Note that this could result in FuncInfo->MBB being split.
1934 SDB->visitSwitchCase(SDB->SL->SwitchCases[i], FuncInfo->MBB);
1941 MachineBasicBlock *ThisBB = FuncInfo->MBB;
1948 FuncInfo->MBB = Succs[i];
1949 FuncInfo->InsertPt = FuncInfo->MBB->end();
1950 // FuncInfo->MBB may have been removed from the CFG if a branch was
1952 if (ThisBB->isSuccessor(FuncInfo->MBB)) {
1954 MBBI = FuncInfo->MBB->begin(), MBBE = FuncInfo->MBB->end();
1959 assert(pn != FuncInfo->PHINodesToUpdate.size() &&
1961 if (FuncInfo->PHINodesToUpdate[pn].first == PHI) {
1962 PHI.addReg(FuncInfo->PHINodesToUpdate[pn].second).addMBB(ThisBB);