Lines Matching defs:DII
621 for (auto *DII : DbgUsers)
622 DII->setKillLocation();
1600 /// (or fragment of the variable) described by \p DII.
1607 static bool valueCoversEntireFragment(Type *ValTy, DbgVariableIntrinsic *DII) {
1608 const DataLayout &DL = DII->getDataLayout();
1611 DII->getExpression()->getActiveBits(DII->getVariable()))
1617 if (DII->isAddressOfVariable()) {
1618 // DII should have exactly 1 location when it is an address.
1619 assert(DII->getNumVariableLocationOps() == 1 &&
1622 dyn_cast_or_null<AllocaInst>(DII->getVariableLocationOp(0))) {
1697 void llvm::ConvertDebugDeclareToDebugValue(DbgVariableIntrinsic *DII,
1699 assert(DII->isAddressOfVariable() || isa<DbgAssignIntrinsic>(DII));
1700 auto *DIVar = DII->getVariable();
1702 auto *DIExpr = DII->getExpression();
1705 DebugLoc NewLoc = getDebugValueLoc(DII);
1709 // conversion if the value covers the entire fragment of DII.
1721 valueCoversEntireFragment(DV->getType(), DII));
1730 LLVM_DEBUG(dbgs() << "Failed to convert dbg.declare to dbg.value: " << *DII
1742 void llvm::ConvertDebugDeclareToDebugValue(DbgVariableIntrinsic *DII,
1744 auto *DIVar = DII->getVariable();
1745 auto *DIExpr = DII->getExpression();
1748 if (!valueCoversEntireFragment(LI->getType(), DII)) {
1753 << *DII << '\n');
1757 DebugLoc NewLoc = getDebugValueLoc(DII);
1779 // conversion if the value covers the entire fragment of DII.
1816 void llvm::ConvertDebugDeclareToDebugValue(DbgVariableIntrinsic *DII,
1818 auto *DIVar = DII->getVariable();
1819 auto *DIExpr = DII->getExpression();
1825 if (!valueCoversEntireFragment(APN->getType(), DII)) {
1830 << *DII << '\n');
1837 DebugLoc NewLoc = getDebugValueLoc(DII);
2144 auto ReplaceOne = [&](auto *DII) {
2145 assert(DII->getVariable() && "Missing variable");
2146 auto *DIExpr = DII->getExpression();
2148 DII->setExpression(DIExpr);
2149 DII->replaceVariableLocationOp(Address, NewAddress);
2260 for (auto *DII : DbgUsers) {
2261 if (auto *DAI = dyn_cast<DbgAssignIntrinsic>(DII)) {
2272 bool StackValue = isa<DbgValueInst>(DII);
2273 auto DIILocation = DII->location_ops();
2278 // `I` may appear more than once in DII's location ops, and each use of `I`
2283 DIExpression *SalvagedExpr = DII->getExpression();
2302 DII->replaceVariableLocationOp(&I, Op0);
2305 DII->setExpression(SalvagedExpr);
2306 } else if (isa<DbgValueInst>(DII) && IsValidSalvageExpr &&
2307 DII->getNumVariableLocationOps() + AdditionalValues.size() <=
2309 DII->addVariableLocationOps(AdditionalValues, SalvagedExpr);
2314 DII->setKillLocation();
2316 LLVM_DEBUG(dbgs() << "SALVAGE: " << *DII << '\n');
2388 for (auto *DII : DbgUsers)
2389 DII->setKillLocation();
2607 function_ref<DbgValReplacement(DbgVariableIntrinsic &DII)> RewriteExpr,
2624 for (auto *DII : Users) {
2627 if (DomPointAfterFrom && DII->getNextNonDebugInstruction() == &DomPoint) {
2628 LLVM_DEBUG(dbgs() << "MOVE: " << *DII << '\n');
2629 DII->moveAfter(&DomPoint);
2634 } else if (!DT.dominates(&DomPoint, DII)) {
2635 UndefOrSalvage.insert(DII);
2660 for (auto *DII : Users) {
2661 if (UndefOrSalvage.count(DII))
2664 DbgValReplacement DVRepl = RewriteExpr(*DII);
2668 DII->replaceVariableLocationOp(&From, &To);
2669 DII->setExpression(*DVRepl);
2670 LLVM_DEBUG(dbgs() << "REWRITE: " << *DII << '\n');
2732 auto Identity = [&](DbgVariableIntrinsic &DII) -> DbgValReplacement {
2733 return DII.getExpression();
2759 auto SignOrZeroExt = [&](DbgVariableIntrinsic &DII) -> DbgValReplacement {
2760 DILocalVariable *Var = DII.getVariable();
2768 return DIExpression::appendExt(DII.getExpression(), ToBits, FromBits,
3611 for (auto *DII : DbgUsers)
3612 DII->eraseFromParent();