aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python
diff options
context:
space:
mode:
authorDenis Antrushin <dantrushin@gmail.com>2022-04-26 17:52:43 +0700
committerDenis Antrushin <dantrushin@gmail.com>2022-04-27 15:53:24 +0300
commit4059770af593c5ec8f751b1ceb6c288e1cfc866e (patch)
tree1380e8d8e64a65e2ee04bde00b8d8a3f34b97137 /lldb/source/Plugins/ScriptInterpreter/Python
parent8e2a0e61f53887c98219cf8e8057f53bf507cd9b (diff)
downloadllvm-4059770af593c5ec8f751b1ceb6c288e1cfc866e.zip
llvm-4059770af593c5ec8f751b1ceb6c288e1cfc866e.tar.gz
llvm-4059770af593c5ec8f751b1ceb6c288e1cfc866e.tar.bz2
[StatepointLowering] Only export STATEPOINT results if used in nonlocal blocks.
Cuurently we always export STATEPOINT results (GC pointers lowered via VRegs) to virtual registers. When processing gc.relocate instructions we have to generate CopyFromRegs node and then export it to VReg again if gc.relocate is used in other basic blocks. This results in generation of extra COPY MIR instruction if statepoint and its gc.relocate are in the same BB, but gc.relocate result is used in other blocks. This patch changes this behavior to export statepoint results only if used in other basic blocks. For local uses StatepointLoweringState.(get|set)Location() API is used to communicate appropriate statepoint result from `LowerStatepoint()` to `visitGCRelocate()` This is NFC and is purely compile time optimization. On big methids it can improve codegen compile time up to 10%. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D124444
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python')
0 files changed, 0 insertions, 0 deletions