[Python-Dev] Opcode cache in ceval loop
Yury Selivanov
yselivanov.ml at gmail.com
Mon Feb 1 15:16:55 EST 2016
Brett,
On 2016-02-01 3:08 PM, Brett Cannon wrote:
>
>
> On Mon, 1 Feb 2016 at 11:51 Yury Selivanov <yselivanov.ml at gmail.com
> <mailto:yselivanov.ml at gmail.com>> wrote:
>
> Hi Brett,
>
[..]
>
>
> The first two fields are used to make sure that we have objects of the
> same type. If it changes, we deoptimize the opcode immediately. Then
> we try the offset. If it's successful - we have a cache hit. If not,
> that's fine, we'll try another few times before deoptimizing the
> opcode.
>
>
> So this is a third "next step" that has its own issue?
It's all in issue http://bugs.python.org/issue26219 right now.
My current plan is to implement LOAD_METHOD/CALL_METHOD (just opcodes,
no cache) in 26110.
Then implement caching for LOAD_METHOD, LOAD_GLOBAL, and LOAD_ATTR in
26219. I'm flexible to break down 26219 in three separate issues if
that helps the review process (but that would take more of my time):
- implement support for opcode caching (general infrastructure) +
LOAD_GLOBAL optimization
- LOAD_METHOD optimization
- LOAD_ATTR optimization
Yury
More information about the Python-Dev
mailing list