RFR(M) 8168792: [AOT] problems in MethodHandle with aot-compiled java.base

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Dec 22 03:46:14 UTC 2016


Igor, I want to update docs according to this changes and I am thinking 
may be we should call flag:

--compile-with-assertions

It matches other flags: --compile-for-tiered, --compile-commands

What do you think?

Thanks,
Vladimir

On 12/20/16 11:27 AM, Igor Veresov wrote:
> Thanks, Vladimir!
>
> igor
>
>> On Dec 20, 2016, at 11:24 AM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>>
>> Okay. Good.
>>
>> Thanks,
>> Vladimir
>>
>> On 12/20/16 11:06 AM, Igor Veresov wrote:
>>> It was hack that was added to fold through loads of $assertionsDisabled (otherwise aot doesn’t fold loads, that’s an exception). So the load would become a false constant if assertions where enabled for jaotc or true if they were disabled. With how we want handle assertions now it’s not needed anymore. I’ll push the appropriate change to graal-core as well.
>>>
>>> igor
>>>
>>>> On Dec 20, 2016, at 10:45 AM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>>>>
>>>> Can you explain removal of code in HotSpotNodePlugin.java ?
>>>>
>>>> Otherwise changes seem fine.
>>>>
>>>> Thanks,
>>>> Vladimir
>>>>
>>>> On 12/20/16 10:22 AM, Igor Veresov wrote:
>>>>> This basically adds assertions support for AOT. It operates as follows:
>>>>> 1. By default the asserts are compiled away. That is the load from
>>>>> $assertionsDisabled is replaced with a true constant. At runtime if the
>>>>> user enables assertions for the class that is in the AOT library, that
>>>>> class is rejected and all AOT dependees are made not entrant and deopted.
>>>>> 2. If —enable-assertions flag is specified to jaotc, the loads from
>>>>> $assertionsDisabled are not folded. The resulting code is good for
>>>>> executing with or without assertions enabled.
>>>>>
>>>>> Webrev: http://cr.openjdk.java.net/~iveresov/8168792/webrev.00/
>>>>>
>>>>>
>>>>> igor
>>>
>


More information about the hotspot-compiler-dev mailing list