

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. A bientôt, Armin.

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

Hi, On Tue, Sep 29, 2015 at 1:18 PM, Carl Friedrich Bolz <cfbolz@gmx.de> wrote:
It would look cool if it was 2005. To me, in 2015, it sounds completely outdated...
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.
Right... More generally the work is interesting as a way to compare the Psyco-style, HHVM-style approach with tracing JITs. It shows that the former can be done simply and cleanly, probably more so than even a simple tracing JIT can. It pushes forward the idea to use a smaller base language ("low-level javascript") which has a similar result to the meta-tracing approach of PyPy. It gives a good, modern point of comparison for both approaches. (Obviously, though, as author of Psyco I'd have liked if it was even mentioned in this paper... the basic idea is exactly the same one.) A bientôt, Armin.

On 29 September 2015 at 21:18, Carl Friedrich Bolz <cfbolz@gmx.de> wrote:
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.
I couldn't help but think when I read this post last week that it's like a dynamic equivalent of CFA2; which is exciting because CFA2 is such a dramatic improvement over k-CFA for intraprocedural analysis. It's good to see how well such a simple principle about specialising type information can produce such good results. -- William Leslie Notice: Likely much of this email is, by the nature of copyright, covered under copyright law. You absolutely MAY reproduce any part of it in accordance with the copyright law of the nation you are reading this in. Any attempt to DENY YOU THOSE RIGHTS would be illegal without prior contractual agreement.
participants (4)
-
Armin Rigo
-
Carl Friedrich Bolz
-
Niki Spahiev
-
William ML Leslie