diff options
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp | 6 | ||||
-rw-r--r-- | llvm/lib/Transforms/Utils/Local.cpp | 16 |
2 files changed, 14 insertions, 8 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp index 42828eaeb2b..13d96f50629 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp @@ -267,13 +267,9 @@ Instruction *InstCombiner::commonCastTransforms(CastInst &CI) { // The first cast (CSrc) is eliminable so we need to fix up or replace // the second cast (CI). CSrc will then have a good chance of being dead. auto *Res = CastInst::Create(NewOpc, CSrc->getOperand(0), CI.getType()); - // Replace debug users of the eliminable cast by emitting debug values // which refer to the new cast. - insertReplacementDbgValues( - *CSrc, *Res, *std::next(CI.getIterator()), - [](DbgInfoIntrinsic &OldDII) { return OldDII.getExpression(); }); - + insertReplacementDbgValues(*CSrc, *Res, *std::next(CI.getIterator())); return Res; } } diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index 756b60bb6fa..6264724312f 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -1717,9 +1717,19 @@ void llvm::insertReplacementDbgValues( // that the old debug users will be erased later. DIBuilder DIB(*InsertBefore.getModule()); for (auto *OldDII : Users) - if (DIExpression *Expr = RewriteExpr(*OldDII)) - DIB.insertDbgValueIntrinsic(&To, OldDII->getVariable(), Expr, - OldDII->getDebugLoc().get(), &InsertBefore); + if (DIExpression *Expr = RewriteExpr(*OldDII)) { + auto *I = DIB.insertDbgValueIntrinsic(&To, OldDII->getVariable(), Expr, + OldDII->getDebugLoc().get(), + &InsertBefore); + LLVM_DEBUG(dbgs() << "REPLACE: " << *I << '\n'); + } +} + +void llvm::insertReplacementDbgValues(Value &From, Value &To, + Instruction &InsertBefore) { + return llvm::insertReplacementDbgValues( + From, To, InsertBefore, + [](DbgInfoIntrinsic &OldDII) { return OldDII.getExpression(); }); } unsigned llvm::removeAllNonTerminatorAndEHPadInstructions(BasicBlock *BB) { |