diff options
| author | Shubham Sandeep Rastogi <srastogi22@apple.com> | 2023-02-07 11:33:45 -0800 |
|---|---|---|
| committer | Shubham Sandeep Rastogi <srastogi22@apple.com> | 2023-04-12 12:10:58 -0700 |
| commit | 0aaf634152f25a805563d552e72d89e8202d84f2 (patch) | |
| tree | 23d1d10c96b00aee8fb13a5eda4ceda8fa8c723f /lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp | |
| parent | 144562e678d932dc2685f8a83aeb2229bc96d71a (diff) | |
Move DBG_VALUE's that depend on loads to after a
load if the load is moved due to the pre register allocation ld/st
optimization pass
The issue here is that there can be a scenario where debug information
is lost because of the pre register allocation load store optimization
pass, where a load who's result describes the debug infomation for a
local variable gets moved below the load and that causes the debug
information for that load to get lost.
Example:
Before the Pre Register Allocation Load Store Pass
inst_a
%2 = ld ...
inst_b
DBG_VALUE %2, "x", ...
%3 = ld ...
After the Pass:
inst_a
inst_b
DBG_VALUE %2, "x", ...
%2 = ld ...
%3 = ld ...
The load has now been moved to after the DBG_VAL that uses its result
and the debug info for "x" has been lost. What we want is:
inst_a
inst_b
%2 = ld ...
DBG_VALUE %2, "x", ...
%3 = ld ...
Which is what this patch addresses
Differential Revision: https://reviews.llvm.org/D145168
Diffstat (limited to 'lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp')
0 files changed, 0 insertions, 0 deletions
