Lines Matching defs:DII

627   for (auto *DII : DbgUsers)
628 DII->setKillLocation();
1634 /// (or fragment of the variable) described by \p DII.
1641 static bool valueCoversEntireFragment(Type *ValTy, DbgVariableIntrinsic *DII) {
1642 const DataLayout &DL = DII->getDataLayout();
1645 DII->getExpression()->getActiveBits(DII->getVariable()))
1651 if (DII->isAddressOfVariable()) {
1652 // DII should have exactly 1 location when it is an address.
1653 assert(DII->getNumVariableLocationOps() == 1 &&
1656 dyn_cast_or_null<AllocaInst>(DII->getVariableLocationOp(0))) {
1731 void llvm::ConvertDebugDeclareToDebugValue(DbgVariableIntrinsic *DII,
1733 assert(DII->isAddressOfVariable() || isa<DbgAssignIntrinsic>(DII));
1734 auto *DIVar = DII->getVariable();
1736 auto *DIExpr = DII->getExpression();
1739 DebugLoc NewLoc = getDebugValueLoc(DII);
1743 // conversion if the value covers the entire fragment of DII.
1755 valueCoversEntireFragment(DV->getType(), DII));
1764 LLVM_DEBUG(dbgs() << "Failed to convert dbg.declare to dbg.value: " << *DII
1780 void llvm::InsertDebugValueAtStoreLoc(DbgVariableIntrinsic *DII, StoreInst *SI,
1782 auto *DIVar = DII->getVariable();
1784 auto *DIExpr = DII->getExpression();
1788 DebugLoc NewLoc = getDebugValueLoc(DII);
1796 void llvm::ConvertDebugDeclareToDebugValue(DbgVariableIntrinsic *DII,
1798 auto *DIVar = DII->getVariable();
1799 auto *DIExpr = DII->getExpression();
1802 if (!valueCoversEntireFragment(LI->getType(), DII)) {
1807 << *DII << '\n');
1811 DebugLoc NewLoc = getDebugValueLoc(DII);
1833 // conversion if the value covers the entire fragment of DII.
1884 void llvm::ConvertDebugDeclareToDebugValue(DbgVariableIntrinsic *DII,
1886 auto *DIVar = DII->getVariable();
1887 auto *DIExpr = DII->getExpression();
1893 if (!valueCoversEntireFragment(APN->getType(), DII)) {
1898 << *DII << '\n');
1905 DebugLoc NewLoc = getDebugValueLoc(DII);
2210 auto ReplaceOne = [&](auto *DII) {
2211 assert(DII->getVariable() && "Missing variable");
2212 auto *DIExpr = DII->getExpression();
2214 DII->setExpression(DIExpr);
2215 DII->replaceVariableLocationOp(Address, NewAddress);
2326 for (auto *DII : DbgUsers) {
2327 if (auto *DAI = dyn_cast<DbgAssignIntrinsic>(DII)) {
2338 bool StackValue = isa<DbgValueInst>(DII);
2339 auto DIILocation = DII->location_ops();
2344 // `I` may appear more than once in DII's location ops, and each use of `I`
2349 DIExpression *SalvagedExpr = DII->getExpression();
2368 DII->replaceVariableLocationOp(&I, Op0);
2371 DII->setExpression(SalvagedExpr);
2372 } else if (isa<DbgValueInst>(DII) && IsValidSalvageExpr &&
2373 DII->getNumVariableLocationOps() + AdditionalValues.size() <=
2375 DII->addVariableLocationOps(AdditionalValues, SalvagedExpr);
2380 DII->setKillLocation();
2382 LLVM_DEBUG(dbgs() << "SALVAGE: " << *DII << '\n');
2454 for (auto *DII : DbgUsers)
2455 DII->setKillLocation();
2673 function_ref<DbgValReplacement(DbgVariableIntrinsic &DII)> RewriteExpr,
2690 for (auto *DII : Users) {
2693 if (DomPointAfterFrom && DII->getNextNonDebugInstruction() == &DomPoint) {
2694 LLVM_DEBUG(dbgs() << "MOVE: " << *DII << '\n');
2695 DII->moveAfter(&DomPoint);
2700 } else if (!DT.dominates(&DomPoint, DII)) {
2701 UndefOrSalvage.insert(DII);
2726 for (auto *DII : Users) {
2727 if (UndefOrSalvage.count(DII))
2730 DbgValReplacement DVRepl = RewriteExpr(*DII);
2734 DII->replaceVariableLocationOp(&From, &To);
2735 DII->setExpression(*DVRepl);
2736 LLVM_DEBUG(dbgs() << "REWRITE: " << *DII << '\n');
2798 auto Identity = [&](DbgVariableIntrinsic &DII) -> DbgValReplacement {
2799 return DII.getExpression();
2825 auto SignOrZeroExt = [&](DbgVariableIntrinsic &DII) -> DbgValReplacement {
2826 DILocalVariable *Var = DII.getVariable();
2834 return DIExpression::appendExt(DII.getExpression(), ToBits, FromBits,
3700 for (auto *DII : DbgUsers)
3701 DII->eraseFromParent();