Lines Matching defs:DVR
551 void visit(DbgVariableRecord &DVR);
645 void verifyFnArgs(const DbgVariableRecord &DVR);
697 if (auto *DVR = dyn_cast<DbgVariableRecord>(&DR)) {
698 visit(*DVR);
701 verifyFragmentExpression(*DVR);
702 verifyNotEntryValue(*DVR);
4952 for (DbgVariableRecord *DVR :
4954 CheckDI(DVR->isDbgAssign(),
4955 "!DIAssignID should only be used by Assign DVRs.", MD, DVR);
4956 CheckDI(DVR->getFunction() == I.getFunction(),
4957 "DVRAssign not in same function as inst", DVR, &I);
6589 void Verifier::visit(DbgVariableRecord &DVR) {
6590 BasicBlock *BB = DVR.getParent();
6593 CheckDI(DVR.getType() == DbgVariableRecord::LocationType::Value ||
6594 DVR.getType() == DbgVariableRecord::LocationType::Declare ||
6595 DVR.getType() == DbgVariableRecord::LocationType::Assign,
6596 "invalid #dbg record type", &DVR, DVR.getType());
6601 auto *MD = DVR.getRawLocation();
6604 "invalid #dbg record address/value", &DVR, MD);
6610 CheckDI(isa_and_nonnull<DILocalVariable>(DVR.getRawVariable()),
6611 "invalid #dbg record variable", &DVR, DVR.getRawVariable());
6612 visitMDNode(*DVR.getRawVariable(), AreDebugLocsAllowed::No);
6614 CheckDI(isa_and_nonnull<DIExpression>(DVR.getRawExpression()),
6615 "invalid #dbg record expression", &DVR, DVR.getRawExpression());
6616 visitMDNode(*DVR.getExpression(), AreDebugLocsAllowed::No);
6618 if (DVR.isDbgAssign()) {
6619 CheckDI(isa_and_nonnull<DIAssignID>(DVR.getRawAssignID()),
6620 "invalid #dbg_assign DIAssignID", &DVR, DVR.getRawAssignID());
6621 visitMDNode(*cast<DIAssignID>(DVR.getRawAssignID()),
6624 const auto *RawAddr = DVR.getRawAddress();
6631 "invalid #dbg_assign address", &DVR, DVR.getRawAddress());
6635 CheckDI(isa_and_nonnull<DIExpression>(DVR.getRawAddressExpression()),
6636 "invalid #dbg_assign address expression", &DVR,
6637 DVR.getRawAddressExpression());
6638 visitMDNode(*DVR.getAddressExpression(), AreDebugLocsAllowed::No);
6640 // All of the linked instructions should be in the same function as DVR.
6641 for (Instruction *I : at::getAssignmentInsts(&DVR))
6642 CheckDI(DVR.getFunction() == I->getFunction(),
6643 "inst not in same function as #dbg_assign", I, &DVR);
6647 DILocalVariable *Var = DVR.getVariable();
6651 auto *DLNode = DVR.getDebugLoc().getAsMDNode();
6653 &DVR, DLNode);
6654 DILocation *Loc = DVR.getDebugLoc();
6664 &DVR, BB, F, Var, Var->getScope()->getSubprogram(), Loc,
6667 verifyFnArgs(DVR);
7023 void Verifier::verifyFragmentExpression(const DbgVariableRecord &DVR) {
7024 DILocalVariable *V = dyn_cast_or_null<DILocalVariable>(DVR.getRawVariable());
7025 DIExpression *E = dyn_cast_or_null<DIExpression>(DVR.getRawExpression());
7045 verifyFragmentExpression(*V, *Fragment, &DVR);
7093 void Verifier::verifyFnArgs(const DbgVariableRecord &DVR) {
7101 if (DVR.getDebugLoc()->getInlinedAt())
7104 DILocalVariable *Var = DVR.getVariable();
7118 CheckDI(!Prev || (Prev == Var), "conflicting debug info for argument", &DVR,
7145 void Verifier::verifyNotEntryValue(const DbgVariableRecord &DVR) {
7146 DIExpression *E = dyn_cast_or_null<DIExpression>(DVR.getRawExpression());
7152 if (isa<ValueAsMetadata>(DVR.getRawLocation())) {
7153 Value *VarValue = DVR.getVariableLocationOp(0);
7166 &DVR);