[9] RFR(S/M): 8166377: is_compiled_by_jvmci hot in some profiles - improve nmethod compiler type detection

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Oct 6 16:59:31 UTC 2016


Good.

thanks,
Vladimir

On 10/6/16 1:11 AM, Nils Eliasson wrote:
> sure,
>
> webrev: http://cr.openjdk.java.net/~neliasso/8166377/webrev.04/
>
> Regards,
> Nils
>
> On 2016-10-05 17:46, Vladimir Kozlov wrote:
>> Can you place new files in vm/compiler/ directory?
>>
>> Thanks,
>> Vladimir
>>
>> On 10/5/16 3:30 AM, Nils Eliasson wrote:
>>> Hi,
>>>
>>> I have moved compilerType and compLevel to a new
>>> compilerDefinitions.hpp/cpp files.
>>>
>>> http://cr.openjdk.java.net/~neliasso/8166377/webrev.03/
>>>
>>> Regards,
>>> Nils Eliasson
>>>
>>> On 2016-10-05 09:43, Nils Eliasson wrote:
>>>> Putting them in abstract compiler caused an include hell, and all the
>>>> comp level defintions where already in globalDefinitions (probably by
>>>> the same reason).
>>>>
>>>> I'll give it a second try putting them in abstractCompiler. One other
>>>> alternative is having a separate compilerDefinitions file.
>>>>
>>>> Regards,
>>>> Nils
>>>>
>>>> On 2016-10-04 19:11, Christian Thalinger wrote:
>>>>>
>>>>>> On Oct 4, 2016, at 3:54 AM, Nils Eliasson <nils.eliasson at oracle.com>
>>>>>> wrote:
>>>>>>
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Please review this change. It touches many files but is not complex.
>>>>>>
>>>>>> Description:
>>>>>> We have seen a performance regression in some benchmarks where
>>>>>> nmethod::is_compiled_by_jvmci() has been hot. That method is used is
>>>>>> a workaround in CompiledMethod::is_deopt_entry(). The workaround
>>>>>> remains for the moment, this fix makes it less costly.
>>>>>>
>>>>>> Summary:
>>>>>> This fix removes the compiler reference from the codeblobs and
>>>>>> instead performs the compiler type check on a constant, this removes
>>>>>> a double dereference when checking the compiler. I also took the
>>>>>> time to properly add the compiler types to the constructors.
>>>>>>
>>>>>>
>>>>>> bugs: https://bugs.openjdk.java.net/browse/JDK-8166377
>>>>>> webrev: http://cr.openjdk.java.net/~neliasso/8166377/
>>>>>> <http://cr.openjdk.java.net/%7Eneliasso/8166377/>
>>>>>
>>>>> I don’t like that all the CompilerType stuff is now in
>>>>> globalDefinitions.  Why did you move it there?
>>>>>
>>>>>>
>>>>>> Regards,
>>>>>> Nils Eliasson
>>>>>
>>>>
>>>
>


More information about the hotspot-compiler-dev mailing list