Re: Good news, bad news

2011-05-20 Thread Charles Oliver Nutter
I am still using the specialized math callsites because they inline well and an Indy-based approach was still quite a bit slower last time I tried. I am back to being worried about the inlining thresholds. With no MHs and runtime profiled direct calls, I was able to get this all to inline. So

Re: Good news, bad news

2011-05-20 Thread Rémi Forax
On 05/20/2011 11:08 PM, Tom Rodriguez wrote: > Is it the inlining policy? I played a little with this and the current > default policy is still not as good as the big tweaks to MaxInlineSize and > InlineSmallCode. > > tom I tend to agree, things like isFixnumReopened and getCacheToken seem to b

Re: Good news, bad news

2011-05-20 Thread Tom Rodriguez
Is it the inlining policy? I played a little with this and the current default policy is still not as good as the big tweaks to MaxInlineSize and InlineSmallCode. tom On May 20, 2011, at 1:21 PM, Charles Oliver Nutter wrote: > Meh, false alarm. This is just the default empty Object[] assigned

Re: Good news, bad news

2011-05-20 Thread Charles Oliver Nutter
Meh, false alarm. This is just the default empty Object[] assigned to all objects. I still can't explain the perf degradation. Here's the full assembly for fib_ruby: https://gist.github.com/983721 It seems like stuff is inlining, so I have no idea why performance is so terrible. - Charlie On Fr

Re: Good news, bad news

2011-05-20 Thread Charles Oliver Nutter
Another update...I managed to turn off the ricochet frames and have it still work (???). The with-ricochet mode is faster, but still 2-3x slower than no indy at all (using JRuby's IC), and 4-5x slower than invokedynamic was recently... HOWEVER...an assembly dump I just did contains some very odd c

Re: Inserting pre and post-call logic around a handle?

2011-05-20 Thread Charles Oliver Nutter
On Thu, May 19, 2011 at 3:53 PM, John Rose wrote: > Your sketch seems good, except that you cannot handle both the return value > and the thrown exception in one place.  (API limitation.)  So if your post > logic wants to see the return value, you have more work to do. > > Suggestion:  Make the

Re: Inserting pre and post-call logic around a handle?

2011-05-20 Thread Charles Oliver Nutter
On Thu, May 19, 2011 at 4:55 PM, John Rose wrote: > The last MH.invoke in my sketch could also be the indy instruction, with the > preceding stuff executed in the BSM. > > The basic idea is to package the wrapping logic in a target-independent form, > and bind it (pre-packaged) to each call site

Re: Good news, bad news

2011-05-20 Thread Charles Oliver Nutter
On Fri, May 20, 2011 at 1:07 AM, Ola Bini wrote: >> Try -XX:+UnlockDiag* -XX:-UseRicochetFrames for differential testing. >> >> If you can find a microbenchmark which shows differential slowdown, we can >> debug it. > > When trying the above all my tests fail with this: >  java.lang.RuntimeExcept

Re: SwitchPoint-based constant lookup in JRuby

2011-05-20 Thread Rémi Forax
Le 19/05/2011 23:00, John Rose a écrit : On May 19, 2011, at 11:11 AM, Charles Oliver Nutter wrote: I've just landed a newer SwitchPoint-based constant caching mechanism. https://github.com/jruby/jruby/commit/90be178c96053d201ea2a869bda7feddeedcfa10 Cool! That's one of the key use cases fo