RFR(M): 8006683: Add WhiteBox API to testing of compiler

Igor Ignatyev igor.ignatyev at oracle.com
Wed Jan 30 16:12:05 PST 2013


Vladimir, thank you for your feedback.

> Could you also add call to get
> compilation level code->comp_level() of compiled code?
Add this is not a problem, but then we will need to have a copy of enum 
'CompLevel' in java code. Or you suggest to return int?

> Do we plan to add more WB tests later as separate *.java tests or we
> keep only one  CompilerWhiteBoxTest.java and update it?
I think it's better to write tests as separates file, because it will 
allow not care about state of counters after previous tests.

During testing of my changes I have found strange behavior of compiler:
C1 continues compilation of method even after reaching of 
recompilation's limit (PerMethodRecompilationCutoff). For C2 (w/o 
Tiered) all is correct.

Is this behavior correct? Or this is a bug?

PS Cause of this behavior is calling of 'Method:: set_not_compilable()' 
with argument 'CompLevel_full_optimization' from 
'MethodData::inc_decompile_count()', so for C1 the method is still 
compilable.

Best regards,
Igor Ignatyev

On 01/30/2013 11:53 PM, Vladimir Kozlov wrote:
> Igor,
>
> I agree with Mikael to give different name to test.
>
> Calls to get info in VM looks fine to me. Could you also add call to get
> compilation level code->comp_level() of compiled code?
>
> Do we plan to add more WB tests later as separate *.java tests or we
> keep only one  CompilerWhiteBoxTest.java and update it?
>
> Thanks,
> Vladimir
>
> On 1/29/13 12:31 PM, Igor Ignatyev wrote:
>> Hi all,
>>
>> Please review the patch
>>
>> 1. added new functions to WhiteBox:
>>    public native void    deoptimizeAll();
>>    public native boolean isMethodCompiled(Method method);
>>    public native boolean isMethodCompilable(Method method);
>>    public native boolean isMethodQueuedForCompilation(Method method);
>>    public native int     deoptimizeMethod(Method method);
>>    public native boolean setDontInlineMethod(Method method, boolean
>> value);
>>    public native int     getCompileQueuesSize();
>>
>> 2. added test 'test/compiler/WBApiTest.java' which exercises these
>> functions
>>
>> 3. added result type to macro WB_METHOD_DECLARE
>>
>> webrev: http://cr.openjdk.java.net/~vlivanov/8006683/webrev.00/


More information about the hotspot-compiler-dev mailing list