New submission from Mark Shannon <m...@hotpy.org>:

As described in PEP 659 (Specializing Adaptive Interpreter) the first part of 
implementing specialization is to implement the machinery to do the quickening.

Conceptually, this is fairly simple: add a new field to the code object, which 
points to the first instruction in the bytecode.

When quickening, we create a new array, copy the old bytecode into it, and make 
the new field point to it.

Without any specialization or superinstructions, this will just waste memory.
However, it will pay off soon enough as we implement superinstructions, remove 
the old "opcache" and add new specializations.

We expect to see worthwhile speed ups with just superinstructions, and large 
speedups when all the above features have been implemented.

----------
assignee: Mark.Shannon
messages: 394013
nosy: Mark.Shannon
priority: normal
severity: normal
status: open
title: Implement infrastructure for quickening and specializing
type: performance

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue44187>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to