diff options
author | Stephen Tozer <stephen.tozer@sony.com> | 2024-02-27 11:13:46 +0000 |
---|---|---|
committer | Stephen Tozer <stephen.tozer@sony.com> | 2024-02-27 14:23:52 +0000 |
commit | 2e39b57837aa1790b3ee078fa532bb1748a609c7 (patch) | |
tree | 080970b9ba62d4d94949f58d95b91006ff7962b8 /llvm/lib/IR/Module.cpp | |
parent | f2bb6c4415954535b32780cd5fb48411ebe0042c (diff) | |
download | llvm-2e39b57837aa1790b3ee078fa532bb1748a609c7.zip llvm-2e39b57837aa1790b3ee078fa532bb1748a609c7.tar.gz llvm-2e39b57837aa1790b3ee078fa532bb1748a609c7.tar.bz2 |
Reapply "[RemoveDIs] Print non-intrinsic debug info in textual IR output (#79281)"
This reapplication changes debug intrinsic declaration removal to only take
place when printing final IR, so that the processing format of the Module
does not affect the output.
This reverts commit d128448efdd4e2bf3c9bc9a5b43ae642aa78026f.
Diffstat (limited to 'llvm/lib/IR/Module.cpp')
-rw-r--r-- | llvm/lib/IR/Module.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/lib/IR/Module.cpp b/llvm/lib/IR/Module.cpp index 1946db2..a8696ed 100644 --- a/llvm/lib/IR/Module.cpp +++ b/llvm/lib/IR/Module.cpp @@ -85,6 +85,28 @@ Module::~Module() { IFuncList.clear(); } +void Module::removeDebugIntrinsicDeclarations() { + auto *DeclareIntrinsicFn = + Intrinsic::getDeclaration(this, Intrinsic::dbg_declare); + assert((!isMaterialized() || DeclareIntrinsicFn->hasZeroLiveUses()) && + "Debug declare intrinsic should have had uses removed."); + DeclareIntrinsicFn->eraseFromParent(); + auto *ValueIntrinsicFn = + Intrinsic::getDeclaration(this, Intrinsic::dbg_value); + assert((!isMaterialized() || ValueIntrinsicFn->hasZeroLiveUses()) && + "Debug value intrinsic should have had uses removed."); + ValueIntrinsicFn->eraseFromParent(); + auto *AssignIntrinsicFn = + Intrinsic::getDeclaration(this, Intrinsic::dbg_assign); + assert((!isMaterialized() || AssignIntrinsicFn->hasZeroLiveUses()) && + "Debug assign intrinsic should have had uses removed."); + AssignIntrinsicFn->eraseFromParent(); + auto *LabelntrinsicFn = Intrinsic::getDeclaration(this, Intrinsic::dbg_label); + assert((!isMaterialized() || LabelntrinsicFn->hasZeroLiveUses()) && + "Debug label intrinsic should have had uses removed."); + LabelntrinsicFn->eraseFromParent(); +} + std::unique_ptr<RandomNumberGenerator> Module::createRNG(const StringRef Name) const { SmallString<32> Salt(Name); |