diff options
author | mpage <mpage@meta.com> | 2025-04-01 17:18:42 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-01 17:18:42 (GMT) |
commit | 053c285f6b41f92fbdd1d4ff0c959cceefacd7cd (patch) | |
tree | c30af215989dca6fdd8f8ebb74396f29abdca308 /Python/optimizer_analysis.c | |
parent | e9556e100452ed5a92fcf0e333ab75b0da29cf5b (diff) | |
download | cpython-053c285f6b41f92fbdd1d4ff0c959cceefacd7cd.zip cpython-053c285f6b41f92fbdd1d4ff0c959cceefacd7cd.tar.gz cpython-053c285f6b41f92fbdd1d4ff0c959cceefacd7cd.tar.bz2 |
gh-130704: Strength reduce `LOAD_FAST{_LOAD_FAST}` (#130708)
Optimize `LOAD_FAST` opcodes into faster versions that load borrowed references onto the operand stack when we can prove that the lifetime of the local outlives the lifetime of the temporary that is loaded onto the stack.
Diffstat (limited to 'Python/optimizer_analysis.c')
-rw-r--r-- | Python/optimizer_analysis.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/Python/optimizer_analysis.c b/Python/optimizer_analysis.c index 017a2ee..afaf2e0 100644 --- a/Python/optimizer_analysis.c +++ b/Python/optimizer_analysis.c @@ -573,6 +573,7 @@ remove_unneeded_uops(_PyUOpInstruction *buffer, int buffer_size) if (last->opcode == _LOAD_CONST_INLINE || last->opcode == _LOAD_CONST_INLINE_BORROW || last->opcode == _LOAD_FAST || + last->opcode == _LOAD_FAST_BORROW || last->opcode == _COPY ) { last->opcode = _NOP; |