summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
diff options
context:
space:
mode:
authorTeresa Johnson <tejohnson@google.com>2025-02-19 12:44:33 -0800
committerGitHub <noreply@github.com>2025-02-19 12:44:33 -0800
commit92b07520bcba1134f60d368c3f0d9216ebbe76e5 (patch)
treec9781a00a4cea9f81efa32b6d174f87bd555990c /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
parent1a6ed4d06e3c5b05e5ed9873888165c671292b06 (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