Lines Matching defs:LocKind

997   /// LocKind is a join-semilattice with the partial order:
1015 enum class LocKind { Mem, Val, None };
1101 using LocMap = SmallVector<LocKind>;
1131 void emitDbgValue(LocKind Kind, AssignRecord Source, VarLocInsertPt After);
1133 void emitDbgValue(LocKind Kind, const T Source, VarLocInsertPt After);
1154 /// dominating assignment in StackHomeValue (LocKind::Mem), DebugValue
1155 /// (LocKind::Val), or neither (LocKind::None) is valid, in that order of
1190 LocKind getLocKind(VariableID Var) const {
1195 /// Set LocKind for \p Var only: does not set LocKind for VariableIDs of
1197 void setLocKind(VariableID Var, LocKind K) {
1246 LiveLoc.insert(LiveLoc.begin(), NumVars, LocKind::None);
1337 static LocKind joinKind(LocKind A, LocKind B);
1369 /// Set the LocKind for \p Var.
1370 void setLocKind(BlockInfo *LiveSet, VariableID Var, LocKind K);
1371 /// Get the live LocKind for a \p Var. Requires addMemDef or addDbgDef to
1373 LocKind getLocKind(BlockInfo *LiveSet, VariableID Var);
1411 LocKind K) {
1412 auto SetKind = [this](BlockInfo *LiveSet, VariableID Var, LocKind K) {
1418 // Update the LocKind for all fragments contained within Var.
1423 AssignmentTrackingLowering::LocKind
1484 const char *locStr(AssignmentTrackingLowering::LocKind Loc) {
1485 using LocKind = AssignmentTrackingLowering::LocKind;
1487 case LocKind::Val:
1489 case LocKind::Mem:
1491 case LocKind::None:
1494 llvm_unreachable("unknown LocKind");
1527 AssignmentTrackingLowering::LocKind Kind,
1536 AssignmentTrackingLowering::LocKind Kind, const T Source,
1561 if (Kind == LocKind::Mem) {
1567 Kind = LocKind::Val;
1588 if (Kind == LocKind::Val) {
1593 if (Kind == LocKind::None) {
1635 setLocKind(LiveSet, Var, LocKind::Mem);
1636 LLVM_DEBUG(dbgs() << " setting Stack LocKind to: " << locStr(LocKind::Mem)
1712 setLocKind(LiveSet, Var, LocKind::Mem);
1713 emitDbgValue(LocKind::Mem, Assign, &I);
1720 // look at the live LocKind for the variable and determine an appropriate
1722 LocKind PrevLoc = getLocKind(LiveSet, Var);
1724 case LocKind::Val: {
1728 setLocKind(LiveSet, Var, LocKind::Val);
1730 case LocKind::Mem: {
1738 setLocKind(LiveSet, Var, LocKind::None);
1739 emitDbgValue(LocKind::None, Assign, &I);
1743 setLocKind(LiveSet, Var, LocKind::Val);
1745 emitDbgValue(LocKind::Val, DbgAV.Source, &I);
1748 emitDbgValue(LocKind::None, Assign, &I);
1752 case LocKind::None: {
1756 setLocKind(LiveSet, Var, LocKind::None);
1788 LocKind Kind;
1793 Kind = LocKind::Val;
1796 Kind = LocKind::Mem;
1804 setLocKind(LiveSet, Var, LocKind::Val);
1805 emitDbgValue(LocKind::Val, DbgAssign, DbgAssign);
1836 setLocKind(LiveSet, Var, LocKind::Val);
1837 emitDbgValue(LocKind::Val, DbgValue, DbgValue);
1948 LocKind Loc = getLocKind(LiveSet, Var);
1949 // If a variable's LocKind is anything other than LocKind::Mem then we
1954 // case, we've already hit this codepath when we set the LocKind to Val
1956 if (Loc != LocKind::Mem) {
1966 AssignmentTrackingLowering::LocKind
1967 AssignmentTrackingLowering::joinKind(LocKind A, LocKind B) {
1970 return A == B ? A : LocKind::None;
2331 // terminates can be put together by looking at the comments around LocKind,