Closed
Description
Instead of the fairly limited ad-hoc specialization we currently use, we should specialize BINARY_OP
by refcount and use table lookup to specialize by type.
Doing so would have the following advantages:
- Increased specialization from ~70% to over 95%
- Potential for large performance improvement in tier 2
- Makes it easy to incorporate
BINARY_SUBSCR
intoBINARY_OP
freeing up several tier 1 opcodes - Can use similar techniques for
CONTAINS_OP
andCOMPARE_OP
to free up more tier 1 opcodes
I expect the overall performance impact on tier 1 will be negligible. Maybe a little bit faster, maybe a little bit slower.
The improved specialized will (I expect) largely cancel out the degraded performance for the most common operations.
See for faster-cpython/ideas#662 detailed analysis and faster-cpython/ideas#660 for the related tier 2 optimization