New bigger bytecode for small lambda in b79
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Mon Mar 11 07:36:28 PDT 2013
On 11/03/13 14:20, Eric Caspole wrote:
> Hi Maurizio,
> Is there a bug number for this issue?
Hi Eric, sorry for not following up with an update.
Bug number is 8009170. It has already been fixed in JDK 8 - the fix will
trickle down to the lambda repository in a week or so.
Maurizio
>
> If need be, and I can do it as a non-Oracle person, just send me a
> link to the bug db.
> Thanks,
> Eric
>
>
> On 02/27/2013 02:08 PM, Maurizio Cimadamore wrote:
>> 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