Feature or enhancement
Proposal:
_INSERT_1_LOAD_CONST_INLINE(_BORROW) and _LOAD_CONST_UNDER_INLINE(_BORROW) have identical stack effects — they're basically the same thing with different names.
| tier2op(_INSERT_1_LOAD_CONST_INLINE, (ptr/4, left--res, l)) { |
| res=PyStackRef_FromPyObjectNew(ptr); |
| l=left; |
| INPUTS_DEAD(); |
| } |
| |
| tier2op(_INSERT_1_LOAD_CONST_INLINE_BORROW, (ptr/4, left--res, l)) { |
| res=PyStackRef_FromPyObjectBorrow(ptr); |
| l=left; |
| INPUTS_DEAD(); |
| } |
| tier2op(_LOAD_CONST_UNDER_INLINE, (ptr/4, old--value, new)) { |
| new=old; |
| DEAD(old); |
| value=PyStackRef_FromPyObjectNew(ptr); |
| } |
| |
| tier2op(_LOAD_CONST_UNDER_INLINE_BORROW, (ptr/4, old--value, new)) { |
| new=old; |
| DEAD(old); |
| value=PyStackRef_FromPyObjectBorrow(ptr); |
| } |
_LOAD_CONST_UNDER_INLINE(_BORROW) already has entries in op_without_push, so remove_unneeded_uops can properly simplify it. However _INSERT_1 don't, thus we should rename all _INSERT_1 usages to _LOAD_CONST_UNDER and remove the duplicate definitions.
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
#148230 (comment)
Linked PRs
Feature or enhancement
Proposal:
_INSERT_1_LOAD_CONST_INLINE(_BORROW)and_LOAD_CONST_UNDER_INLINE(_BORROW)have identical stack effects — they're basically the same thing with different names.cpython/Python/bytecodes.c
Lines 5927 to 5937 in 0b20bff
cpython/Python/bytecodes.c
Lines 5968 to 5978 in 0b20bff
_LOAD_CONST_UNDER_INLINE(_BORROW)already has entries inop_without_push, soremove_unneeded_uopscan properly simplify it. However_INSERT_1don't, thus we should rename all_INSERT_1usages to_LOAD_CONST_UNDERand remove the duplicate definitions.Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
#148230 (comment)
Linked PRs
_LOAD_CONST_UNDER_INLINE(_BORROW)in JIT #148236