diff options
author | Jeremy Morse <jeremy.morse@sony.com> | 2019-12-05 15:12:25 +0000 |
---|---|---|
committer | Jeremy Morse <jmorse+git@studentrobotics.org> | 2019-12-05 15:52:20 +0000 |
commit | 30e8f80fd5a43a213f8feb124846223b61218f30 (patch) | |
tree | 4b3f769635fdb05f16b631647894966ba6ab35af /lldb/packages/Python/lldbsuite/test/python_api/thread/main.cpp | |
parent | e4cdd6263175f7289cfb61608944892d8c76b6ff (diff) | |
download | bcm5719-llvm-30e8f80fd5a43a213f8feb124846223b61218f30.tar.gz bcm5719-llvm-30e8f80fd5a43a213f8feb124846223b61218f30.zip |
[DebugInfo] Don't create multiple DBG_VALUEs when sinking
This patch addresses a performance problem reported in PR43855, and
present in the reapplication in in 001574938e5. It turns out that
MachineSink will (often) move instructions to the first block that
post-dominates the current block, and then try to sink further. This
means if we have a lot of conditionals, we can needlessly create large
numbers of DBG_VALUEs, one in each block the sunk instruction passes
through.
To fix this, rather than immediately sinking DBG_VALUEs, record them in
a pass structure. When sinking is complete and instructions won't be
sunk any further, new DBG_VALUEs are added, avoiding lots of
intermediate DBG_VALUE $noregs being created.
Differential revision: https://reviews.llvm.org/D70676
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/thread/main.cpp')
0 files changed, 0 insertions, 0 deletions