Lines Matching defs:LiveSet

667               VarFragMap &LiveSet) {
712 auto FragIt = LiveSet.find(Var);
715 if (FragIt == LiveSet.end()) {
717 auto P = LiveSet.try_emplace(Var, FragsInMemMap(IntervalMapAlloc));
830 void process(BasicBlock &BB, VarFragMap &LiveSet) {
836 addDef(Loc, &DVR, *I.getParent(), LiveSet);
842 addDef(Loc, &I, *I.getParent(), LiveSet);
931 // the terminator LiveSet is the LiveOut set for BB.
933 VarFragMap LiveSet = LiveIn[BB];
936 process(*BB, LiveSet);
939 if (!varFragMapsAreEqual(LiveOut[BB], LiveSet)) {
942 LiveOut[BB] = std::move(LiveSet);
1341 /// Process the instructions in \p BB updating \p LiveSet along the way. \p
1342 /// LiveSet must be initialized with the current live-in locations before
1344 void process(BasicBlock &BB, BlockInfo *LiveSet);
1346 /// Methods to process instructions in order to update the LiveSet (current
1349 void processNonDbgInstruction(Instruction &I, BlockInfo *LiveSet);
1350 void processDbgInstruction(DbgInfoIntrinsic &I, BlockInfo *LiveSet);
1351 /// Update \p LiveSet after encountering an instruction with a DIAssignID
1353 void processTaggedInstruction(Instruction &I, BlockInfo *LiveSet);
1354 /// Update \p LiveSet after encountering an instruciton without a DIAssignID
1356 void processUntaggedInstruction(Instruction &I, BlockInfo *LiveSet);
1357 void processDbgAssign(AssignRecord Assign, BlockInfo *LiveSet);
1358 void processDbgVariableRecord(DbgVariableRecord &DVR, BlockInfo *LiveSet);
1361 BlockInfo *LiveSet);
1363 void addMemDef(BlockInfo *LiveSet, VariableID Var, const Assignment &AV);
1365 void addDbgDef(BlockInfo *LiveSet, VariableID Var, const Assignment &AV);
1369 void setLocKind(BlockInfo *LiveSet, VariableID Var, LocKind K);
1372 LocKind getLocKind(BlockInfo *LiveSet, VariableID Var);
1374 bool hasVarWithAssignment(BlockInfo *LiveSet, BlockInfo::AssignmentKind Kind,
1409 void AssignmentTrackingLowering::setLocKind(BlockInfo *LiveSet, VariableID Var,
1411 auto SetKind = [this](BlockInfo *LiveSet, VariableID Var, LocKind K) {
1412 LiveSet->setLocKind(Var, K);
1415 SetKind(LiveSet, Var, K);
1419 SetKind(LiveSet, Frag, K);
1423 AssignmentTrackingLowering::getLocKind(BlockInfo *LiveSet, VariableID Var) {
1424 return LiveSet->getLocKind(Var);
1427 void AssignmentTrackingLowering::addMemDef(BlockInfo *LiveSet, VariableID Var,
1429 LiveSet->setAssignment(BlockInfo::Stack, Var, AV);
1437 LiveSet->setAssignment(BlockInfo::Stack, Frag, FragAV);
1440 void AssignmentTrackingLowering::addDbgDef(BlockInfo *LiveSet, VariableID Var,
1442 LiveSet->setAssignment(BlockInfo::Debug, Var, AV);
1450 LiveSet->setAssignment(BlockInfo::Debug, Frag, FragAV);
1469 BlockInfo *LiveSet, BlockInfo::AssignmentKind Kind, VariableID Var,
1471 if (!LiveSet->hasAssignment(Kind, Var, AV))
1477 if (!LiveSet->hasAssignment(Kind, Frag, AV))
1599 Instruction &I, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1601 processTaggedInstruction(I, LiveSet);
1603 processUntaggedInstruction(I, LiveSet);
1607 Instruction &I, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1632 addMemDef(LiveSet, Var, Assignment::makeNoneOrPhi());
1633 addDbgDef(LiveSet, Var, Assignment::makeNoneOrPhi());
1634 setLocKind(LiveSet, Var, LocKind::Mem);
1676 Instruction &I, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1695 addMemDef(LiveSet, Var, AV);
1698 LLVM_DEBUG(dbgs() << " LiveLoc " << locStr(getLocKind(LiveSet, Var))
1703 if (hasVarWithAssignment(LiveSet, BlockInfo::Debug, Var, AV)) {
1709 LiveSet->DebugValue[static_cast<unsigned>(Var)].dump(dbgs());
1711 setLocKind(LiveSet, Var, LocKind::Mem);
1721 LocKind PrevLoc = getLocKind(LiveSet, Var);
1727 setLocKind(LiveSet, Var, LocKind::Val);
1733 Assignment DbgAV = LiveSet->getAssignment(BlockInfo::Debug, Var);
1737 setLocKind(LiveSet, Var, LocKind::None);
1742 setLocKind(LiveSet, Var, LocKind::Val);
1755 setLocKind(LiveSet, Var, LocKind::None);
1766 BlockInfo *LiveSet) {
1775 addDbgDef(LiveSet, Var, AV);
1778 LLVM_DEBUG(dbgs() << " LiveLoc " << locStr(getLocKind(LiveSet, Var))
1783 if (hasVarWithAssignment(LiveSet, BlockInfo::Stack, Var, AV)) {
1797 setLocKind(LiveSet, Var, Kind);
1803 setLocKind(LiveSet, Var, LocKind::Val);
1814 BlockInfo *LiveSet) {
1829 addDbgDef(LiveSet, Var, AV);
1832 LLVM_DEBUG(dbgs() << " LiveLoc " << locStr(getLocKind(LiveSet, Var))
1835 setLocKind(LiveSet, Var, LocKind::Val);
1850 DbgInfoIntrinsic &I, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1860 processDbgAssign(DAI, LiveSet);
1862 processDbgValue(DVI, LiveSet);
1865 DbgVariableRecord &DVR, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1871 processDbgAssign(&DVR, LiveSet);
1873 processDbgValue(&DVR, LiveSet);
1890 void AssignmentTrackingLowering::process(BasicBlock &BB, BlockInfo *LiveSet) {
1911 processNonDbgInstruction(*II, LiveSet);
1912 assert(LiveSet->isValid());
1925 processDbgVariableRecord(DVR, LiveSet);
1926 assert(LiveSet->isValid());
1935 processDbgInstruction(*Dbg, LiveSet);
1936 assert(LiveSet->isValid());
1947 LocKind Loc = getLocKind(LiveSet, Var);
2351 // LiveSet is the LiveOut set for BB.
2352 BlockInfo LiveSet = LiveIn[BB];
2355 process(*BB, &LiveSet);
2358 if (LiveOut[BB] != LiveSet) {
2361 LiveOut[BB] = std::move(LiveSet);