Re: Assembly output from JRuby 'fib'

2011-04-29 Thread Christian Thalinger
On Apr 28, 2011, at 4:50 PM, Charles Oliver Nutter wrote: > On Thu, Apr 28, 2011 at 9:17 AM, Christian Thalinger > wrote: >> I have now a patch that makes the command line switch tweaking superfluous >> and the default performance looks pretty good (see below, 32-bit x86). > > That's excellent!

Re: Coro in Java 8

2011-04-29 Thread fo...@x9c.fr
Le 27 avr. 2011 à 22:01, Charles Oliver Nutter a écrit : > On Wed, Apr 27, 2011 at 2:54 PM, Rémi Forax wrote: >> Yes, 100% agree. >> Coroutine can also be used to implement generators in Java, >> introducing yield in the release that introduce lambda make a lot of >> sense for me. > > Yeah, th

Re: Unusually high polymorphic dispatch costs?

2011-04-29 Thread Christian Thalinger
On Apr 28, 2011, at 9:58 PM, Charles Oliver Nutter wrote: > I'm trying to figure out why polymorphic dispatch is incredibly slow > in JRuby + indy. Take this benchmark, for example: > > class A; def foo; end; end > class B; def foo; end; end > > a = A.new > b = B.new > > 5.times { puts Benchmark

Re: Coro in Java 8

2011-04-29 Thread Lukas Stadler
Am 2011-04-28 15:00, schrieb Mark Roos: Of course I would love to see the low level infrastructure in jdk7 binaries. Well, that would be cool, but I think the scope for JDK7 is very much fixed by now, and it's a much too short timeframe anyway... My thought was to use coroutines to emulate Smal

hg: mlvm/mlvm/hotspot: meth-conv: recursive MHs

2011-04-29 Thread john . r . rose
Changeset: 3a27124ba8fa Author:jrose Date: 2011-04-29 03:59 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/hotspot/rev/3a27124ba8fa meth-conv: recursive MHs ! meth-conv-6939861.patch ! series ___ mlvm-dev mailing list mlvm-dev@openjdk.j

hg: mlvm/mlvm/jdk: 2 new changesets

2011-04-29 Thread john . r . rose
Changeset: 931df9b18ac1 Author:jrose Date: 2011-04-29 04:00 -0700 URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/931df9b18ac1 doc: apply more JSR 292 comments ! meth-doc-7014005.patch Changeset: 2471d29f121b Author:jrose Date: 2011-04-29 04:01 -0700 URL: http://h

Re: Assembly output from JRuby 'fib'

