[Python-Dev] Opcode cache in ceval loop
Yury Selivanov
yselivanov.ml at gmail.com
Mon Feb 1 15:31:03 EST 2016
On 2016-02-01 3:21 PM, Brett Cannon wrote:
>
> On Mon, 1 Feb 2016 at 12:16 Yury Selivanov <yselivanov.ml at gmail.com
> <mailto:yselivanov.ml at gmail.com>> wrote:
>
> 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>
> > <mailto: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
>
>
> I personally don't care how you break it down, just trying to keep all
> the moving pieces in my head. :)
>
> Anyway, it sounds like PEP 509 is blocking part of it, but the
> LOAD_METHOD stuff can go in as-is. So are you truly blocked only on
> getting the latest version of that patch up to
> http://bugs.python.org/issue26110 and getting a code review?
Yep. The initial implementation of LOAD_METHOD doesn't need PEP 509 /
opcode caching. I'll have to focus on something else this week, but
early next week I can upload a new patch for 26110.
When we have 26110 committed and PEP 509 approved and committed, I can
update the opcode cache patch (issue 26219) and we can start reviewing it.
Yury
More information about the Python-Dev
mailing list