RFR: 8231659: [JVMCI] Could not work PrintAssembly for JVMCI installed code

Tom Rodriguez tom.rodriguez at oracle.com
Tue Oct 8 19:43:12 UTC 2019


Here's a webrev for my version 
http://cr.openjdk.java.net/~never/8231659/webrev.  I'll take our 
discussion for review approval.

tom

Yasumasa Suenaga wrote on 10/4/19 5:40 PM:
> Hi Tom,
> 
> I agree with you.
> Your change looks good.
> 
> Can you push it? or may I create changeset for this?
> 
> 
> Thanks,
> 
> Yasumasa
> 
> 
> On 2019/10/05 4:23, Tom Rodriguez wrote:
>>
>>
>> Yasumasa Suenaga wrote on 10/1/19 1:57 AM:
>>> Hi all,
>>>
>>> Please review this change.
>>>
>>>    JBS: https://bugs.openjdk.java.net/browse/JDK-8231659
>>>    webrev: https://cr.openjdk.java.net/~ysuenaga/JDK-8231659/webrev.00/
>>>
>>> PrintAssembly would work in twice for JVMCI installed code before, so 
>>> I fixed it in JDK-8180601.
>>> However PrintAseembly would not work for them in JDK 13 or later. It 
>>> seems due to JDK-8220623.
>>>
>>> JDK-8220623 lacks print_nmethod() call. Thus I revert JDK-8180601 to 
>>> work PrintAssembly.
>>
>> I'd noticed this but forgot to go back and investigate.  I think it 
>> would be nicer to make that code look like the code that was 
>> accidentally removed from JVMCIEnv.cpp:
>>
>> diff -r 647e896479ff src/hotspot/share/jvmci/jvmciCodeInstaller.cpp
>> --- a/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp
>> +++ b/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp
>> @@ -642,11 +642,9 @@
>>                                           failed_speculations, 
>> speculations, speculations_len);
>>       cb = nm->as_codeblob_or_null();
>>       if (nm != NULL && compile_state == NULL) {
>> +      // This compile didn't come through the CompileBroker so 
>> perform the printing here
>>         DirectiveSet* directive = 
>> DirectivesStack::getMatchingDirective(method, compiler);
>> -      bool printnmethods = directive->PrintAssemblyOption || 
>> directive->PrintNMethodsOption;
>> -      if (!printnmethods && (PrintDebugInfo || PrintRelocations || 
>> PrintDependencies || PrintExceptionHandlers)) {
>> -        nm->print_nmethod(printnmethods);
>> -      }
>> +      nm->maybe_print_nmethod(directive);
>>         DirectivesStack::release(directive);
>>       }
>>     }
>>
>> No point in duplicating that logic.
>>
>> tom


More information about the hotspot-compiler-dev mailing list