2011-04-29 Thread Christian Thalinger
On Apr 28, 2011, at 3:19 PM, Charles Oliver Nutter wrote: > On Thu, Apr 28, 2011 at 5:16 AM, Christian Thalinger > wrote: >> I took a look at it. I used 64-bit x86 since the code is a bit smaller than >> with 32-bit. >> >> The code is almost identical but three things popped into my eye (the ou

Re: hg: mlvm/mlvm/jdk: 2 new changesets

2011-04-29 Thread Rémi Forax
ricochet rulez ? Rémi On 04/29/2011 01:01 PM, john.r.r...@oracle.com wrote: > Changeset: 931df9b18ac1 > Author:jrose > Date: 2011-04-29 04:00 -0700 > URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/931df9b18ac1 > > doc: apply more JSR 292 comments > > ! meth-doc-7014005.patch >

Re: Assembly output from JRuby 'fib'

2011-04-29 Thread Rémi Forax
On 04/29/2011 01:09 PM, Christian Thalinger wrote: > On Apr 28, 2011, at 3:19 PM, Charles Oliver Nutter wrote: >> On Thu, Apr 28, 2011 at 5:16 AM, Christian Thalinger >> wrote: >>> I took a look at it. I used 64-bit x86 since the code is a bit smaller >>> than with 32-bit. >>> >>> The code is a

Re: Unusually high polymorphic dispatch costs?

2011-04-29 Thread Rémi Forax
On 04/28/2011 09:58 PM, Charles Oliver Nutter wrote: > I'm trying to figure out why polymorphic dispatch is incredibly slow > in JRuby + indy. Take this benchmark, for example: > > class A; def foo; end; end > class B; def foo; end; end > > a = A.new > b = B.new > > 5.times { puts Benchmark.measure

new macosx build of mlvm

2011-04-29 Thread Stephen Bannasch
I've uploaded a new build and all the jdk/test/java/lang/invoke test pass: http://www.concord.org/~sbannasch/mlvm/java-1.7.0-internal-mlvm-2011_04_29.tar.gz $ jtreg -XX:+UnlockExperimentalVMOptions -XX:+EnableInvokeDynamic -jdk:build/bsd-amd64/j2sdk-image -v:summary jdk/test/java/lang/invoke/

Re: Assembly output from JRuby 'fib'

2011-04-29 Thread Rémi Forax
On 04/28/2011 08:28 PM, Charles Oliver Nutter wrote: [...] > * Fixnum overflow checks in + and - operations >> Do you specialize the overflow check depending on the callsite ? >> for fib(n - 1), you just have to check if n is different from >> Integer.MIN_INT, >> for fib(n - 2), if n is<= to

hg: mlvm/mlvm/hotspot: 3 new changesets

2011-04-29 Thread lukas . stadler
Changeset: 76c1e87d8341 Author:Lukas Stadler Date: 2011-04-29 16:44 +0200 URL: http://hg.openjdk.java.net/mlvm/mlvm/hotspot/rev/76c1e87d8341 meth: small fix, distinct arg names ! meth-conv-6939861.patch Changeset: d3a3a7977609 Author:Lukas Stadler Date: 2011-04-29 18:11

hg: mlvm/mlvm/jdk: coro: rebase and small fix to series file

2011-04-29 Thread lukas . stadler
Changeset: abe7e564b727 Author:Lukas Stadler Date: 2011-04-29 18:22 +0200 URL: http://hg.openjdk.java.net/mlvm/mlvm/jdk/rev/abe7e564b727 coro: rebase and small fix to series file ! coro.patch ! series ___ mlvm-dev mailing list mlvm-dev@

Re: hg: mlvm/mlvm/hotspot: 3 new changesets

2011-04-29 Thread Stephen Bannasch
I'm now getting this error building: build-bootstrap-javac: [mkdir] Created dir: /Users/stephen/dev/java/src/mlvm/sources/build/bsd-amd64/langtools/build/bootstrap/gensrc [mkdir] Created dir: /Users/stephen/dev/java/src/mlvm/sources/build/bsd-amd64/langtools/build/bootstrap/classes [

Re: Unusually high polymorphic dispatch costs?

2011-04-29 Thread Ola Bini
Hi, Given that creating GWTs are expensive, is it a really bad idea to create them and bind them on a cache miss then? My current logic for call sites look something like this: invoke call site if fallback, check if current morphism is < 10. If so, create a new GWT with the

Re: Unusually high polymorphic dispatch costs?

2011-04-29 Thread Charles Oliver Nutter
I think my strategy is going to be something like this: * Bind first method encountered straight through with a new GWT * Upon encountering nth new method, rebuild GWT chain to check first, second, nth PIC-style * For some N encountered methods, failover to a simple IC Some variation of these (pr

Re: Assembly output from JRuby 'fib'

2011-04-29 Thread Mark Roos
I have seen a stack map issue with ASM 4 as well. In my case it was dead ( unreachable ) code which had a return instruction in it. Seemed to confuse the next stack map computation. I am allowing ASM 4 to compute the maps on its own. I replaced it (the return) with no ops and the problem went

Re: hg: mlvm/mlvm/jdk: 2 new changesets

2011-04-29 Thread John Rose
On Apr 29, 2011, at 6:19 AM, Rémi Forax wrote: > ricochet rulez ? > > Rémi Haz ricochet. Here are some comments on this stuff. Curry's original BCKW system of combinators (http://en.wikipedia.org/wiki/B,C,K,W_system) is similar to the MH api. B(f,g) = λ x . f(g(x)) // MHs.filterArguments(f

Re: Assembly output from JRuby 'fib'

2011-04-29 Thread Charles Nutter
Rémi and I confirmed that it is in fact dead code (JRuby's fault) which is causing a problem for ASM 4 (ASM's fault). He's looking into a fix, and I'll try to eliminate the dead code. Hopefully it can be fixed in ASM soon, since the code in question is being generated by a particularly gnarly p