Skip to content

Commit c85ca4c

Browse files
committed
[Local] Add a convenient insertReplacementDbgValues overload, NFC
Add an overload for the common case where the replacement dbg.values have the same DIExpressions as the originals. llvm-svn: 335643
1 parent de46f65 commit c85ca4c

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed

llvm/include/llvm/Transforms/Utils/Local.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,11 @@ void insertReplacementDbgValues(
346346
Value &From, Value &To, Instruction &InsertBefore,
347347
function_ref<DIExpression *(DbgInfoIntrinsic &OldDII)> RewriteExpr);
348348

349+
/// An overload of insertReplacementDbgValues() for the common case where
350+
/// the replacement dbg.values have the same DIExpressions as the originals.
351+
void insertReplacementDbgValues(Value &From, Value &To,
352+
Instruction &InsertBefore);
353+
349354
/// Remove all instructions from a basic block other than it's terminator
350355
/// and any present EH pad instructions.
351356
unsigned removeAllNonTerminatorAndEHPadInstructions(BasicBlock *BB);

llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -267,13 +267,9 @@ Instruction *InstCombiner::commonCastTransforms(CastInst &CI) {
267267
// The first cast (CSrc) is eliminable so we need to fix up or replace
268268
// the second cast (CI). CSrc will then have a good chance of being dead.
269269
auto *Res = CastInst::Create(NewOpc, CSrc->getOperand(0), CI.getType());
270-
271270
// Replace debug users of the eliminable cast by emitting debug values
272271
// which refer to the new cast.
273-
insertReplacementDbgValues(
274-
*CSrc, *Res, *std::next(CI.getIterator()),
275-
[](DbgInfoIntrinsic &OldDII) { return OldDII.getExpression(); });
276-
272+
insertReplacementDbgValues(*CSrc, *Res, *std::next(CI.getIterator()));
277273
return Res;
278274
}
279275
}

llvm/lib/Transforms/Utils/Local.cpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1717,9 +1717,19 @@ void llvm::insertReplacementDbgValues(
17171717
// that the old debug users will be erased later.
17181718
DIBuilder DIB(*InsertBefore.getModule());
17191719
for (auto *OldDII : Users)
1720-
if (DIExpression *Expr = RewriteExpr(*OldDII))
1721-
DIB.insertDbgValueIntrinsic(&To, OldDII->getVariable(), Expr,
1722-
OldDII->getDebugLoc().get(), &InsertBefore);
1720+
if (DIExpression *Expr = RewriteExpr(*OldDII)) {
1721+
auto *I = DIB.insertDbgValueIntrinsic(&To, OldDII->getVariable(), Expr,
1722+
OldDII->getDebugLoc().get(),
1723+
&InsertBefore);
1724+
LLVM_DEBUG(dbgs() << "REPLACE: " << *I << '\n');
1725+
}
1726+
}
1727+
1728+
void llvm::insertReplacementDbgValues(Value &From, Value &To,
1729+
Instruction &InsertBefore) {
1730+
return llvm::insertReplacementDbgValues(
1731+
From, To, InsertBefore,
1732+
[](DbgInfoIntrinsic &OldDII) { return OldDII.getExpression(); });
17231733
}
17241734

17251735
unsigned llvm::removeAllNonTerminatorAndEHPadInstructions(BasicBlock *BB) {

0 commit comments

Comments
 (0)