Lines Matching refs:FuncInfo

346     : MachineFunctionPass(ID), TM(tm), FuncInfo(new FunctionLoweringInfo()),  in SelectionDAGISel()
349 SDB(std::make_unique<SelectionDAGBuilder>(*CurDAG, *FuncInfo, *SwiftError, in SelectionDAGISel()
467 FuncInfo->set(Fn, *MF, CurDAG); in runOnMachineFunction()
476 FuncInfo->BPI = &getAnalysis<BranchProbabilityInfoWrapperPass>().getBPI(); in runOnMachineFunction()
478 FuncInfo->BPI = nullptr; in runOnMachineFunction()
489 FuncInfo->SplitCSR = false; in runOnMachineFunction()
494 FuncInfo->SplitCSR = true; in runOnMachineFunction()
506 FuncInfo->SplitCSR = false; in runOnMachineFunction()
512 if (FuncInfo->SplitCSR) in runOnMachineFunction()
529 for (DenseMap<Register, Register>::iterator I = FuncInfo->RegFixups.begin(), in runOnMachineFunction()
530 E = FuncInfo->RegFixups.end(); in runOnMachineFunction()
537 DenseMap<Register, Register>::iterator J = FuncInfo->RegFixups.find(To); in runOnMachineFunction()
562 if (FuncInfo->SplitCSR) { in runOnMachineFunction()
579 if (!FuncInfo->ArgDbgValues.empty()) in runOnMachineFunction()
585 for (unsigned i = 0, e = FuncInfo->ArgDbgValues.size(); i != e; ++i) { in runOnMachineFunction()
586 MachineInstr *MI = FuncInfo->ArgDbgValues[e - i - 1]; in runOnMachineFunction()
691 FuncInfo->clear(); in runOnMachineFunction()
774 FuncInfo->AddLiveOutRegInfo(DestReg, NumSignBits, Known); in ComputeLiveOutVRegInfo()
785 getAnalysis<TargetTransformInfoWrapperPass>().getTTI(*FuncInfo->Fn); in CodeGenAndEmitDAG()
794 FuncInfo->MBB->getBasicBlock()->getName()); in CodeGenAndEmitDAG()
803 (MF->getName() + ":" + FuncInfo->MBB->getBasicBlock()->getName()).str(); in CodeGenAndEmitDAG()
806 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
826 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
848 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
872 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
890 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
906 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
926 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
946 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
966 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
990 << printMBBReference(*FuncInfo->MBB) << " '" << BlockName in CodeGenAndEmitDAG()
1002 Scheduler->Run(CurDAG, FuncInfo->MBB); in CodeGenAndEmitDAG()
1010 MachineBasicBlock *FirstMBB = FuncInfo->MBB, *LastMBB; in CodeGenAndEmitDAG()
1017 LastMBB = FuncInfo->MBB = Scheduler->EmitSchedule(FuncInfo->InsertPt); in CodeGenAndEmitDAG()
1121 << printMBBReference(*FuncInfo->MBB) << " '" in DoInstructionSelection()
1122 << FuncInfo->MBB->getName() << "'\n"); in DoInstructionSelection()
1275 MachineBasicBlock *MBB = FuncInfo->MBB; in PrepareEHLandingPad()
1276 const Constant *PersonalityFn = FuncInfo->Fn->getPersonalityFn(); in PrepareEHLandingPad()
1293 unsigned VReg = FuncInfo->getCatchPadExceptionPointerVReg(CPI, PtrRC); in PrepareEHLandingPad()
1294 BuildMI(*MBB, FuncInfo->InsertPt, SDB->getCurDebugLoc(), in PrepareEHLandingPad()
1307 BuildMI(*MBB, FuncInfo->InsertPt, SDB->getCurDebugLoc(), II) in PrepareEHLandingPad()
1324 FuncInfo->ExceptionPointerVirtReg = MBB->addLiveIn(Reg, PtrRC); in PrepareEHLandingPad()
1327 FuncInfo->ExceptionSelectorVirtReg = MBB->addLiveIn(Reg, PtrRC); in PrepareEHLandingPad()
1374 const FunctionLoweringInfo &FuncInfo) { in isFoldedOrDeadInstruction() argument
1379 !FuncInfo.isExportedInst(I); // Exported instrs must be computed. in isFoldedOrDeadInstruction()
1382 static bool processIfEntryValueDbgDeclare(FunctionLoweringInfo &FuncInfo, in processIfEntryValueDbgDeclare() argument
1389 auto ArgIt = FuncInfo.ValueMap.find(Arg); in processIfEntryValueDbgDeclare()
1390 if (ArgIt == FuncInfo.ValueMap.end()) in processIfEntryValueDbgDeclare()
1395 for (auto [PhysReg, VirtReg] : FuncInfo.RegInfo->liveins()) in processIfEntryValueDbgDeclare()
1399 FuncInfo.MF->setVariableDbgInfo(Var, Expr, PhysReg, DbgLoc); in processIfEntryValueDbgDeclare()
1408 static bool processDbgDeclare(FunctionLoweringInfo &FuncInfo, in processDbgDeclare() argument
1417 if (processIfEntryValueDbgDeclare(FuncInfo, Address, Expr, Var, DbgLoc)) in processDbgDeclare()
1420 MachineFunction *MF = FuncInfo.MF; in processDbgDeclare()
1436 auto SI = FuncInfo.StaticAllocaMap.find(AI); in processDbgDeclare()
1437 if (SI != FuncInfo.StaticAllocaMap.end()) in processDbgDeclare()
1440 FI = FuncInfo.getArgumentFrameIndex(Arg); in processDbgDeclare()
1458 static void processDbgDeclares(FunctionLoweringInfo &FuncInfo) { in processDbgDeclares() argument
1459 for (const auto &I : instructions(*FuncInfo.Fn)) { in processDbgDeclares()
1461 if (DI && processDbgDeclare(FuncInfo, DI->getAddress(), DI->getExpression(), in processDbgDeclares()
1463 FuncInfo.PreprocessedDbgDeclares.insert(DI); in processDbgDeclares()
1467 processDbgDeclare(FuncInfo, DPV.getVariableLocationOp(0), in processDbgDeclares()
1470 FuncInfo.PreprocessedDPVDeclares.insert(&DPV); in processDbgDeclares()
1478 static void processSingleLocVars(FunctionLoweringInfo &FuncInfo, in processSingleLocVars() argument
1484 processDbgDeclare(FuncInfo, It->Values.getVariableLocationOp(0), It->Expr, in processSingleLocVars()
1495 FastIS = TLI->createFastISel(*FuncInfo, LibInfo); in SelectAllBasicBlocks()
1506 FuncInfo->MBB = FuncInfo->MBBMap[&Fn.getEntryBlock()]; in SelectAllBasicBlocks()
1507 FuncInfo->InsertPt = FuncInfo->MBB->begin(); in SelectAllBasicBlocks()
1509 CurDAG->setFunctionLoweringInfo(FuncInfo.get()); in SelectAllBasicBlocks()
1538 if (FuncInfo->InsertPt != FuncInfo->MBB->begin()) in SelectAllBasicBlocks()
1539 FastIS->setLastLocalValue(&*std::prev(FuncInfo->InsertPt)); in SelectAllBasicBlocks()
1547 FastIS->setLastLocalValue(&*std::prev(FuncInfo->InsertPt)); in SelectAllBasicBlocks()
1552 processSingleLocVars(*FuncInfo, CurDAG->getFunctionVarLocs()); in SelectAllBasicBlocks()
1554 processDbgDeclares(*FuncInfo); in SelectAllBasicBlocks()
1563 if (!FuncInfo->VisitedBBs.count(Pred)) { in SelectAllBasicBlocks()
1571 FuncInfo->ComputePHILiveOutRegInfo(&PN); in SelectAllBasicBlocks()
1574 FuncInfo->InvalidatePHILiveOutRegInfo(&PN); in SelectAllBasicBlocks()
1577 FuncInfo->VisitedBBs.insert(LLVMBB); in SelectAllBasicBlocks()
1585 FuncInfo->MBB = FuncInfo->MBBMap[LLVMBB]; in SelectAllBasicBlocks()
1586 if (!FuncInfo->MBB) in SelectAllBasicBlocks()
1590 FuncInfo->InsertPt = FuncInfo->MBB->end(); in SelectAllBasicBlocks()
1593 FuncInfo->ExceptionPointerVirtReg = 0; in SelectAllBasicBlocks()
1594 FuncInfo->ExceptionSelectorVirtReg = 0; in SelectAllBasicBlocks()
1607 SwiftError->preassignVRegs(FuncInfo->MBB, Begin, End); in SelectAllBasicBlocks()
1614 if (isFoldedOrDeadInstruction(Inst, *FuncInfo) || in SelectAllBasicBlocks()
1637 if (!isFoldedOrDeadInstruction(BeforeInst, *FuncInfo)) in SelectAllBasicBlocks()
1680 Register &R = FuncInfo->ValueMap[Inst]; in SelectAllBasicBlocks()
1682 R = FuncInfo->CreateRegs(Inst); in SelectAllBasicBlocks()
1686 MachineBasicBlock::iterator SavedInsertPt = FuncInfo->InsertPt; in SelectAllBasicBlocks()
1692 FastIS->removeDeadCode(SavedInsertPt, FuncInfo->MBB->end()); in SelectAllBasicBlocks()
1737 SDB->SPDescriptor.initialize(LLVMBB, FuncInfo->MBBMap[LLVMBB], in SelectAllBasicBlocks()
1756 if (FastIS && HadTailCall && FuncInfo->InsertPt != FuncInfo->MBB->end()) in SelectAllBasicBlocks()
1757 FastIS->removeDeadCode(FuncInfo->InsertPt, FuncInfo->MBB->end()); in SelectAllBasicBlocks()
1763 FuncInfo->PHINodesToUpdate.clear(); in SelectAllBasicBlocks()
1783 << FuncInfo->PHINodesToUpdate.size() << "\n"; in FinishBasicBlock()
1784 for (unsigned i = 0, e = FuncInfo->PHINodesToUpdate.size(); i != e; in FinishBasicBlock()
1786 << "Node " << i << " : (" << FuncInfo->PHINodesToUpdate[i].first in FinishBasicBlock()
1787 << ", " << FuncInfo->PHINodesToUpdate[i].second << ")\n"); in FinishBasicBlock()
1791 for (unsigned i = 0, e = FuncInfo->PHINodesToUpdate.size(); i != e; ++i) { in FinishBasicBlock()
1792 MachineInstrBuilder PHI(*MF, FuncInfo->PHINodesToUpdate[i].first); in FinishBasicBlock()
1795 if (!FuncInfo->MBB->isSuccessor(PHI->getParent())) in FinishBasicBlock()
1797 PHI.addReg(FuncInfo->PHINodesToUpdate[i].second).addMBB(FuncInfo->MBB); in FinishBasicBlock()
1807 FuncInfo->MBB = ParentMBB; in FinishBasicBlock()
1808 FuncInfo->InsertPt = in FinishBasicBlock()
1836 FuncInfo->MBB = ParentMBB; in FinishBasicBlock()
1837 FuncInfo->InsertPt = ParentMBB->end(); in FinishBasicBlock()
1846 FuncInfo->MBB = FailureMBB; in FinishBasicBlock()
1847 FuncInfo->InsertPt = FailureMBB->end(); in FinishBasicBlock()
1863 FuncInfo->MBB = BTB.Parent; in FinishBasicBlock()
1864 FuncInfo->InsertPt = FuncInfo->MBB->end(); in FinishBasicBlock()
1866 SDB->visitBitTestHeader(BTB, FuncInfo->MBB); in FinishBasicBlock()
1876 FuncInfo->MBB = BTB.Cases[j].ThisBB; in FinishBasicBlock()
1877 FuncInfo->InsertPt = FuncInfo->MBB->end(); in FinishBasicBlock()
1902 FuncInfo->MBB); in FinishBasicBlock()
1917 FuncInfo->PHINodesToUpdate) { in FinishBasicBlock()
1947 FuncInfo->MBB = SDB->SL->JTCases[i].first.HeaderBB; in FinishBasicBlock()
1948 FuncInfo->InsertPt = FuncInfo->MBB->end(); in FinishBasicBlock()
1951 SDB->SL->JTCases[i].first, FuncInfo->MBB); in FinishBasicBlock()
1958 FuncInfo->MBB = SDB->SL->JTCases[i].second.MBB; in FinishBasicBlock()
1959 FuncInfo->InsertPt = FuncInfo->MBB->end(); in FinishBasicBlock()
1967 for (unsigned pi = 0, pe = FuncInfo->PHINodesToUpdate.size(); in FinishBasicBlock()
1969 MachineInstrBuilder PHI(*MF, FuncInfo->PHINodesToUpdate[pi].first); in FinishBasicBlock()
1975 PHI.addReg(FuncInfo->PHINodesToUpdate[pi].second) in FinishBasicBlock()
1978 if (FuncInfo->MBB->isSuccessor(PHIBB)) in FinishBasicBlock()
1979 PHI.addReg(FuncInfo->PHINodesToUpdate[pi].second).addMBB(FuncInfo->MBB); in FinishBasicBlock()
1988 FuncInfo->MBB = SDB->SL->SwitchCases[i].ThisBB; in FinishBasicBlock()
1989 FuncInfo->InsertPt = FuncInfo->MBB->end(); in FinishBasicBlock()
1998 SDB->visitSwitchCase(SDB->SL->SwitchCases[i], FuncInfo->MBB); in FinishBasicBlock()
2005 MachineBasicBlock *ThisBB = FuncInfo->MBB; in FinishBasicBlock()
2012 FuncInfo->MBB = Succs[i]; in FinishBasicBlock()
2013 FuncInfo->InsertPt = FuncInfo->MBB->end(); in FinishBasicBlock()
2016 if (ThisBB->isSuccessor(FuncInfo->MBB)) { in FinishBasicBlock()
2018 MBBI = FuncInfo->MBB->begin(), MBBE = FuncInfo->MBB->end(); in FinishBasicBlock()
2023 assert(pn != FuncInfo->PHINodesToUpdate.size() && in FinishBasicBlock()
2025 if (FuncInfo->PHINodesToUpdate[pn].first == PHI) { in FinishBasicBlock()
2026 PHI.addReg(FuncInfo->PHINodesToUpdate[pn].second).addMBB(ThisBB); in FinishBasicBlock()