RFR: JDK-8302335: IGV: Bytecode not showing [v3]

Tobias Holenstein tholenstein at openjdk.org
Thu Feb 16 13:06:57 UTC 2023


> Currently, IGV does not show the bytecode of a graph in the "Bytecode" window although the bytecode is present in the XML file.
> 
> # Solution
> 
> Following is the `<bytecodes>` block of the XML file
> 
> <bytecodes>
> <![CDATA[
>    0 iconst_3
>    1 istore_1
>    2 bipush 9
>    4 istore_2
>    5 iload_2
>    6 ifle 34
>   0   bci: 6    BranchData          taken(0) displacement(112) not taken(0)
>    9 iconst_2
>   10 istore_3
>   11 iload_3
>   12 iload_2
>   13 if_icmpge 28
>   32  bci: 13   BranchData          taken(0) displacement(56)  not taken(0)
>   16 iload_1
>   17 istore_1
>   18 iconst_1
>   19 iload_3
>   20 irem
>   21 istore_1
>   22 iinc #3 1
>   25 goto 11
>   64  bci: 25   JumpData            taken(0) displacement(-32)
>   28 iinc #2 -1
>   31 goto 5
>   88  bci: 31   JumpData            taken(0) displacement(-88)
>   34 return
> ]]>
> </bytecodes>
> 
> The problem was that during paring IGV skipped all lines that started with an empty space: This just skipped all bytecodes. We only want to skip bytecode like `  0   bci: 6    BranchData          taken(0) displacement(112) not taken(0)` . Meaning: whitespace - number - exactly two white spaces - and then arbitrary text.
> 
> <img width="283" alt="bytecode" src="https://user-images.githubusercontent.com/71546117/218495199-2b02a79c-3065-404c-af57-3f8a603ac499.png">

Tobias Holenstein has updated the pull request incrementally with one additional commit since the last revision:

  print IGV bytecode correctly even in the presents of bug JDK-8302656

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/12537/files
  - new: https://git.openjdk.org/jdk/pull/12537/files/6510ea20..7f9cc1ed

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=12537&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=12537&range=01-02

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/12537.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12537/head:pull/12537

PR: https://git.openjdk.org/jdk/pull/12537


More information about the hotspot-compiler-dev mailing list