Lines Matching defs:LiveSet
668 VarFragMap &LiveSet) {
713 auto FragIt = LiveSet.find(Var);
716 if (FragIt == LiveSet.end()) {
718 auto P = LiveSet.try_emplace(Var, FragsInMemMap(IntervalMapAlloc));
831 void process(BasicBlock &BB, VarFragMap &LiveSet) {
837 addDef(Loc, &DVR, *I.getParent(), LiveSet);
843 addDef(Loc, &I, *I.getParent(), LiveSet);
932 // the terminator LiveSet is the LiveOut set for BB.
934 VarFragMap LiveSet = LiveIn[BB];
937 process(*BB, LiveSet);
940 if (!varFragMapsAreEqual(LiveOut[BB], LiveSet)) {
943 LiveOut[BB] = std::move(LiveSet);
1342 /// Process the instructions in \p BB updating \p LiveSet along the way. \p
1343 /// LiveSet must be initialized with the current live-in locations before
1345 void process(BasicBlock &BB, BlockInfo *LiveSet);
1347 /// Methods to process instructions in order to update the LiveSet (current
1350 void processNonDbgInstruction(Instruction &I, BlockInfo *LiveSet);
1351 void processDbgInstruction(DbgInfoIntrinsic &I, BlockInfo *LiveSet);
1352 /// Update \p LiveSet after encountering an instruction with a DIAssignID
1354 void processTaggedInstruction(Instruction &I, BlockInfo *LiveSet);
1355 /// Update \p LiveSet after encountering an instruciton without a DIAssignID
1357 void processUntaggedInstruction(Instruction &I, BlockInfo *LiveSet);
1358 void processDbgAssign(AssignRecord Assign, BlockInfo *LiveSet);
1359 void processDbgVariableRecord(DbgVariableRecord &DVR, BlockInfo *LiveSet);
1362 BlockInfo *LiveSet);
1364 void addMemDef(BlockInfo *LiveSet, VariableID Var, const Assignment &AV);
1366 void addDbgDef(BlockInfo *LiveSet, VariableID Var, const Assignment &AV);
1370 void setLocKind(BlockInfo *LiveSet, VariableID Var, LocKind K);
1373 LocKind getLocKind(BlockInfo *LiveSet, VariableID Var);
1375 bool hasVarWithAssignment(BlockInfo *LiveSet, BlockInfo::AssignmentKind Kind,
1410 void AssignmentTrackingLowering::setLocKind(BlockInfo *LiveSet, VariableID Var,
1412 auto SetKind = [this](BlockInfo *LiveSet, VariableID Var, LocKind K) {
1413 LiveSet->setLocKind(Var, K);
1416 SetKind(LiveSet, Var, K);
1420 SetKind(LiveSet, Frag, K);
1424 AssignmentTrackingLowering::getLocKind(BlockInfo *LiveSet, VariableID Var) {
1425 return LiveSet->getLocKind(Var);
1428 void AssignmentTrackingLowering::addMemDef(BlockInfo *LiveSet, VariableID Var,
1430 LiveSet->setAssignment(BlockInfo::Stack, Var, AV);
1438 LiveSet->setAssignment(BlockInfo::Stack, Frag, FragAV);
1441 void AssignmentTrackingLowering::addDbgDef(BlockInfo *LiveSet, VariableID Var,
1443 LiveSet->setAssignment(BlockInfo::Debug, Var, AV);
1451 LiveSet->setAssignment(BlockInfo::Debug, Frag, FragAV);
1470 BlockInfo *LiveSet, BlockInfo::AssignmentKind Kind, VariableID Var,
1472 if (!LiveSet->hasAssignment(Kind, Var, AV))
1478 if (!LiveSet->hasAssignment(Kind, Frag, AV))
1600 Instruction &I, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1602 processTaggedInstruction(I, LiveSet);
1604 processUntaggedInstruction(I, LiveSet);
1608 Instruction &I, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1633 addMemDef(LiveSet, Var, Assignment::makeNoneOrPhi());
1634 addDbgDef(LiveSet, Var, Assignment::makeNoneOrPhi());
1635 setLocKind(LiveSet, Var, LocKind::Mem);
1677 Instruction &I, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1696 addMemDef(LiveSet, Var, AV);
1699 LLVM_DEBUG(dbgs() << " LiveLoc " << locStr(getLocKind(LiveSet, Var))
1704 if (hasVarWithAssignment(LiveSet, BlockInfo::Debug, Var, AV)) {
1710 LiveSet->DebugValue[static_cast<unsigned>(Var)].dump(dbgs());
1712 setLocKind(LiveSet, Var, LocKind::Mem);
1722 LocKind PrevLoc = getLocKind(LiveSet, Var);
1728 setLocKind(LiveSet, Var, LocKind::Val);
1734 Assignment DbgAV = LiveSet->getAssignment(BlockInfo::Debug, Var);
1738 setLocKind(LiveSet, Var, LocKind::None);
1743 setLocKind(LiveSet, Var, LocKind::Val);
1756 setLocKind(LiveSet, Var, LocKind::None);
1767 BlockInfo *LiveSet) {
1776 addDbgDef(LiveSet, Var, AV);
1779 LLVM_DEBUG(dbgs() << " LiveLoc " << locStr(getLocKind(LiveSet, Var))
1784 if (hasVarWithAssignment(LiveSet, BlockInfo::Stack, Var, AV)) {
1798 setLocKind(LiveSet, Var, Kind);
1804 setLocKind(LiveSet, Var, LocKind::Val);
1815 BlockInfo *LiveSet) {
1830 addDbgDef(LiveSet, Var, AV);
1833 LLVM_DEBUG(dbgs() << " LiveLoc " << locStr(getLocKind(LiveSet, Var))
1836 setLocKind(LiveSet, Var, LocKind::Val);
1851 DbgInfoIntrinsic &I, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1861 processDbgAssign(DAI, LiveSet);
1863 processDbgValue(DVI, LiveSet);
1866 DbgVariableRecord &DVR, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1872 processDbgAssign(&DVR, LiveSet);
1874 processDbgValue(&DVR, LiveSet);
1891 void AssignmentTrackingLowering::process(BasicBlock &BB, BlockInfo *LiveSet) {
1912 processNonDbgInstruction(*II, LiveSet);
1913 assert(LiveSet->isValid());
1926 processDbgVariableRecord(DVR, LiveSet);
1927 assert(LiveSet->isValid());
1936 processDbgInstruction(*Dbg, LiveSet);
1937 assert(LiveSet->isValid());
1948 LocKind Loc = getLocKind(LiveSet, Var);
2352 // LiveSet is the LiveOut set for BB.
2353 BlockInfo LiveSet = LiveIn[BB];
2356 process(*BB, &LiveSet);
2359 if (LiveOut[BB] != LiveSet) {
2362 LiveOut[BB] = std::move(LiveSet);