JRuby invokedynamic updates

2011-08-10 Thread Charles Oliver Nutter
Hello everyone! I have added a few new items to JRuby relating to invokedynamic. Let's dive in, shall we? 1. invokedynamic-based dispatch for literal binary operators with RHS a literal fixnum or float This is actually on by default because it didn't seem to hurt perf (much?) on JDK7, and it sho

Re: Request for review (L): 7071653: JSR 292: call site change notification should be pushed not pulled

2011-08-10 Thread Christian Thalinger
On Aug 10, 2011, at 9:28 PM, Tom Rodriguez wrote: > > On Aug 9, 2011, at 4:33 AM, Christian Thalinger wrote: > >> >> On Aug 8, 2011, at 8:49 PM, Tom Rodriguez wrote: >> >>> dependencies.cpp: >>> >>> in check_call_site_target_value, the changes == NULL case should be >>> checking that the ca

Re: Request for review (L): 7071653: JSR 292: call site change notification should be pushed not pulled

2011-08-10 Thread Tom Rodriguez
On Aug 9, 2011, at 4:33 AM, Christian Thalinger wrote: > > On Aug 8, 2011, at 8:49 PM, Tom Rodriguez wrote: > >> dependencies.cpp: >> >> in check_call_site_target_value, the changes == NULL case should be checking >> that the call site hasn't changed. It should probably look more like this:

Re: JRuby/Seph/PHP.reboot/... SwitchPoint usage

2011-08-10 Thread Tom Rodriguez
>> I guess my concern is that the original (long) version may or may not >> inline, but obviously doesn't degrade as badly. Why does the degraded >> performance of the long form suffer so much? Ruby is a very terse >> language, often resulting in methods that represent a lot of code. I'm >> using i

Re: Performance problem with invoke dynamic

2011-08-10 Thread Christian Thalinger
On Jul 28, 2011, at 7:29 PM, Ola Bini wrote: > On 2011-07-28 10.11, Christian Thalinger wrote: >> >> On Jul 28, 2011, at 6:10 PM, Ola Bini wrote: >> The bad performance sounds like something is not inlined at all. How are you invoking valueMH? Via invokedynamic or a direct MH ca

Re: JRuby/Seph/PHP.reboot/... SwitchPoint usage

2011-08-10 Thread Christian Thalinger
On Aug 10, 2011, at 6:21 PM, Charles Oliver Nutter wrote: > On Wed, Aug 10, 2011 at 9:26 AM, Christian Thalinger > wrote: >> Here are the numbers for JDK 7 b147, 7071307+7071653, and >> 7071307+7071653+7071709: >> >> 7071307: MethodHandle bimorphic inlining should consider the frequency >> 707

Re: JRuby/Seph/PHP.reboot/... SwitchPoint usage

2011-08-10 Thread Charles Oliver Nutter
On Wed, Aug 10, 2011 at 11:21 AM, Charles Oliver Nutter wrote: > I guess my concern is that the original (long) version may or may not > inline, but obviously doesn't degrade as badly. Why does the degraded > performance of the long form suffer so much? Ruby is a very terse > language, often resul

Re: JRuby/Seph/PHP.reboot/... SwitchPoint usage

2011-08-10 Thread Charles Oliver Nutter
On Wed, Aug 10, 2011 at 9:26 AM, Christian Thalinger wrote: > Here are the numbers for JDK 7 b147, 7071307+7071653, and > 7071307+7071653+7071709: > > 7071307: MethodHandle bimorphic inlining should consider the frequency > 7071653: JSR 292: call site change notification should be pushed not pull

Re: JRuby/Seph/PHP.reboot/... SwitchPoint usage

2011-08-10 Thread Christian Thalinger
On Aug 8, 2011, at 8:21 PM, Christian Thalinger wrote: > > On Aug 8, 2011, at 6:39 PM, Charles Oliver Nutter wrote: > >> On Mon, Aug 8, 2011 at 9:51 AM, Christian Thalinger >> wrote: >>> Since I have the basic push-notification of CallSites I'm now looking into >>> push-notification of Switch