
On 29/09/15 12:40, Armin Rigo wrote:
Hi Niki,
On Tue, Sep 29, 2015 at 11:11 AM, Niki Spahiev <niki.spahiev@gmail.com> wrote:
http://pointersgonewild.com/2015/09/24/basic-block-versioning-my-best-result...
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