[pypy-dev] FIY: Basic Block Versioning JIT

Carl Friedrich Bolz cfbolz at gmx.de
Tue Sep 29 13:18:02 CEST 2015


On 29/09/15 12:40, Armin Rigo wrote:
> Hi Niki,
>
> On Tue, Sep 29, 2015 at 11:11 AM, Niki Spahiev <niki.spahiev at gmail.com> wrote:
>> http://pointersgonewild.com/2015/09/24/basic-block-versioning-my-best-result-yet/
>
> It would look cool if it was 2005.  To me, in 2015, it sounds
> completely outdated...  I'm sure that PyPy or V8 are both able to
> optimize away most type checks too, and do many more
> optimizations on top of that that go beyond just removing some checks.
> This is just an impression from reading the blog post you linked to,
> but I'm not interested in reading more unless I'm told there are still
> interesting new things in there.

One thing that's very cool in BBV that I'm not aware of any other JIT
doing is to have type-specialized entry points for uninlinable methods.
Ie if a method is not inlined then the caller calls a type specialized
entry point with all the local type knowledge taken into account. In
addition, the result type is propagated back out from the uninlined
method to the calling function.

Maybe we can think how to achieve that effect for call_assembler, but I
don't think it's entirely trivial.

Cheers,

Carl Friedrich


More information about the pypy-dev mailing list