diff options
| author | Teresa Johnson <tejohnson@google.com> | 2025-02-19 12:44:33 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-19 12:44:33 -0800 |
| commit | 92b07520bcba1134f60d368c3f0d9216ebbe76e5 (patch) | |
| tree | c9781a00a4cea9f81efa32b6d174f87bd555990c /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp | |
| parent | 1a6ed4d06e3c5b05e5ed9873888165c671292b06 (diff) | |
[MemProf] Support cloning through recursive cycles (#127429)
In order to facilitate cloning of recursive cycles, we first identify
backedges using a standard DFS search from the root callers, then
initially defer recursively invoking the cloning function via those
edges. This is because the cloning opportunity along the backedge may
not be exposed until the current node is cloned for other non-backedge
callers that are cold after the earlier recursive cloning, resulting
in a cold predecessor of the backedge. So we recursively invoke the
cloning function for the backedges during the cloning of the current
node for its caller edges (which were sorted to enable handling cold
callers first).
There was no significant time or memory overhead measured for several
large applications.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
0 files changed, 0 insertions, 0 deletions
