Skip to content

Instantly share code, notes, and snippets.

@ytoshima
Created November 16, 2011 09:46
Show Gist options
  • Save ytoshima/1369697 to your computer and use it in GitHub Desktop.
Save ytoshima/1369697 to your computer and use it in GitHub Desktop.
TraceOptoParse output example
static int doit();
flags: ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: iconst_0
1: istore_0
2: iconst_0
3: istore_1
4: iload_1
5: bipush 100
7: if_icmpge 20
10: iload_0
11: iload_1
12: iadd
13: istore_0
14: iinc 1, 1
17: goto 4
20: iload_0
21: ireturn
LineNumberTable:
line 10: 0
line 11: 2
line 12: 20
StackMapTable: number_of_entries = 2
frame_type = 253 /* append */
offset_delta = 4
locals = [ int, int ]
frame_type = 250 /* chop */
offset_delta = 15
$ ~/jdk1.7.0-b147/fastdebug/bin/java -XX:+TraceOptoParse -XX:+PrintCompilation -XX:CICompilerCount=1 sum
VM option '+TraceOptoParse'
VM option '+PrintCompilation'
VM option 'CICompilerCount=1'
269 1 sum::doit (22 bytes)
Merging state at block #0 bci:0 with empty state on path 1
Parsing block #0 at bci [0,4), successors: 1
@ bci:0 @ bci:1 @ bci:2 @ bci:3Merging state at block #1 bci:4 with empty state on path 1
Parsing block #1 at bci [4,10), successors: 2 4
@ bci:4 @ bci:5 @ bci:7Merging state at block #2 bci:10 with empty state on path 2
Uncommon trap reason='predicate' action='maybe_recompile' at bci:10
Uncommon trap reason='loop_limit_check' action='maybe_recompile' at bci:10
Parsing block #2 at bci [10,20), successors: 3 lphd
@ bci:10 @ bci:11 @ bci:12 @ bci:13 @ bci:14 @ bci:17Merging state at block #3 bci:4 with empty state on path 1
Parsing block #3 at bci [4,10), successors: 2 4
@ bci:4 @ bci:5 @ bci:7Merging state at block #4 bci:20 with empty state on path 2
Merging state at block #2 bci:10 with previous state on path 1
Parsing block #4 at bci [20,22), successors:
@ bci:20 @ bci:21 301 1 % sum::doit @ 4 (22 bytes)
Merging state at block #0 bci:4 with empty state on path 1
Parsing block #0 at bci [4,10), successors: 1 3
@ bci:4 @ bci:5 @ bci:7Merging state at block #3 bci:20 with empty state on path 2
Merging state at block #1 bci:10 with empty state on path 2
Uncommon trap reason='predicate' action='maybe_recompile' at bci:10
Uncommon trap reason='loop_limit_check' action='maybe_recompile' at bci:10
Parsing block #1 at bci [10,20), successors: 2 lphd
@ bci:10 @ bci:11 @ bci:12 @ bci:13 @ bci:14 @ bci:17Merging state at block #2 bci:4 with empty state on path 1
Parsing block #2 at bci [4,10), successors: 1 3
@ bci:4 @ bci:5 @ bci:7Merging state at block #3 bci:20 with previous state on path 1
Merging state at block #1 bci:10 with previous state on path 1
Parsing block #3 at bci [20,22), successors:
@ bci:20 @ bci:21 305 2 % ! sum::main @ 4 (34 bytes)
Merging state at block #0 bci:4 with empty state on path 1
Parsing block #0 at bci [4,10), successors: 1 3
@ bci:4 @ bci:5 @ bci:7Merging state at block #3 bci:23 with empty state on path 2
Merging state at block #1 bci:10 with empty state on path 2
Uncommon trap reason='predicate' action='maybe_recompile' at bci:10
Uncommon trap reason='loop_limit_check' action='maybe_recompile' at bci:10
Parsing block #1 at bci [10,23), successors: 2 lphd
@ bci:10 @ bci:11Merging state at block #0 bci:0 with empty state on path 1
Parsing block #0 at bci [0,4), successors: 1
@ bci:0 @ bci:1 @ bci:2 @ bci:3Merging state at block #1 bci:4 with empty state on path 1
Parsing block #1 at bci [4,10), successors: 2 4
@ bci:4 @ bci:5 @ bci:7Merging state at block #2 bci:10 with empty state on path 2
Uncommon trap reason='predicate' action='maybe_recompile' at bci:10
Uncommon trap reason='loop_limit_check' action='maybe_recompile' at bci:10
Parsing block #2 at bci [10,20), successors: 3 lphd
@ bci:10 @ bci:11 @ bci:12 @ bci:13 @ bci:14 @ bci:17Merging state at block #3 bci:4 with empty state on path 1
Parsing block #3 at bci [4,10), successors: 2 4
@ bci:4 @ bci:5 @ bci:7Merging state at block #4 bci:20 with empty state on path 2
Merging state at block #2 bci:10 with previous state on path 1
Parsing block #4 at bci [20,22), successors:
@ bci:20 @ bci:21 @ bci:14 @ bci:15 @ bci:16 @ bci:17 @ bci:20Merging state at block #2 bci:4 with empty state on path 1
Parsing block #2 at bci [4,10), successors: 1 3
@ bci:4 @ bci:5 @ bci:7Merging state at block #3 bci:23 with previous state on path 1
Merging state at block #1 bci:10 with previous state on path 1
Parsing block #3 at bci [23,29), successors: 4 5(e)
@ bci:23 @ bci:26Merging state at block #5 bci:32 with empty state on path 1
Merging state at block #4 bci:29 with empty state on path 1
Parsing block #4 at bci [29,32), successors: 6
@ bci:29Merging state at block #6 bci:33 with empty state on path 2
Parsing block #5 at bci [32,33), successors: 6
@ bci:32Merging state at block #6 bci:33 with previous state on path 1
Parsing block #6 at bci [33,34), successors:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment