aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/Local.cpp
diff options
context:
space:
mode:
authorOCHyams <orlando.hyams@sony.com>2023-01-06 09:16:50 +0000
committerOCHyams <orlando.hyams@sony.com>2023-01-06 10:11:14 +0000
commit775af51209bcce2527b38dea57275131f9551455 (patch)
tree0ba3ed9894228ea58c8145ad131095ab097a06e2 /llvm/lib/Transforms/Utils/Local.cpp
parent89f1876b610aabcaf18a27180a170c95268d86d9 (diff)
downloadllvm-775af51209bcce2527b38dea57275131f9551455.zip
llvm-775af51209bcce2527b38dea57275131f9551455.tar.gz
llvm-775af51209bcce2527b38dea57275131f9551455.tar.bz2
[DebugInfo] Prefer setKillLocation rather than replacing operands with undef
NFC-ish. There is a functional change but the outputs are semantically identical. Where we might've before replaced one operand with undef (which means "this is a kill location marker") the use of `setKillLocation` will replace all location operands with `undef` (which also means "this is a kill location marker"). Related to https://discourse.llvm.org/t/auto-undef-debug-uses-of-a-deleted-value Reviewed By: StephenTozer Differential Revision: https://reviews.llvm.org/D140904
Diffstat (limited to 'llvm/lib/Transforms/Utils/Local.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/Local.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp
index 0b3799c..a1c4bc8 100644
--- a/llvm/lib/Transforms/Utils/Local.cpp
+++ b/llvm/lib/Transforms/Utils/Local.cpp
@@ -619,10 +619,8 @@ void llvm::RecursivelyDeleteTriviallyDeadInstructions(
bool llvm::replaceDbgUsesWithUndef(Instruction *I) {
SmallVector<DbgVariableIntrinsic *, 1> DbgUsers;
findDbgUsers(DbgUsers, I);
- for (auto *DII : DbgUsers) {
- Value *Undef = UndefValue::get(I->getType());
- DII->replaceVariableLocationOp(I, Undef);
- }
+ for (auto *DII : DbgUsers)
+ DII->setKillLocation();
return !DbgUsers.empty();
}
@@ -1914,8 +1912,7 @@ void llvm::salvageDebugInfoForDbgValues(
// using DIArgList for dbg.assign yet. FIXME: support this.
// Also do not salvage if the resulting DIArgList would contain an
// unreasonably large number of values.
- Value *Undef = UndefValue::get(I.getOperand(0)->getType());
- DII->replaceVariableLocationOp(I.getOperand(0), Undef);
+ DII->setKillLocation();
}
LLVM_DEBUG(dbgs() << "SALVAGE: " << *DII << '\n');
Salvaged = true;
@@ -1924,10 +1921,8 @@ void llvm::salvageDebugInfoForDbgValues(
if (Salvaged)
return;
- for (auto *DII : DbgUsers) {
- Value *Undef = UndefValue::get(I.getType());
- DII->replaceVariableLocationOp(&I, Undef);
- }
+ for (auto *DII : DbgUsers)
+ DII->setKillLocation();
}
Value *getSalvageOpsForGEP(GetElementPtrInst *GEP, const DataLayout &DL,