RFR 8227568 [lworld][c1] oopmap missing for calls to store_value_type_fields_to_buf

Ioi Lam ioi.lam at oracle.com
Thu Jul 18 06:35:01 UTC 2019


Hi Tobias,

Thanks foe the review.

On 7/17/19 10:10 PM, Tobias Hartmann wrote:
> Hi Ioi,
>
> looks good to me. Just wondering, why do you need the changes in c1_LIR.cpp:1088?
The reason is there was almost identical code in the old version of 
c1_LIRAssembler.cpp around line 488, so I just consolidated the code 
into a single place.

Thanks
- Ioi


> Thanks,
> Tobias
>
> On 17.07.19 05:34, Ioi Lam wrote:
>> https://bugs.openjdk.java.net/browse/JDK-8227568
>> http://cr.openjdk.java.net/~iklam/valhalla/8227568-oompap-for-returned-fields.v01/
>>
>> The main change is here in c1_LIRAssembler.cpp:
>>
>>    if (op->maybe_return_as_fields(&vk)) {
>>      int offset = store_value_type_fields_to_buf(vk);
>>      add_call_info(offset, op->info(), true);
>>    }
>>
>> With the oopmap, a GC can happen inside SharedRuntime::store_value_type_fields_to_buf
>> when called by C1.
>>
>> I also reverted the changes in JDK-8226284 (which disabled VerifyStack checks for
>> store_value_type_fields_to_buf), because now we can walk the stack due to the addition
>> of the oopmaps. (codeBlob.cpp/hpp, interfaceSupport.cpp, stubGenerator_x86_64.cpp).
>>
>> Thanks
>> - Ioi
>>
>>
>>



More information about the valhalla-dev mailing list