diff options
| author | Vedant Kumar <vsk@apple.com> | 2018-06-20 18:40:14 +0000 |
|---|---|---|
| committer | Vedant Kumar <vsk@apple.com> | 2018-06-20 18:40:14 +0000 |
| commit | 4e93f3dcf890eb443f980fe32c13fdd19988e42e (patch) | |
| tree | 2abda6eca956f819f93c7e6c080f1999f37dc189 /llvm/lib/Transforms | |
| parent | 74442061f27678bb13c47fce60a38d8975f42b5b (diff) | |
| download | bcm5719-llvm-4e93f3dcf890eb443f980fe32c13fdd19988e42e.tar.gz bcm5719-llvm-4e93f3dcf890eb443f980fe32c13fdd19988e42e.zip | |
[Local] Generalize insertReplacementDbgValues, NFC
This utility should operate on Values, not Instructions. While I'm here,
I've also made it possible to skip emitting replacement dbg.values for
certain debug users (by having RewriteExpr return nullptr).
llvm-svn: 335152
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Utils/Local.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp index 7dd74a1aa40..a718276b222 100644 --- a/llvm/lib/Transforms/Utils/Local.cpp +++ b/llvm/lib/Transforms/Utils/Local.cpp @@ -1672,7 +1672,7 @@ void llvm::salvageDebugInfo(Instruction &I) { } void llvm::insertReplacementDbgValues( - Instruction &From, Instruction &To, Instruction &InsertBefore, + Value &From, Value &To, Instruction &InsertBefore, function_ref<DIExpression *(DbgInfoIntrinsic &OldDII)> RewriteExpr) { // Collect all debug users of From. SmallVector<DbgInfoIntrinsic *, 1> Users; @@ -1682,11 +1682,11 @@ void llvm::insertReplacementDbgValues( // Insert a replacement debug value for each old debug user. It's assumed // that the old debug users will be erased later. - DIBuilder DIB(*From.getModule()); + DIBuilder DIB(*InsertBefore.getModule()); for (auto *OldDII : Users) - DIB.insertDbgValueIntrinsic(&To, OldDII->getVariable(), - RewriteExpr(*OldDII), - OldDII->getDebugLoc().get(), &InsertBefore); + if (DIExpression *Expr = RewriteExpr(*OldDII)) + DIB.insertDbgValueIntrinsic(&To, OldDII->getVariable(), Expr, + OldDII->getDebugLoc().get(), &InsertBefore); } unsigned llvm::removeAllNonTerminatorAndEHPadInstructions(BasicBlock *BB) { |

