[Truffle] Generated type system overrides isObject()/asObject() methods.

Stefan Marr java at stefan-marr.de
Tue Oct 1 13:57:52 PDT 2013


Hi Thomas:

On 01 Oct 2013, at 21:40, Thomas Wuerthinger <thomas.wuerthinger at oracle.com> wrote:

> Based on the results we are seeing on Truffle/Ruby versus Topaz, we expect that TruffleSOM will be able to outperform the PyPy version.

Sounds promising.

> Before introducing the type system for specialisations, we should check that the Truffle-level inlining works as expected and frame materialisation is avoided wherever possible. We'll take a look at running some of your examples. Do you have a particular one we should look at first?

Well, that's where I am stuck. I am not yet making the toolchain happy with my use of VirtualFrames.

Here the steps to check out a concrete version:

    git clone --recursive https://github.com/smarr/TruffleSOM.git
    cd TruffleSOM
    git checkout 1f6c74149f17b888094f6a953a854a32d83705f2
    ant tests

This is using the latest, unmodified Graal code.

In my Graal folder, I can then execute the following:

    export SOM=/Users/smarr/Projects/SOM/TruffleSOM 
    ./mx.sh --vm server vm -Xbootclasspath/a:$SOM/build/classes:$SOM/libs/com.oracle.truffle.api.jar:$SOM/libs/com.oracle.truffle.api.dsl.jar som.vm.Universe -cp $SOM/Smalltalk $SOM/Examples/Benchmarks/Loop.som

So, my problems start with: "Frame escapes at: […] ExpressionNode.executeGeneric(VirtualFrame)".
Any other of the benchmarks results in the same, I think.

On the branch 'poc/constant-args-and-temps', I tried to get rid of the materialization of the frame during initializing it, but that didn't had a lot of success.

Get the branch with: `git checkout -b const origin/poc/constant-args-and-temps`
The main commit is [1].

So, well, if you got suggestions how to approach these escaped frames, I would be more than happy to try something new.

Thanks
Stefan

[1] https://github.com/smarr/TruffleSOM/commit/8be69f33677dd7738d3e437cd74e4f1d151f09da

-- 
Stefan Marr
Software Languages Lab
Vrije Universiteit Brussel
Pleinlaan 2 / B-1050 Brussels / Belgium
http://soft.vub.ac.be/~smarr
Phone: +32 2 629 2974
Fax:   +32 2 629 3525



More information about the graal-dev mailing list