aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
diff options
context:
space:
mode:
authorPrinceton Ferro <pferro@nvidia.com>2025-10-29 09:46:01 -0700
committerGitHub <noreply@github.com>2025-10-29 09:46:01 -0700
commit68e74f8f8435ae565394ab83b44720ec0e7c631f (patch)
treef375a906e63225b2a64bc557aec0aa6e327de60c /lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h
parentaffed57d3611b114ade0f703d48e5217c8cbf248 (diff)
downloadllvm-68e74f8f8435ae565394ab83b44720ec0e7c631f.zip
llvm-68e74f8f8435ae565394ab83b44720ec0e7c631f.tar.gz
llvm-68e74f8f8435ae565394ab83b44720ec0e7c631f.tar.bz2
[DAGCombiner] Lower dynamic insertelt chain more efficiently (#162368)
For an insertelt with a dynamic index, the default handling in DAGTypeLegalizer and LegalizeDAG will reserve a stack slot for the vector, lower the insertelt to a store, then load the modified vector back into temporaries. The vector store and load may be legalized into a sequence of smaller operations depending on the target. Let V = the vector size and L = the length of a chain of insertelts with dynamic indices. In the worse case, this chain will lower to O(VL) operations, which can increase code size dramatically. Instead, identify such chains, reserve one stack slot for the vector, and lower all of the insertelts to stores at once. This requires only O(V + L) operations. This change only affects the default lowering behavior.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/SWIGPythonBridge.h')
0 files changed, 0 insertions, 0 deletions