summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
diff options
context:
space:
mode:
authorArtem Belevich <tra@google.com>2024-10-24 12:00:56 -0700
committerGitHub <noreply@github.com>2024-10-24 12:00:56 -0700
commit6c64c8a6f3f77c30745c751d4163ff6bf2fc323b (patch)
treeda465f3919b20b8919bb7b8f92f3a2c4308cbc93 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
parent789fdd536d0446b9effa034ea37f3b56461d8500 (diff)
[NVPTX] add an optional early copy of byval arguments (#113384)
byval arguments in NVPTX are special. We're only allowed to read from them using a special instruction, and if we ever need to write to them or take an address, we must make a local copy and use it, instead. The problem is that local copies are very expensive, and we create them very late in the compilation pipeline, so LLVM does not have much of a chance to eliminate them, if they turn out to be unnecessary. One way around that is to create such copies early on, and let them percolate through the optimizations. The copying itself will never trigger creation of another copy later on, as the reads are allowed. If LLVM can eliminate it, it's a win. It the full optimization pipeline can't remove the copy, that's as good as it gets in terms of the effort we could've done, and it's certainly a much better effort than what we do now. This early injection of the copies has potential to create undesireable side-effects, so it's disabled by default, for now, until it sees more testing.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
0 files changed, 0 insertions, 0 deletions