New bigger bytecode for small lambda in b79
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Wed Feb 27 11:08:51 PST 2013
I don't think this is lambda specific - probably related to this:
http://hg.openjdk.java.net/jdk8/tl/langtools/rev/017e8bdd440f
Will dig further.
Thanks for the report.
Maurizio
On 27/02/13 18:57, Eric Caspole wrote:
> Hi Lambda people,
> I am not sure if this is lambda specific or not, but this is what we
> found. For a small test case like this:
>
> java.util.stream.Streams.intRange(FROM, SIZ,
> STEP).parallel().forEach(p -> {ary[p]+= inc;});
>
> The bytecode of the lambda is different this week. It all works but we
> were wondering why it is so much bigger. This new bytecode also happens
> in the lambda-8-b79-linux-x64-25_feb_2013.tar.gz snapshot.
>
> Regards,
> Eric
>
>
> Old bytecode of lambda from last week:
>
> private void lambda$0(int, int);
> flags: ACC_PRIVATE, ACC_SYNTHETIC
> Code:
> stack=4, locals=3, args_size=3
> 0: aload_0
> 1: getfield #3 // Field ary:[I
> 4: iload_2
> 5: dup2
> 6: iaload
> 7: iload_1
> 8: iadd
> 9: iastore
> 10: return
> LineNumberTable:
> line 57: 0
>
>
> New bytecode generated since about Friday:
>
> private void lambda$0(int, int);
> flags: ACC_PRIVATE, ACC_SYNTHETIC
> Code:
> stack=4, locals=4, args_size=3
> 0: aload_0
> 1: getfield #3 // Field ary:[I
> 4: astore_3
> 5: aload_3
> 6: iload_2
> 7: aload_3
> 8: iload_2
> 9: iaload
> 10: iload_1
> 11: iadd
> 12: dup_x2
> 13: iastore
> 14: pop
> 15: return
> LineNumberTable:
> line 57: 0
>
>
More information about the lambda-dev
mailing list