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

Christian Thalinger cthalinger at twitter.com
Thu Oct 6 21:19:01 UTC 2016


Looks good.

> On Oct 5, 2016, at 10:11 PM, Nils Eliasson <nils.eliasson at oracle.com> 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