diff options
Diffstat (limited to 'llvm/lib/Transforms/Utils/Local.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/Local.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index f3cd310..ce0f4c7 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -2230,6 +2230,8 @@ template <typename T> static void salvageDbgAssignAddress(T *Assign) { assert(!SalvagedExpr->getFragmentInfo().has_value() && "address-expression shouldn't have fragment info"); + SalvagedExpr = SalvagedExpr->foldConstantMath(); + // Salvage succeeds if no additional values are required. if (AdditionalValues.empty()) { Assign->setAddress(NewV); @@ -2290,6 +2292,7 @@ void llvm::salvageDebugInfoForDbgValues( if (!Op0) break; + SalvagedExpr = SalvagedExpr->foldConstantMath(); DII->replaceVariableLocationOp(&I, Op0); bool IsValidSalvageExpr = SalvagedExpr->getNumElements() <= MaxExpressionSize; if (AdditionalValues.empty() && IsValidSalvageExpr) { @@ -2351,6 +2354,7 @@ void llvm::salvageDebugInfoForDbgValues( if (!Op0) break; + SalvagedExpr = SalvagedExpr->foldConstantMath(); DVR->replaceVariableLocationOp(&I, Op0); bool IsValidSalvageExpr = SalvagedExpr->getNumElements() <= MaxExpressionSize; |