Lines Matching refs:DVIRec

6739 static void UpdateDbgValueInst(DVIRecoveryRec &DVIRec,  in UpdateDbgValueInst()  argument
6763 if (!DVIRec.Expr->isComplex() && SalvageExpr->isComplex()) { in UpdateDbgValueInst()
6769 if (isa<DbgValueInst *>(DVIRec.DbgRef)) in UpdateDbgValueInst()
6770 UpdateDbgValueInstImpl(cast<DbgValueInst *>(DVIRec.DbgRef)); in UpdateDbgValueInst()
6772 UpdateDbgValueInstImpl(cast<DbgVariableRecord *>(DVIRec.DbgRef)); in UpdateDbgValueInst()
6785 static void restorePreTransformState(DVIRecoveryRec &DVIRec) { in restorePreTransformState() argument
6789 assert(DVIRec.Expr && "Expected an expression"); in restorePreTransformState()
6790 DbgVal->setExpression(DVIRec.Expr); in restorePreTransformState()
6794 if (!DVIRec.HadLocationArgList) { in restorePreTransformState()
6795 assert(DVIRec.LocationOps.size() == 1 && in restorePreTransformState()
6801 getValueOrPoison(DVIRec.LocationOps[0], DbgVal->getContext()); in restorePreTransformState()
6805 for (WeakVH VH : DVIRec.LocationOps) { in restorePreTransformState()
6815 if (isa<DbgValueInst *>(DVIRec.DbgRef)) in restorePreTransformState()
6816 RestorePreTransformStateImpl(cast<DbgValueInst *>(DVIRec.DbgRef)); in restorePreTransformState()
6818 RestorePreTransformStateImpl(cast<DbgVariableRecord *>(DVIRec.DbgRef)); in restorePreTransformState()
6822 llvm::PHINode *LSRInductionVar, DVIRecoveryRec &DVIRec, in SalvageDVI() argument
6826 if (isa<DbgValueInst *>(DVIRec.DbgRef) in SalvageDVI()
6827 ? !cast<DbgValueInst *>(DVIRec.DbgRef)->isKillLocation() in SalvageDVI()
6828 : !cast<DbgVariableRecord *>(DVIRec.DbgRef)->isKillLocation()) in SalvageDVI()
6835 restorePreTransformState(DVIRec); in SalvageDVI()
6840 LocationOpIndexMap.assign(DVIRec.LocationOps.size(), -1); in SalvageDVI()
6844 for (unsigned i = 0; i < DVIRec.LocationOps.size(); i++) { in SalvageDVI()
6845 WeakVH VH = DVIRec.LocationOps[i]; in SalvageDVI()
6859 if (SE.containsErasedValue(DVIRec.SCEVs[i]) || in SalvageDVI()
6860 SE.containsUndefs(DVIRec.SCEVs[i])) { in SalvageDVI()
6868 << " with SCEV: " << *DVIRec.SCEVs[i] << "\n"); in SalvageDVI()
6870 DVIRec.RecoveryExprs[i] = std::make_unique<SCEVDbgValueBuilder>(); in SalvageDVI()
6871 SCEVDbgValueBuilder *SalvageExpr = DVIRec.RecoveryExprs[i].get(); in SalvageDVI()
6876 SE.computeConstantDifference(DVIRec.SCEVs[i], SCEVInductionVar)) { in SalvageDVI()
6879 } else if (!SalvageExpr->createIterCountExpr(DVIRec.SCEVs[i], IterCountExpr, in SalvageDVI()
6887 if (DVIRec.Expr->getNumElements() == 0) { in SalvageDVI()
6888 assert(DVIRec.RecoveryExprs.size() == 1 && in SalvageDVI()
6891 assert(DVIRec.RecoveryExprs[0] && in SalvageDVI()
6893 SCEVDbgValueBuilder *B = DVIRec.RecoveryExprs[0].get(); in SalvageDVI()
6896 for (const auto &Op : DVIRec.Expr->expr_ops()) { in SalvageDVI()
6905 DVIRec.RecoveryExprs[LocationArgIndex].get(); in SalvageDVI()
6920 UpdateDbgValueInst(DVIRec, NewLocationOps, NewExpr); in SalvageDVI()
6921 if (isa<DbgValueInst *>(DVIRec.DbgRef)) in SalvageDVI()
6923 << *cast<DbgValueInst *>(DVIRec.DbgRef) << "\n"); in SalvageDVI()
6926 << *cast<DbgVariableRecord *>(DVIRec.DbgRef) << "\n"); in SalvageDVI()
6960 for (auto &DVIRec : DVIToUpdate) { in DbgRewriteSalvageableDVIs() local
6961 SalvageDVI(L, SE, LSRInductionVar, *DVIRec, SCEVInductionVar, in DbgRewriteSalvageableDVIs()