Truffle update instructions?
Andreas Woess
andreas.woess at oracle.com
Wed Apr 15 13:48:33 UTC 2015
Hi Stefan,
The non-inlined calls to frame methods are definitely a performance
issue. While I lifted the inlining cut off in a recent changeset, you
still want to make sure these are inlined during partial evaluation,
since (a) it's not guaranteed Graal will inline them and (b) they delay
other optimizations. The reason appears to be once again the
MaterializedFrame field in SBlock.context: in the new version of the
partial evaluator, the type check needed to turn the interface call into
an inlinable special call is inserted only after partial evaluation is
finished. You can probably fix the problem (and the warning) by wrapping
a type profile around the context frame (ValueProfile.createClassProfile()).
- andreas
On 15/04/15 13:25, Stefan Marr wrote:
> Hi:
>
> In the non-TruffleDSL related changes of last night was something that fixed some of my TruffleSOM benchmarks.
>
> However, there are still huge slowdowns.
> Will investigate further.
>
> On the positive side, some of the benchmarks show nice improvements for warmup times.
>
> http://som-speed.stefan-marr.de/changes/?tre=10&rev=975521543086049df4471ae1dde279fdd1e34db2&exe=9&env=1
>
> Best regards
> Stefan
>
>> On 14 Apr 2015, at 23:00, Stefan Marr <java at stefan-marr.de> wrote:
>>
>> Hi Christian:
>>
>>
>>> On 09 Apr 2015, at 22:23, christian.humer at gmail.com wrote:
>>>
>>> […] -G:+PrintTruffleExpansionHistogram […]
>>>
>>> You can also run with -G:+TraceTrufflePerformanceWarnings which may also show you potential problems (Note that this tool also outputs a few false positives).
>> Ok, those two tools point at similar things. The histogram shows that there are remaining calls that are not inlined. And the same is pointed out by the performance warnings.
>>
>> It looks like this:
>>
>> [truffle] perf warn not inlined Special call to HotSpotMethod<FrameWithoutBoxing.getLong(FrameSlot)> (20|MethodCallTarget)
>> [truffle] perf warn not inlined Special call to HotSpotMethod<FrameWithoutBoxing.setLong(FrameSlot, long)> (43|MethodCallTarget)
>> [truffle] perf warn not inlined Special call to HotSpotMethod<FrameWithoutBoxing.getArguments()> (102|MethodCallTarget)
>> [truffle] perf warn non-leaf type checkcast: Lsom/vmobjects/SObject; (118|CheckCast)
>> [truffle] perf warn non-leaf type instanceof: Lsom/vmobjects/SObject; (116|InstanceOf)
>>
>> I also see those calls in IGV.
>> It looks to me like the basic frame access are not compiled for some reason.
>>
>> Is that about right? Any idea what the cause could be?
>>
>> Thanks
>> Stefan
>>
>> PS: I updated to the latest Graal version of today.
>>
>> --
>> Stefan Marr
>> INRIA Lille - Nord Europe
>> http://stefan-marr.de/research/
>>
>>
>>
More information about the graal-dev
mailing list