[Truffle] Eliminating Calls to Side-Effect Free Methods?
Andreas Woess
andreas.woess at jku.at
Thu Mar 13 18:58:36 UTC 2014
glad to have helped. looking at the comparison, there's still quite some
room for improvement. another day... ;)
- andreas
On 2014-03-13 00:49, Stefan Marr wrote:
> Hi Andreas:
>
> On 12 Mar 2014, at 20:14, Andreas Woess <andreas.woess at jku.at> wrote:
>
>> That's an indicator that a FrameSlot is not truly constant.
>> -G:+DumpOnError should provide more context. My first suspicion would be
>> SBlock.outerSelfSlot.
> Yes, indeed. I guess a good rule to advocate for would be that FrameSlot should stay with the nodes.
>
> With that fixed, you are my hero! (for the moment, there is more to be done ;))
>
> The fix you proposed for the PE gives a massive improvement across the board.
> Runtime decreases on average by 22% (max. 67%), DeltaBlue down by 43%, Richards down by 31%.
>
> http://som-speed.stefan-marr.de/comparison/?exe=9%2BL%2Bmaster%2C11%2BL%2Bmaster&ben=83%2C47%2C106%2C37%2C111%2C85%2C93%2C91%2C94%2C64%2C87%2C97%2C69%2C88%2C105%2C77%2C59%2C74%2C41%2C73%2C110&env=1&hor=true&bas=11%2BL%2Bmaster&chart=normal+bars
>
> http://som-speed.stefan-marr.de/changes/?tre=3&rev=c002b9be8bbed2ecf0c7a3fce93f9c108563e73e&exe=9&env=1
>
> This makes TruffleSOM finally competitive with RTruffleSOM.
> I still need to address the issues with object fields however.
> Will look at what Chris did for Ruby, I think.
>
> The only other remaining strange outlier is the Recurse benchmark.
> Haven’t had the time to look into it, hope to get to it over the weekend.
>
> Thanks again!
> Stefan
>
> PS: I haven’t looked into it further, but I think all the tracing code is terribly fragile. Just from looking at it, it looks strangely hardcoded, and with the changed PE, I get a lot of null pointers, and cast errors when I enable.
>
>
>> - andreas
>>
>> On 2014-03-12 19:42, Stefan Marr wrote:
>>> Hi Andreas:
>>>
>>> On 12 Mar 2014, at 18:24, Andreas Woess <andreas.woess at jku.at> wrote:
>>>
>>>> find here a proposed fix to the PE:
>>>> https://gist.github.com/woess/d3276080dc18f8926f2f
>>> Thanks. Not sure whether that’s your patch, or whether it is something in my code, but most benchmarks break with this error:
>>>
>>> [truffle] opt fail Method BubbleSort>>#$block method::/home/smarr/.local/SOM/Examples/Benchmarks//BubbleSort.som:34 at 33cb5951|Reason com.oracle.graal.nodes.util.GraphUtil$2: The location argument could not be resolved to a constant.
>>>
>>> Will try to look into it later tonight.
>>>
>>>> and here a small patch for TruffleSOM:
>>>> https://gist.github.com/woess/90ff49f009f182c5276e
>>>> that gave me a nice speedup on your dispatch benchmark.
>>> Is applied.
>>>
>>> Thanks
>>> Stefan
>>>
>>>
More information about the graal-dev
mailing list