RFR(XS) 8227632: Incorrect PrintCompilation message: made not compilable on levels 0 1 2 3 4

Boris Ulasevich boris.ulasevich at bell-sw.com
Mon Jul 15 12:42:40 UTC 2019


Hi Dean,

Yes, in practice c1/c2/all can be managed, but not all levels.

It is not good by the way because with disabled C2 for certain module I 
get compilation to C1_full (what for?) followed by recompilation to 
C1_simple. I think it would be good either to enable CompilerDirectives 
to manage all compiler levels or to teach CompilerBroker to skip C1_full 
when C2 is disabled for the method.

And I think it is better to have a single print in one place.

regards,
Boris

On 12.07.2019 21:28, dean.long at oracle.com wrote:
> In practice, aren't the only "not compilable" settings "all", "c1", and 
> "c2"?  If so, and there aren't any tests that check for these diagnostic 
> messages, it might be less confusing to only print "c1" or "c2" and move 
> the print into the 
> set_not_c1_compilable()/set_not_c2_compilable()/set_not_c1_osr_compilable()/set_not_c2_osr_compilable() 
> functions.
> 
> dl
> 
> On 7/12/19 10:02 AM, Vladimir Kozlov wrote:
>> Hi, Boris
>>
>> I agree that printing all levels values when particular one is passed 
>> is wrong.
>>
>> I think you should simply print comp_level value because it should be 
>> specific in all cases (leaving CompLevel_all check as it is and may be 
>> adding missing AOT check).
>>
>> thanks,
>> Vladimir
>>
>> On 7/12/19 5:33 AM, Boris Ulasevich wrote:
>>> Hi,
>>>
>>> Can I please have a review for the simple logging issue. Current 
>>> PrintCompilation message looks confusing, it reports "levels 0 1 2 3 
>>> 4" when level 4 only was disabled.
>>> Example:
>>> $ echo [{ match: [\"*.*\"], c2: {Exclude:true} }] > cdf.txt
>>> $ java -XX:+PrintCompilation -XX:+UnlockDiagnosticVMOptions 
>>> -XX:CompilerDirectivesFile=cdf.txt HelloWorld
>>> ### Excluding compile: java.io.OutputStreamWriter::write
>>> made not compilable on levels 0 1 2 3 4 
>>> java.io.OutputStreamWriter::write (11 bytes) excluded by CompileCommand
>>> ### Excluding compile: java.lang.String::equals
>>> made not compilable on level 0 1 2 3 4 java.lang.String::equals (50 
>>> bytes)   excluded by CompileCommand
>>>
>>> http://bugs.openjdk.java.net/browse/JDK-8227632
>>> http://cr.openjdk.java.net/~avoitylov/8227632/webrev.00
>>>
>>> thanks,
>>> Boris
> 


More information about the hotspot-compiler-dev mailing list