How to inspect hotspot compiler results? hsdis binaries for Windows?

Ulf Zibis Ulf.Zibis at gmx.de
Fri Nov 20 10:27:45 PST 2009


Am 20.11.2009 03:24, Vladimir Kozlov schrieb:
> Ulf Zibis wrote:
>> P.S.: Is there any documentation, how to read the special 
>> key-letters/words, printed from CompileCommand?
>
> What do you mean? Please, give example.

I mean things like:
-   Could not load hsdis-i386.dll; library not loadable; PrintAssembly 
is disabled  // PrintAssembly was not in option list
    PrintAssembly request changed to PrintOptoAssembly
-    char[int:>=0]:exact *
-   #r051
-   N559:
-   #        B1 <- BLOCK HEAD IS JUNK   Freq: 1
-   B1:
-   B2: #        B34 B3 <- B1  Freq: 1
-   P=0.000000 C=1471261.000000
-   precise klass sun/nio/cs/ext/EUC_TW_C_d_b_codeToBuffer4$Decoder: 
0x03d4c448:Constant:exact *]
-   Constant:exact *
-   P=0.517169 C=1471261.000000
-   wrapper for: uncommon_trap(reason='range_check' 
action='make_not_entrant')
-   sun.nio.cs.ext.EUC_TW_C_d_b_codeToBuffer4$Decoder::decode @ bci:58
-   L[0]=_ L[1]=_ L[2]=_ L[3]=esp + #48 L[4]=esp + #36 L[5]=esp + #40 
L[6]=esp + #44 L[7]=esp + #0 L[8]=_ STK[0]=EBP STK[1]=esp + #48
-   OopMap{ebp=Oop [36]=Oop [40]=Oop off=492}
-   INT3   ; ShouldNotReachHere
-   Freq: 1.01327e-006  // what does such small value especially mean ?
-   B36: #        B28 <- B35  Freq: 1.75827e-006
            # Block is sole successor of call
-   TEST   EBX,EBX
         Je,s
-   # Destroy frame
-   JMP    rethrow_stub
-   Compiled (c2)  38   nmethod (2)
-   PcDesc(pc=0xc18650 offset=210):
       java.lang.String::charAt  @31  reexecute=false
       sun.nio.cs.ext.EUC_TW_C_d_b_codeToBuffer4$Decoder::decode  @61  
reexecute=false
-   #0
    OopMap{ebp=Oop [36]=Oop [40]=Oop off=492}
    #1
    OopMap{[36]=Oop [40]=Oop [4]=Oop off=528}
    #2
    OopMap{ebp=Oop [36]=Oop [40]=Oop off=572}
    #3
    OopMap{[40]=Oop off=584}
    #4
    OopMap{ebp=Oop [40]=Oop off=608}
    #5
    OopMap{off=628}
-     interpreter_invocation_count:  8847362
      invocation_counter:               9129
      backedge_counter:                    1
-     16  bci: 9    BranchData          taken(0) displacement(48)

Items of extra special interest are marked red.

-Ulf


>
>>>> -Xcomp
>>>> What is this ? There is no docu on 
>>>> jdk1.7.0/docs/technotes/tools/windows/java.html
>>>
>>> We use it for stress testing out JIT compiler when all called methods
>>> are immediately compiled without reaching threshold.
>>> Note: the program execution will be very slow and generated code
>>> for compiled methods could be very different from normal execution
>>> since no profiling information is collected for executed bytecode.
>>
>> Thanks.
>> Can this option be specified for single methods ?
>
> -Xcomp -XX:CompileOnly=class::method
>
> But it will not do any inlining since called methods should not be 
> compiled.

Thanks.
How can I choose e.g. 3 methods at 1 time?

E.g. CompileCommand=print,java.lang.System::print
How to distinguish between methods of same name, but different signature ?

-Ulf

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-dev/attachments/20091120/a8eb6afa/attachment.html 


More information about the hotspot-dev mailing list