This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author rhettinger
Recipients rhettinger, serhiy.storchaka
Date 2016-06-08.00:01:17
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1465344078.11.0.494710477921.issue27255@psf.upfronthosting.co.za>
In-reply-to
Content
Serhiy, please slow down and stop rewriting every single thing you see.  Your rate of patches is prolific and hard to digest.  Please give some consideration that the people who came before you (lots of them) put a lot of thought into what was done and were deliberately conservative.

Dynamic statistics can vary widely depending on code being profiled (much like PGO optimizations for C compilers).   

For a prediction to have value, it needs to be a commonly used opcode; it must occur in a highly predictive pair with an intrinsic relationship rather than a coincidental relationship.

FWIW, these tests aren't free.  Global prediction tables have a limited size and are subject to aliasing.  Mispredictions are expensive.  Also, the ceval loop doesn't need more clutter.

The new opcodes GET_YIELD_FROM_ITER, GET_AITER, GET_ANEXT, and GET_AWAITABLE haven't been considered before.  The code in Python/compile.c shows that LOAD_CONST is the only possible next opcode, so these are reasonable candidates (i.e. the pair effectively acts as a single opcode).  Of these, I think only GET_ANEXT and GET_AWAITABLE are likely to occur in a loop.  So, these two may be worthwhile.  All the rest should probably be skipped.
History
Date User Action Args
2016-06-08 00:01:18rhettingersetrecipients: + rhettinger, serhiy.storchaka
2016-06-08 00:01:18rhettingersetmessageid: <1465344078.11.0.494710477921.issue27255@psf.upfronthosting.co.za>
2016-06-08 00:01:18rhettingerlinkissue27255 messages
2016-06-08 00:01:17rhettingercreate