RFR(M): 8007288: Additional WB API for compiler's testing

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Apr 2 12:19:37 PDT 2013


On 4/2/13 1:49 AM, Igor Ignatyev wrote:
>  > compileBroker.cpp - add assert() to check that.
> If I add it, WB.enqueueMethodForCompilation() will trigger this assert,
> e.g. in test 'compiler/whitebox/EnqueueMethodForCompilationTest'.

Which means the test introduces the case which never happens in normal 
execution. I am not sure it is good or bad.
You can relax assert with WhiteBoxAPI check. I really want this assert 
for normal execution.

>
>  > compilationPolicy.cpp - I don't think the change is correct since
>  > is_compile(CompLevel_any) returns false.
> 'comp_level == CompLevel_any' is the same that 'comp_level ==
> CompLevel_all' and this situation is processed in
> compilationPolicy.cpp:124, so I think that it's correct, isn't it?
> I can add explicit checking for equality to 'CompLevel_any'.

You are right about CompLevel_any. What about next check in 
m->is_not_compilable():

   if (is_method_handle_intrinsic())
     return !is_synthetic();  // the generated adapters must be compiled

Thanks,
Vladimir

>
>> Could you rename setForceInlineMethod() to testSetForceInlineMethod() to
>> be more clear what it does?
> I will rename setForceInlineMethod() and setDontInlineMethod().
>
> Best regards,
> Igor Ignatyev
>
> On 04/01/2013 09:30 PM, Vladimir Kozlov wrote:
>> compileBroker.cpp - add assert() to check that.
>>
>> compilationPolicy.cpp - I don't think the change is correct since
>> is_compile(CompLevel_any) returns false.
>>
>> Could you rename setForceInlineMethod() to testSetForceInlineMethod() to
>> be more clear what it does?
>>
>> Thanks,
>> Vladimir
>>
>> On 4/1/13 7:15 AM, Igor Ignatyev wrote:
>>> test 'compiler/whitebox/EnqueueMethodForCompilationTest' has failed
>>> during testing, because 'CompilationPolicy::can_be_compiled()' returns
>>> 'true' for invalid comp_level (less that -1 or great that 4).
>>>
>>> i added method 'is_compile' to check whether a value is valid level of
>>> compilation and rerun jprt.
>>>
>>> in new results:
>>>    - compiler/whitebox/IsMethodCompilableTest failed on on *-i586-*-c1
>>> due to JDK-8007270
>>>    - timeouts in other compiler's tests:
>>>      * compiler/6663848/Tester
>>>      * compiler/6711100/Test
>>>      * compiler/6792161/Test6792161
>>>      * compiler/6863420/Test
>>>      * compiler/6863420/Test
>>>      * compiler/6901572/Test
>>>      * compiler/7100757/Test7100757
>>>      * compiler/7119644/TestFloatVect
>>>      * compiler/7196199/Test7196199
>>>      * compiler/7199742/Test7199742
>>>
>>> updated webrev: http://cr.openjdk.java.net/~iignatyev/8007288/webrev.01/
>>>
>>> Best regards,
>>> Igor Ignatyev
>>>
>>> On 03/29/2013 01:52 AM, David Chase wrote:
>>>> (Not a reviewer)
>>>>
>>>> Could you run these tests on the "east" JPRT queue and see if they
>>>> have any problems there?
>>>> We seem to have some surprisingly slow machines there, and that has
>>>> caused problems with other tests.
>>>>
>>>> David
>>>>
>>>>
>>>> On 2013-03-28, at 5:41 PM, Igor Ignatyev <igor.ignatyev at oracle.com>
>>>> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> Please review the patch.
>>>>>
>>>>> 1. added new functions to WhiteBox:
>>>>>   public native boolean setForceInlineMethod(Method method, boolean
>>>>> value);
>>>>>   public native boolean enqueueMethodForCompilation(Method method,
>>>>> int compLevel);
>>>>>   public native void    clearMethodState(Method method);
>>>>> 2. related changes in not whitebox code:
>>>>>   - added 'Method::clear_not_*_compilable()' and corresponded
>>>>> 'AccessFlags::clear_not_*_compilable()'
>>>>>   - added 'MethodData::init()' - reset method data into original
>>>>> state. reset all counters, flags
>>>>> 3. removed useless code:
>>>>>   - 'if (!TieredCompilation) { comp_level = CompLevel_highest_tier;
>>>>> }' in CompileBroker::compile_method() -- there is no method calls w/
>>>>> comp_level != CompLevel_highest_tier in non-tiered
>>>>>   - 'MethodData::initialize(methodHandle method)' -- declaration w/o
>>>>> definition
>>>>> 4. added tests for new WB functions
>>>>>
>>>>> webrev: http://cr.openjdk.java.net/~iignatyev/8007288/webrev.00/
>>>>> jbs: https://jbs.oracle.com/bugs/browse/JDK-8007288
>>>>> --
>>>>> Best regards,
>>>>> Igor Ignatyev
>>>>


More information about the hotspot-compiler-dev mailing list