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

Vladimir Kozlov Vladimir.Kozlov at Sun.COM
Mon Nov 23 12:21:20 PST 2009


This output is for our internal usage so we put there only what we need.
If you want to know more about this output look on Hotspot sources.

Ulf Zibis wrote:

> ... and what does [int:>=0] mean?

Array's indexing range.

> What is: @ bci:58

Bytecode index == 58

> 'oops' I guess is an object pointer. For what does this abreviation 
> stand for as outlined expression, to better remember

http://openjdk.java.net/groups/hotspot/docs/HotSpotGlossary.html

> What is INT3 ?

Look in x86 instructions.

> 
>>> -   B36: #        B28 <- B35  Freq: 1.75827e-006
>>>             # Block is sole successor of call
>>
>> It says.
> Does that say, there is no other branch to B36?

It is block which follows the block with call - that is all.

>>> -   TEST   EBX,EBX
>>>     Je,s
>>
>> zeroing EBX
> So same than MOV EBX, #0 ?

Sorry, it is compare with 0, not zerroing.
Look in x86 instructions.

 > What does the ",s" mean?

short branch

>>
>>> -   Compiled (c2)  38   nmethod (2)
>>
>> c2 is name of Server JIT compiler (-server option or default on 
>> multicores),
>> other c1 is Client lightweight compiler.
> ... but what is
>    38   nmethod (2)

38 should be the same number as PrintCompilation gives.
(2) - compilation level, in short - compiled by c2.

> 
>>
>>> -   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
>>
>> From pcDesc.hpp:
>> // PcDescs map a physical PC (given as offset from start of nmethod) to
>> // the corresponding source scope and byte code index.
> 
> ... but what is
>    @31  reexecute=false
> Why are there 2 methods referenced by same PcDesc ?

charAt() is inlined into decode() in this compiled code.

> 
>>>       invocation_counter:               9129
>>>       backedge_counter:                    1
>>> -     16  bci: 9    BranchData          taken(0) displacement(48)
>>
>> It is bytecode profiling information.
> 
> ... but what is
>    16  bci: 9
>    displacement(48)

16 is offset in profiling block, 9 is current bytecode index,
48 is displacement - (16+48) is offset of branch target bytecode
profiling information.

Vladimir

> 
> 
> 
> Thanks,
> 
> -Ulf
> 
> 


More information about the hotspot-dev mailing list