RFR 8183130: [MVT] Implement intrinsics for Q-typed LambdaForms

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Wed Jul 5 12:34:00 UTC 2017


Looks nice!

One comment:

+    private Name emitLoop(int pos) {
...
+        builder.label("LOOP");
..
+                    .goto_("DONE")
+                    .label("NEXT_" + c);

Since lambda forms can be "extended" (see BoundMethodHandle.rebind() + 
BMH.editor() usages), it's possible (at least, in theory) to have 
multiple loop intrinsics in a single LF.

I suggest to add position to LOOP, DONE, and NEXT labels to make them 
unique in the context of a single lambda form:
   "LOOP_"+pos
   "DONE_"+pos)
   "NEXT_" + pos + "_" + c

(I hope string identifiers will be replaced with a dedicated Label class 
to make it easier to create unique label identifiers).

Best regards,
Vladimir Ivanov

On 7/5/17 3:19 PM, Maurizio Cimadamore wrote:
> Hi,
> I've done a bigger rewriting of the patch, (and I also removed the 
> assertion). Now the organization is such that the intrinsic code can 
> take more advantage of the fluent style of code builders - this is 
> particularly evident in emitSelectAlternatives (but emitLoop has 
> improved too).
> 
> http://cr.openjdk.java.net/~mcimadamore/8183130_v2
> 
> Maurizio
> 
> 
> On 03/07/17 22:11, Maurizio Cimadamore wrote:
>> I've missed that, sorry - I will remove the assertion
>>
>> Maurizio
>>
>>
>> On 03/07/17 22:00, Vladimir Ivanov wrote:
>>> From correctness POV, it's perfectly fine to miss an intrinsic 
>>> opportunity. So, I'd prefer to avoid throwing an error until all 
>>> intrinsics are implemented:
>>>
>>> +                default: {
>>> +                    throw newInternalError("Unknown intrinsic: "+intr);
>>> +                }
>>>
>>> Otherwise, looks good.
>>>
>>> Best regards,
>>> Vladimir Ivanov
>>>
>>> On 7/3/17 5:27 PM, Maurizio Cimadamore wrote:
>>>> Hi,
>>>> This patch adds support for intrinsic in LambdaFormBuilder. More 
>>>> intrinsics to come in separate followup patches.
>>>>
>>>> http://cr.openjdk.java.net/~mcimadamore/8183130/
>>>>
>>>> Thanks
>>>> Maurizio
>>>>
>>>>
>>
> 


More information about the valhalla-dev mailing list