Lines Matching defs:DVIRec

6736 static void UpdateDbgValueInst(DVIRecoveryRec &DVIRec,
6760 if (!DVIRec.Expr->isComplex() && SalvageExpr->isComplex()) {
6766 if (isa<DbgValueInst *>(DVIRec.DbgRef))
6767 UpdateDbgValueInstImpl(cast<DbgValueInst *>(DVIRec.DbgRef));
6769 UpdateDbgValueInstImpl(cast<DbgVariableRecord *>(DVIRec.DbgRef));
6782 static void restorePreTransformState(DVIRecoveryRec &DVIRec) {
6786 assert(DVIRec.Expr && "Expected an expression");
6787 DbgVal->setExpression(DVIRec.Expr);
6791 if (!DVIRec.HadLocationArgList) {
6792 assert(DVIRec.LocationOps.size() == 1 &&
6798 getValueOrPoison(DVIRec.LocationOps[0], DbgVal->getContext());
6802 for (WeakVH VH : DVIRec.LocationOps) {
6812 if (isa<DbgValueInst *>(DVIRec.DbgRef))
6813 RestorePreTransformStateImpl(cast<DbgValueInst *>(DVIRec.DbgRef));
6815 RestorePreTransformStateImpl(cast<DbgVariableRecord *>(DVIRec.DbgRef));
6819 llvm::PHINode *LSRInductionVar, DVIRecoveryRec &DVIRec,
6823 if (isa<DbgValueInst *>(DVIRec.DbgRef)
6824 ? !cast<DbgValueInst *>(DVIRec.DbgRef)->isKillLocation()
6825 : !cast<DbgVariableRecord *>(DVIRec.DbgRef)->isKillLocation())
6832 restorePreTransformState(DVIRec);
6837 LocationOpIndexMap.assign(DVIRec.LocationOps.size(), -1);
6841 for (unsigned i = 0; i < DVIRec.LocationOps.size(); i++) {
6842 WeakVH VH = DVIRec.LocationOps[i];
6856 if (SE.containsErasedValue(DVIRec.SCEVs[i]) ||
6857 SE.containsUndefs(DVIRec.SCEVs[i])) {
6865 << " with SCEV: " << *DVIRec.SCEVs[i] << "\n");
6867 DVIRec.RecoveryExprs[i] = std::make_unique<SCEVDbgValueBuilder>();
6868 SCEVDbgValueBuilder *SalvageExpr = DVIRec.RecoveryExprs[i].get();
6873 SE.computeConstantDifference(DVIRec.SCEVs[i], SCEVInductionVar)) {
6878 } else if (!SalvageExpr->createIterCountExpr(DVIRec.SCEVs[i], IterCountExpr,
6886 if (DVIRec.Expr->getNumElements() == 0) {
6887 assert(DVIRec.RecoveryExprs.size() == 1 &&
6890 assert(DVIRec.RecoveryExprs[0] &&
6892 SCEVDbgValueBuilder *B = DVIRec.RecoveryExprs[0].get();
6895 for (const auto &Op : DVIRec.Expr->expr_ops()) {
6904 DVIRec.RecoveryExprs[LocationArgIndex].get();
6919 UpdateDbgValueInst(DVIRec, NewLocationOps, NewExpr);
6920 if (isa<DbgValueInst *>(DVIRec.DbgRef))
6922 << *cast<DbgValueInst *>(DVIRec.DbgRef) << "\n");
6925 << *cast<DbgVariableRecord *>(DVIRec.DbgRef) << "\n");
6959 for (auto &DVIRec : DVIToUpdate) {
6960 SalvageDVI(L, SE, LSRInductionVar, *DVIRec, SCEVInductionVar,