[PATCH] D133321: [Assignment Tracking][24/*] Always RemoveRedundantDbgInstrs in instcombine in assignment tracking builds
Orlando Cazalet-Hyams via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 5 08:51:23 PDT 2022
Orlando created this revision.
Orlando added a project: debug-info.
Herald added a subscriber: hiraditya.
Herald added a project: All.
Orlando requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
This reduces peak memory overhead by 15% when building CTMark's tramp3d-v4 with `-O2 -g` with assignment tracking enabled.
---
When building CTMark's tramp3d-v4 (with -emit-llvm and RelWithDebInfo flags) with this patch stack the peak memory consumption increases by just under 1.5% when assignment tracking is enabled, and the run time difference (of the compiler) is negligible.
https://reviews.llvm.org/D133321
Files:
llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
Index: llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
===================================================================
--- llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+++ llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
@@ -4350,6 +4350,13 @@
bool MadeIRChange = false;
if (ShouldLowerDbgDeclare)
MadeIRChange = LowerDbgDeclare(F);
+ // LowerDbgDeclare calls RemoveRedundantDbgInstrs, but LowerDbgDeclare will
+ // almost never return true when running an assignment tracking build. Take
+ // this opportunity to do some clean up for assignment tracking builds too.
+ if (!MadeIRChange && getEnableAssignmentTracking()) {
+ for (auto &BB : F)
+ RemoveRedundantDbgInstrs(&BB);
+ }
// Iterate while there is work to do.
unsigned Iteration = 0;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D133321.458003.patch
Type: text/x-patch
Size: 808 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220905/c1566b8d/attachment.bin>
More information about the llvm-commits
mailing list