Skip to content

Instantly share code, notes, and snippets.

@yongchun
Forked from rednaxelafx/PrintOptoAssembly
Created April 8, 2014 00:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yongchun/10078603 to your computer and use it in GitHub Desktop.
Save yongchun/10078603 to your computer and use it in GitHub Desktop.
<graphDocument>
<group difference="true">
<properties>
<p name="name">
virtual void StopThread$1.run()</p>
<p name="type">
</p>
<p name="public">
true</p>
</properties>
<method bci="-1" name="virtual void StopThread$1.run()" shortName=" StopThread$1::run">
<inline>
<method bci="2" name="static jboolean StopThread.access$000()" shortName=" StopThread::access$000">
<bytecodes>
&lt;![CDATA[
0 getstatic 1 &lt;StopThread.stopRequested/Z&gt;
3 ireturn
]]&gt;</bytecodes>
</method>
</inline>
<bytecodes>
&lt;![CDATA[
0 iconst_0
1 istore_1
2 invokestatic 2 &lt;StopThread.access$000()Z&gt;
5 ifne 14
8 iinc #1 1
11 goto 2
14 return
]]&gt;</bytecodes>
</method>
<graph>
<properties>
<p name="name">
After Parsing</p>
</properties>
<nodes>
<node id="101026232">
<properties>
<p name="id">
101026232</p>
<p name="name">
Root</p>
<p name="type">
bottom</p>
<p name="idx">
0</p>
<p name="debug_idx">
3200000</p>
<p name="dump_spec">
</p>
<p name="is_block_proj">
true</p>
<p name="is_block_start">
true</p>
</properties>
</node>
<node id="101182912">
<properties>
<p name="id">
101182912</p>
<p name="name">
Return</p>
<p name="type">
bottom</p>
<p name="idx">
109</p>
<p name="debug_idx">
3400109</p>
<p name="dump_spec">
</p>
</properties>
</node>
<node id="101357392">
<properties>
<p name="id">
101357392</p>
<p name="name">
Parm</p>
<p name="type">
return_address</p>
<p name="idx">
9</p>
<p name="debug_idx">
3200009</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
4</p>
<p name="dump_spec">
ReturnAdr</p>
<p name="short_name">
RA</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="101369656">
<properties>
<p name="id">
101369656</p>
<p name="name">
CallStaticJava</p>
<p name="type">
tuple:</p>
<p name="idx">
68</p>
<p name="debug_idx">
3200068</p>
<p name="is_call">
true</p>
<p name="dump_spec">
# Static uncommon_trap(reason='predicate' action='maybe_recompile') void ( int ) C=0.000100 StopThread$1::run @ bci:8</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101360192">
<properties>
<p name="id">
101360192</p>
<p name="name">
LoadI</p>
<p name="type">
int:</p>
<p name="idx">
26</p>
<p name="debug_idx">
3200026</p>
<p name="dump_spec">
@rawptr:BotPTR, idx=Raw; #int</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="101357528">
<properties>
<p name="id">
101357528</p>
<p name="name">
Parm</p>
<p name="type">
rawptr:</p>
<p name="idx">
10</p>
<p name="debug_idx">
3200010</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
5</p>
<p name="dump_spec">
Parm0: rawptr:BotPTR</p>
<p name="short_name">
P0</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="101360352">
<properties>
<p name="id">
101360352</p>
<p name="name">
CallLeaf</p>
<p name="type">
tuple:</p>
<p name="idx">
27</p>
<p name="debug_idx">
3200027</p>
<p name="is_call">
true</p>
<p name="dump_spec">
# OSR_migration_end void ( rawptr:BotPTR )</p>
</properties>
</node>
<node id="101361056">
<properties>
<p name="id">
101361056</p>
<p name="name">
Proj</p>
<p name="type">
memory</p>
<p name="idx">
30</p>
<p name="debug_idx">
3200030</p>
<p name="con">
2</p>
<p name="dump_spec">
#2 Memory: @rawptr:BotPTR, idx=Raw;</p>
<p name="short_name">
M</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="101176512">
<properties>
<p name="id">
101176512</p>
<p name="name">
Phi</p>
<p name="type">
memory</p>
<p name="idx">
77</p>
<p name="debug_idx">
3200077</p>
<p name="dump_spec">
#memory Memory: @rawptr:BotPTR, idx=Raw;</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101175760">
<properties>
<p name="id">
101175760</p>
<p name="name">
Region</p>
<p name="type">
control</p>
<p name="idx">
74</p>
<p name="debug_idx">
3200074</p>
<p name="dump_spec">
</p>
<p name="is_block_start">
true</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101175624">
<properties>
<p name="id">
101175624</p>
<p name="name">
IfTrue</p>
<p name="type">
control</p>
<p name="idx">
73</p>
<p name="debug_idx">
3200073</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
1</p>
<p name="dump_spec">
#1</p>
<p name="is_block_proj">
true</p>
<p name="short_name">
T</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101367504">
<properties>
<p name="id">
101367504</p>
<p name="name">
If</p>
<p name="type">
tuple:</p>
<p name="idx">
63</p>
<p name="debug_idx">
3200063</p>
<p name="dump_spec">
P=0.999999, C=-1.000000</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101367368">
<properties>
<p name="id">
101367368</p>
<p name="name">
Conv2B</p>
<p name="type">
int:</p>
<p name="idx">
62</p>
<p name="debug_idx">
3200062</p>
<p name="dump_spec">
</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101367232">
<properties>
<p name="id">
101367232</p>
<p name="name">
Opaque1</p>
<p name="type">
int:</p>
<p name="idx">
61</p>
<p name="debug_idx">
3200061</p>
<p name="is_macro">
true</p>
<p name="dump_spec">
</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101366280">
<properties>
<p name="id">
101366280</p>
<p name="name">
IfFalse</p>
<p name="type">
control</p>
<p name="idx">
55</p>
<p name="debug_idx">
3200055</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
0</p>
<p name="dump_spec">
#0</p>
<p name="is_block_proj">
true</p>
<p name="short_name">
F</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101366000">
<properties>
<p name="id">
101366000</p>
<p name="name">
If</p>
<p name="type">
tuple:</p>
<p name="idx">
53</p>
<p name="debug_idx">
3200053</p>
<p name="dump_spec">
P=0.000000, C=330626.000000</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101365856">
<properties>
<p name="id">
101365856</p>
<p name="name">
Bool</p>
<p name="type">
int:</p>
<p name="idx">
52</p>
<p name="debug_idx">
3200052</p>
<p name="dump_spec">
[ne]</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101365712">
<properties>
<p name="id">
101365712</p>
<p name="name">
CmpI</p>
<p name="type">
int:</p>
<p name="idx">
51</p>
<p name="debug_idx">
3200051</p>
<p name="dump_spec">
</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101365144">
<properties>
<p name="id">
101365144</p>
<p name="name">
LoadUB</p>
<p name="type">
int:</p>
<p name="idx">
49</p>
<p name="debug_idx">
3200049</p>
<p name="dump_spec">
@precise klass StopThread: 0x00000000060c2e28:Constant:exact+600 *, name=stopRequested, idx=4; #bool</p>
<p name="bci">
0 2</p>
</properties>
</node>
<node id="101364960">
<properties>
<p name="id">
101364960</p>
<p name="name">
AddP</p>
<p name="type">
klass:</p>
<p name="idx">
48</p>
<p name="debug_idx">
3200048</p>
<p name="dump_spec">
Klass:precise klass StopThread: 0x00000000060c2e28:Constant:exact+600 *</p>
<p name="bci">
0 2</p>
</properties>
</node>
<node id="101179880">
<properties>
<p name="id">
101179880</p>
<p name="name">
LoadUB</p>
<p name="type">
int:</p>
<p name="idx">
95</p>
<p name="debug_idx">
3400095</p>
<p name="dump_spec">
@precise klass StopThread: 0x00000000060c2e28:Constant:exact+600 *, name=stopRequested, idx=4; #bool</p>
<p name="bci">
0 2</p>
</properties>
</node>
<node id="101180480">
<properties>
<p name="id">
101180480</p>
<p name="name">
CmpI</p>
<p name="type">
int:</p>
<p name="idx">
97</p>
<p name="debug_idx">
3400097</p>
<p name="dump_spec">
</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101180592">
<properties>
<p name="id">
101180592</p>
<p name="name">
Bool</p>
<p name="type">
int:</p>
<p name="idx">
98</p>
<p name="debug_idx">
3400098</p>
<p name="dump_spec">
[ne]</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101180736">
<properties>
<p name="id">
101180736</p>
<p name="name">
If</p>
<p name="type">
tuple:</p>
<p name="idx">
99</p>
<p name="debug_idx">
3400099</p>
<p name="dump_spec">
P=0.000000, C=330626.000000</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101178144">
<properties>
<p name="id">
101178144</p>
<p name="name">
Region</p>
<p name="type">
control</p>
<p name="idx">
86</p>
<p name="debug_idx">
3200086</p>
<p name="dump_spec">
</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="101180880">
<properties>
<p name="id">
101180880</p>
<p name="name">
IfTrue</p>
<p name="type">
control</p>
<p name="idx">
100</p>
<p name="debug_idx">
3400100</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
1</p>
<p name="dump_spec">
#1</p>
<p name="is_block_proj">
true</p>
<p name="short_name">
T</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101363136">
<properties>
<p name="id">
101363136</p>
<p name="name">
Region</p>
<p name="type">
control</p>
<p name="idx">
38</p>
<p name="debug_idx">
3200038</p>
<p name="dump_spec">
</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="101366144">
<properties>
<p name="id">
101366144</p>
<p name="name">
IfTrue</p>
<p name="type">
control</p>
<p name="idx">
54</p>
<p name="debug_idx">
3200054</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
1</p>
<p name="dump_spec">
#1</p>
<p name="is_block_proj">
true</p>
<p name="short_name">
T</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101181016">
<properties>
<p name="id">
101181016</p>
<p name="name">
IfFalse</p>
<p name="type">
control</p>
<p name="idx">
101</p>
<p name="debug_idx">
3400101</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
0</p>
<p name="dump_spec">
#0</p>
<p name="is_block_proj">
true</p>
<p name="short_name">
F</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101176080">
<properties>
<p name="id">
101176080</p>
<p name="name">
Phi</p>
<p name="type">
memory</p>
<p name="idx">
76</p>
<p name="debug_idx">
3200076</p>
<p name="dump_spec">
#memory Memory: @BotPTR *+bot, idx=Bot;</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101181784">
<properties>
<p name="id">
101181784</p>
<p name="name">
Phi</p>
<p name="type">
memory</p>
<p name="idx">
105</p>
<p name="debug_idx">
3400105</p>
<p name="dump_spec">
#memory Memory: @BotPTR *+bot, idx=Bot;</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101175904">
<properties>
<p name="id">
101175904</p>
<p name="name">
Phi</p>
<p name="type">
abIO</p>
<p name="idx">
75</p>
<p name="debug_idx">
3200075</p>
<p name="dump_spec">
#abIO</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101177400">
<properties>
<p name="id">
101177400</p>
<p name="name">
SafePoint</p>
<p name="type">
control</p>
<p name="idx">
82</p>
<p name="debug_idx">
3200082</p>
<p name="dump_spec">
SafePoint</p>
<p name="bci">
11</p>
</properties>
</node>
<node id="101177256">
<properties>
<p name="id">
101177256</p>
<p name="name">
AddI</p>
<p name="type">
int:</p>
<p name="idx">
81</p>
<p name="debug_idx">
3200081</p>
<p name="dump_spec">
</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101177552">
<properties>
<p name="id">
101177552</p>
<p name="name">
MergeMem</p>
<p name="type">
memory</p>
<p name="idx">
83</p>
<p name="debug_idx">
3200083</p>
<p name="dump_spec">
{ N77:rawptr:BotPTR } Memory: @BotPTR *+bot, idx=Bot;</p>
<p name="bci">
11</p>
</properties>
</node>
<node id="101181960">
<properties>
<p name="id">
101181960</p>
<p name="name">
Phi</p>
<p name="type">
memory</p>
<p name="idx">
106</p>
<p name="debug_idx">
3400106</p>
<p name="dump_spec">
#memory Memory: @rawptr:BotPTR, idx=Raw;</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101360736">
<properties>
<p name="id">
101360736</p>
<p name="name">
Proj</p>
<p name="type">
control</p>
<p name="idx">
28</p>
<p name="debug_idx">
3200028</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
0</p>
<p name="dump_spec">
#0</p>
<p name="short_name">
C</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="101356928">
<properties>
<p name="id">
101356928</p>
<p name="name">
Parm</p>
<p name="type">
memory</p>
<p name="idx">
7</p>
<p name="debug_idx">
3200007</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
2</p>
<p name="dump_spec">
Memory Memory: @BotPTR *+bot, idx=Bot;</p>
<p name="short_name">
M</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="101354544">
<properties>
<p name="id">
101354544</p>
<p name="name">
Parm</p>
<p name="type">
control</p>
<p name="idx">
5</p>
<p name="debug_idx">
3200005</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
0</p>
<p name="dump_spec">
Control</p>
<p name="short_name">
C</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="101176752">
<properties>
<p name="id">
101176752</p>
<p name="name">
Phi</p>
<p name="type">
int:</p>
<p name="idx">
78</p>
<p name="debug_idx">
3200078</p>
<p name="dump_spec">
#int</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101368808">
<properties>
<p name="id">
101368808</p>
<p name="name">
MergeMem</p>
<p name="type">
memory</p>
<p name="idx">
65</p>
<p name="debug_idx">
3200065</p>
<p name="dump_spec">
{ N30:rawptr:BotPTR } Memory: @BotPTR *+bot, idx=Bot;</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101356792">
<properties>
<p name="id">
101356792</p>
<p name="name">
Parm</p>
<p name="type">
abIO</p>
<p name="idx">
6</p>
<p name="debug_idx">
3200006</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
1</p>
<p name="dump_spec">
I_O</p>
<p name="short_name">
IO</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="101367648">
<properties>
<p name="id">
101367648</p>
<p name="name">
IfFalse</p>
<p name="type">
control</p>
<p name="idx">
64</p>
<p name="debug_idx">
3200064</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
0</p>
<p name="dump_spec">
#0</p>
<p name="is_block_proj">
true</p>
<p name="short_name">
F</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101370000">
<properties>
<p name="id">
101370000</p>
<p name="name">
Proj</p>
<p name="type">
control</p>
<p name="idx">
69</p>
<p name="debug_idx">
3200069</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
0</p>
<p name="dump_spec">
#0</p>
<p name="short_name">
C</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101357064">
<properties>
<p name="id">
101357064</p>
<p name="name">
Parm</p>
<p name="type">
rawptr:</p>
<p name="idx">
8</p>
<p name="debug_idx">
3200008</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
3</p>
<p name="dump_spec">
FramePtr</p>
<p name="short_name">
RP</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="101358392">
<properties>
<p name="id">
101358392</p>
<p name="name">
MergeMem</p>
<p name="type">
memory</p>
<p name="idx">
16</p>
<p name="debug_idx">
3200016</p>
<p name="dump_spec">
{ N106:rawptr:BotPTR } Memory: @BotPTR *+bot, idx=Bot;</p>
</properties>
</node>
<node id="101181608">
<properties>
<p name="id">
101181608</p>
<p name="name">
Phi</p>
<p name="type">
abIO</p>
<p name="idx">
104</p>
<p name="debug_idx">
3400104</p>
<p name="dump_spec">
#abIO</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101366808">
<properties>
<p name="id">
101366808</p>
<p name="name">
Region</p>
<p name="type">
control</p>
<p name="idx">
58</p>
<p name="debug_idx">
3200058</p>
<p name="dump_spec">
</p>
<p name="is_block_start">
true</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="101175464">
<properties>
<p name="id">
101175464</p>
<p name="name">
Halt</p>
<p name="type">
bottom</p>
<p name="idx">
72</p>
<p name="debug_idx">
3200072</p>
<p name="dump_spec">
</p>
<p name="is_block_proj">
true</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="101364624">
<properties>
<p name="id">
101364624</p>
<p name="name">
ConP</p>
<p name="type">
klass:</p>
<p name="idx">
46</p>
<p name="debug_idx">
3200046</p>
<p name="is_con">
true</p>
<p name="dump_spec">
#precise klass StopThread: 0x00000000060c2e28:Constant:exact * Klass:precise klass StopThread: 0x00000000060c2e28:Constant:e</p>
<p name="short_name">
CP</p>
</properties>
</node>
<node id="101364728">
<properties>
<p name="id">
101364728</p>
<p name="name">
ConL</p>
<p name="type">
long:</p>
<p name="idx">
47</p>
<p name="debug_idx">
3200047</p>
<p name="is_con">
true</p>
<p name="dump_spec">
#long:600</p>
<p name="short_name">
L</p>
</properties>
</node>
<node id="101367128">
<properties>
<p name="id">
101367128</p>
<p name="name">
ConI</p>
<p name="type">
int:</p>
<p name="idx">
60</p>
<p name="debug_idx">
3200060</p>
<p name="is_con">
true</p>
<p name="dump_spec">
#int:1</p>
<p name="short_name">
1</p>
</properties>
</node>
<node id="101359264">
<properties>
<p name="id">
101359264</p>
<p name="name">
ConI</p>
<p name="type">
int:</p>
<p name="idx">
20</p>
<p name="debug_idx">
3200020</p>
<p name="is_con">
true</p>
<p name="dump_spec">
#int:0</p>
<p name="short_name">
0</p>
</properties>
</node>
<node id="101369552">
<properties>
<p name="id">
101369552</p>
<p name="name">
ConI</p>
<p name="type">
int:</p>
<p name="idx">
67</p>
<p name="debug_idx">
3200067</p>
<p name="is_con">
true</p>
<p name="dump_spec">
#int:-122</p>
<p name="short_name">
I</p>
</properties>
</node>
<node id="101354240">
<properties>
<p name="id">
101354240</p>
<p name="name">
StartOSR</p>
<p name="type">
tuple:</p>
<p name="idx">
3</p>
<p name="debug_idx">
3200003</p>
<p name="is_block_start">
true</p>
<p name="dump_spec">
#{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:rawptr:BotPTR}</p>
</properties>
</node>
<node id="101026384">
<properties>
<p name="id">
101026384</p>
<p name="name">
Con</p>
<p name="type">
top</p>
<p name="idx">
1</p>
<p name="debug_idx">
3200001</p>
<p name="is_con">
true</p>
<p name="dump_spec">
#top</p>
<p name="short_name">
^</p>
</properties>
</node>
</nodes>
<edges>
<edge to="101026232" from="101026232"/>
<edge toIndex="1" to="101026232" from="101175464"/>
<edge toIndex="2" to="101026232" from="101182912"/>
<edge to="101182912" from="101366808"/>
<edge toIndex="1" to="101182912" from="101181608"/>
<edge toIndex="2" to="101182912" from="101358392"/>
<edge toIndex="3" to="101182912" from="101357064"/>
<edge toIndex="4" to="101182912" from="101357392"/>
<edge to="101357392" from="101354240"/>
<edge to="101369656" from="101367648"/>
<edge toIndex="1" to="101369656" from="101356792"/>
<edge toIndex="2" to="101369656" from="101368808"/>
<edge toIndex="3" to="101369656" from="101357064"/>
<edge toIndex="4" to="101369656" from="101357392"/>
<edge toIndex="5" to="101369656" from="101369552"/>
<edge toIndex="6" to="101369656" from="101026384"/>
<edge toIndex="7" to="101369656" from="101360192"/>
<edge to="101360192" from="101354544"/>
<edge toIndex="1" to="101360192" from="101356928"/>
<edge toIndex="2" to="101360192" from="101357528"/>
<edge to="101357528" from="101354240"/>
<edge to="101360352" from="101354544"/>
<edge toIndex="1" to="101360352" from="101026384"/>
<edge toIndex="2" to="101360352" from="101356928"/>
<edge toIndex="3" to="101360352" from="101357064"/>
<edge toIndex="4" to="101360352" from="101026384"/>
<edge toIndex="5" to="101360352" from="101357528"/>
<edge to="101361056" from="101360352"/>
<edge to="101176512" from="101175760"/>
<edge toIndex="1" to="101176512" from="101176512"/>
<edge toIndex="2" to="101176512" from="101361056"/>
<edge to="101175760" from="101175760"/>
<edge toIndex="1" to="101175760" from="101181016"/>
<edge toIndex="2" to="101175760" from="101175624"/>
<edge to="101175624" from="101367504"/>
<edge to="101367504" from="101366280"/>
<edge toIndex="1" to="101367504" from="101367368"/>
<edge toIndex="1" to="101367368" from="101367232"/>
<edge toIndex="1" to="101367232" from="101367128"/>
<edge to="101366280" from="101366000"/>
<edge to="101366000" from="101363136"/>
<edge toIndex="1" to="101366000" from="101365856"/>
<edge toIndex="1" to="101365856" from="101365712"/>
<edge toIndex="1" to="101365712" from="101365144"/>
<edge toIndex="2" to="101365712" from="101359264"/>
<edge toIndex="1" to="101365144" from="101356928"/>
<edge toIndex="2" to="101365144" from="101364960"/>
<edge toIndex="1" to="101364960" from="101364624"/>
<edge toIndex="2" to="101364960" from="101364624"/>
<edge toIndex="3" to="101364960" from="101364728"/>
<edge toIndex="1" to="101179880" from="101176080"/>
<edge toIndex="2" to="101179880" from="101364960"/>
<edge toIndex="1" to="101180480" from="101179880"/>
<edge toIndex="2" to="101180480" from="101359264"/>
<edge toIndex="1" to="101180592" from="101180480"/>
<edge to="101180736" from="101178144"/>
<edge toIndex="1" to="101180736" from="101180592"/>
<edge toIndex="1" to="101178144" from="101177400"/>
<edge to="101180880" from="101180736"/>
<edge toIndex="1" to="101363136" from="101360736"/>
<edge to="101366144" from="101366000"/>
<edge to="101181016" from="101180736"/>
<edge to="101176080" from="101175760"/>
<edge toIndex="1" to="101176080" from="101176080"/>
<edge toIndex="2" to="101176080" from="101356928"/>
<edge to="101181784" from="101366808"/>
<edge toIndex="1" to="101181784" from="101176080"/>
<edge toIndex="2" to="101181784" from="101356928"/>
<edge to="101175904" from="101175760"/>
<edge toIndex="1" to="101175904" from="101175904"/>
<edge toIndex="2" to="101175904" from="101356792"/>
<edge to="101177400" from="101175760"/>
<edge toIndex="1" to="101177400" from="101026384"/>
<edge toIndex="2" to="101177400" from="101177552"/>
<edge toIndex="3" to="101177400" from="101026384"/>
<edge toIndex="4" to="101177400" from="101026384"/>
<edge toIndex="5" to="101177400" from="101026384"/>
<edge toIndex="6" to="101177400" from="101177256"/>
<edge toIndex="1" to="101177256" from="101176752"/>
<edge toIndex="2" to="101177256" from="101367128"/>
<edge toIndex="1" to="101177552" from="101026384"/>
<edge toIndex="2" to="101177552" from="101176080"/>
<edge toIndex="3" to="101177552" from="101176512"/>
<edge to="101181960" from="101366808"/>
<edge toIndex="1" to="101181960" from="101176512"/>
<edge toIndex="2" to="101181960" from="101361056"/>
<edge to="101360736" from="101360352"/>
<edge to="101356928" from="101354240"/>
<edge to="101354544" from="101354240"/>
<edge to="101176752" from="101175760"/>
<edge toIndex="1" to="101176752" from="101177256"/>
<edge toIndex="2" to="101176752" from="101360192"/>
<edge toIndex="1" to="101368808" from="101026384"/>
<edge toIndex="2" to="101368808" from="101356928"/>
<edge toIndex="3" to="101368808" from="101361056"/>
<edge to="101356792" from="101354240"/>
<edge to="101367648" from="101367504"/>
<edge to="101370000" from="101369656"/>
<edge to="101357064" from="101354240"/>
<edge toIndex="1" to="101358392" from="101026384"/>
<edge toIndex="2" to="101358392" from="101181784"/>
<edge toIndex="3" to="101358392" from="101181960"/>
<edge to="101181608" from="101366808"/>
<edge toIndex="1" to="101181608" from="101175904"/>
<edge toIndex="2" to="101181608" from="101356792"/>
<edge to="101366808" from="101366808"/>
<edge toIndex="1" to="101366808" from="101180880"/>
<edge toIndex="2" to="101366808" from="101366144"/>
<edge to="101175464" from="101370000"/>
<edge toIndex="1" to="101175464" from="101026384"/>
<edge toIndex="2" to="101175464" from="101026384"/>
<edge toIndex="3" to="101175464" from="101357064"/>
<edge toIndex="4" to="101175464" from="101026384"/>
<edge to="101364624" from="101026232"/>
<edge to="101364728" from="101026232"/>
<edge to="101367128" from="101026232"/>
<edge to="101359264" from="101026232"/>
<edge to="101369552" from="101026232"/>
<edge to="101354240" from="101354240"/>
<edge toIndex="1" to="101354240" from="101026232"/>
<edge to="101026384" from="101026232"/>
</edges>
<controlFlow>
<block name="0">
<successors>
<successor name="3"/>
</successors>
<nodes>
<node id="101026232"/>
</nodes>
</block>
<block name="1">
<nodes>
<node id="101369656"/>
<node id="101367648"/>
<node id="101370000"/>
<node id="101175464"/>
<node id="101369552"/>
<node id="101368808"/>
</nodes>
</block>
<block name="2">
<successors>
<successor name="1"/>
<successor name="5"/>
</successors>
<nodes>
<node id="101367504"/>
<node id="101366280"/>
<node id="101367368"/>
<node id="101360192"/>
<node id="101367232"/>
<node id="101367128"/>
</nodes>
</block>
<block name="3">
<successors>
<successor name="2"/>
<successor name="4"/>
</successors>
<nodes>
<node id="101360352"/>
<node id="101366000"/>
<node id="101363136"/>
<node id="101360736"/>
<node id="101354544"/>
<node id="101354240"/>
<node id="101357064"/>
<node id="101365856"/>
<node id="101357392"/>
<node id="101365712"/>
<node id="101361056"/>
<node id="101365144"/>
<node id="101357528"/>
<node id="101026384"/>
<node id="101356928"/>
<node id="101359264"/>
<node id="101356792"/>
<node id="101364960"/>
<node id="101364728"/>
<node id="101364624"/>
</nodes>
</block>
<block name="4">
<nodes>
<node id="101182912"/>
<node id="101366808"/>
<node id="101181784"/>
<node id="101181608"/>
<node id="101366144"/>
<node id="101181960"/>
<node id="101358392"/>
<node id="101180880"/>
</nodes>
</block>
<block name="5">
<successors>
<successor name="5"/>
<successor name="4"/>
</successors>
<nodes>
<node id="101175760"/>
<node id="101180736"/>
<node id="101178144"/>
<node id="101177400"/>
<node id="101177552"/>
<node id="101175624"/>
<node id="101176080"/>
<node id="101175904"/>
<node id="101181016"/>
<node id="101176512"/>
<node id="101176752"/>
<node id="101180592"/>
<node id="101180480"/>
<node id="101177256"/>
<node id="101179880"/>
</nodes>
</block>
</controlFlow>
</graph>
<graph>
<properties>
<p name="name">
Iter GVN 1</p>
</properties>
<nodes>
<removeNode id="101363136"/>
<removeNode id="101175904"/>
<removeNode id="101176080"/>
<removeNode id="101178144"/>
<removeNode id="101176512"/>
<removeNode id="101180592"/>
<removeNode id="101181608"/>
<removeNode id="101180480"/>
<removeNode id="101179880"/>
<removeNode id="101181784"/>
<removeNode id="101181960"/>
</nodes>
<edges>
<removeEdge toIndex="1" to="101175904" from="101175904"/>
<removeEdge toIndex="1" to="101181608" from="101175904"/>
<removeEdge to="101176512" from="101175760"/>
<removeEdge to="101181960" from="101366808"/>
<removeEdge toIndex="3" to="101177552" from="101176512"/>
<removeEdge toIndex="1" to="101176512" from="101176512"/>
<removeEdge toIndex="2" to="101179880" from="101364960"/>
<removeEdge toIndex="1" to="101179880" from="101176080"/>
<removeEdge toIndex="1" to="101181960" from="101176512"/>
<removeEdge to="101181784" from="101366808"/>
<removeEdge to="101180736" from="101178144"/>
<removeEdge toIndex="1" to="101180592" from="101180480"/>
<removeEdge toIndex="2" to="101181608" from="101356792"/>
<removeEdge toIndex="2" to="101175904" from="101356792"/>
<removeEdge toIndex="1" to="101363136" from="101360736"/>
<removeEdge to="101176080" from="101175760"/>
<removeEdge toIndex="2" to="101177552" from="101176080"/>
<removeEdge toIndex="1" to="101180736" from="101180592"/>
<removeEdge toIndex="1" to="101176080" from="101176080"/>
<removeEdge toIndex="2" to="101176512" from="101361056"/>
<removeEdge toIndex="1" to="101178144" from="101177400"/>
<removeEdge to="101181608" from="101366808"/>
<removeEdge toIndex="3" to="101358392" from="101181960"/>
<removeEdge to="101366000" from="101363136"/>
<removeEdge toIndex="2" to="101181960" from="101361056"/>
<removeEdge toIndex="1" to="101180480" from="101179880"/>
<removeEdge toIndex="1" to="101181784" from="101176080"/>
<removeEdge to="101175904" from="101175760"/>
<removeEdge toIndex="2" to="101180480" from="101359264"/>
<removeEdge toIndex="2" to="101176080" from="101356928"/>
<removeEdge toIndex="2" to="101181784" from="101356928"/>
<removeEdge toIndex="2" to="101358392" from="101181784"/>
<removeEdge toIndex="1" to="101182912" from="101181608"/>
<edge toIndex="1" to="101182912" from="101356792"/>
<edge toIndex="2" to="101177552" from="101356928"/>
<edge toIndex="3" to="101177552" from="101361056"/>
<edge to="101366000" from="101360736"/>
<edge to="101180736" from="101177400"/>
<edge toIndex="1" to="101180736" from="101365856"/>
<edge toIndex="2" to="101358392" from="101356928"/>
<edge toIndex="3" to="101358392" from="101361056"/>
</edges>
<controlFlow>
</controlFlow>
</graph>
<graph>
<properties>
<p name="name">
PhaseIdealLoop 1</p>
</properties>
<nodes>
<removeNode id="101175760"/>
<removeNode id="101181016"/>
<removeNode id="101366808"/>
<removeNode id="101180736"/>
<removeNode id="101180880"/>
<node id="101184000">
<properties>
<p name="id">
101184000</p>
<p name="name">
Loop</p>
<p name="type">
control</p>
<p name="idx">
110</p>
<p name="debug_idx">
4400110</p>
<p name="dump_spec">
inner</p>
<p name="is_block_start">
true</p>
<p name="bci">
8</p>
</properties>
</node>
</nodes>
<edges>
<removeEdge toIndex="1" to="101366808" from="101180880"/>
<removeEdge to="101180736" from="101177400"/>
<removeEdge to="101180880" from="101180736"/>
<removeEdge toIndex="1" to="101176752" from="101177256"/>
<removeEdge toIndex="2" to="101176752" from="101360192"/>
<removeEdge to="101181016" from="101180736"/>
<removeEdge to="101182912" from="101366808"/>
<removeEdge to="101177400" from="101175760"/>
<removeEdge toIndex="1" to="101175760" from="101181016"/>
<removeEdge to="101366808" from="101366808"/>
<removeEdge toIndex="1" to="101180736" from="101365856"/>
<removeEdge to="101176752" from="101175760"/>
<removeEdge to="101175760" from="101175760"/>
<removeEdge toIndex="2" to="101366808" from="101366144"/>
<removeEdge toIndex="2" to="101175760" from="101175624"/>
<edge to="101182912" from="101366144"/>
<edge to="101177400" from="101184000"/>
<edge to="101184000" from="101184000"/>
<edge toIndex="1" to="101184000" from="101175624"/>
<edge toIndex="2" to="101184000" from="101177400"/>
<edge to="101176752" from="101184000"/>
<edge toIndex="1" to="101176752" from="101360192"/>
<edge toIndex="2" to="101176752" from="101177256"/>
</edges>
<controlFlow>
</controlFlow>
</graph>
<graph>
<properties>
<p name="name">
PhaseCPP 1</p>
</properties>
<nodes>
<node id="101185576">
<properties>
<p name="id">
101185576</p>
<p name="name">
Halt</p>
<p name="type">
bottom</p>
<p name="idx">
118</p>
<p name="debug_idx">
4900118</p>
<p name="dump_spec">
</p>
<p name="is_block_proj">
true</p>
</properties>
</node>
<node id="101185200">
<properties>
<p name="id">
101185200</p>
<p name="name">
CProj</p>
<p name="type">
control</p>
<p name="idx">
115</p>
<p name="debug_idx">
4900115</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
0</p>
<p name="dump_spec">
#0</p>
<p name="is_block_proj">
true</p>
<p name="short_name">
C</p>
</properties>
</node>
<node id="101185104">
<properties>
<p name="id">
101185104</p>
<p name="name">
NeverBranch</p>
<p name="type">
tuple:</p>
<p name="idx">
114</p>
<p name="debug_idx">
4900114</p>
<p name="dump_spec">
</p>
</properties>
</node>
<node id="101185368">
<properties>
<p name="id">
101185368</p>
<p name="name">
CProj</p>
<p name="type">
control</p>
<p name="idx">
116</p>
<p name="debug_idx">
4900116</p>
<p name="is_dead_loop_safe">
true</p>
<p name="con">
1</p>
<p name="dump_spec">
#1</p>
<p name="is_block_proj">
true</p>
<p name="short_name">
C</p>
</properties>
</node>
</nodes>
<edges>
<removeEdge to="101177400" from="101184000"/>
<edge toIndex="3" to="101026232" from="101185576"/>
<edge to="101185576" from="101185368"/>
<edge toIndex="1" to="101185576" from="101026384"/>
<edge toIndex="2" to="101185576" from="101026384"/>
<edge toIndex="3" to="101185576" from="101357064"/>
<edge toIndex="4" to="101185576" from="101026384"/>
<edge to="101177400" from="101185200"/>
<edge to="101185200" from="101185104"/>
<edge to="101185104" from="101184000"/>
<edge to="101185368" from="101185104"/>
</edges>
<controlFlow>
</controlFlow>
</graph>
<graph>
<properties>
<p name="name">
Iter GVN 2</p>
</properties>
<nodes>
<removeNode id="101175464"/>
<removeNode id="101175624"/>
<removeNode id="101367232"/>
<removeNode id="101367504"/>
<removeNode id="101370000"/>
<removeNode id="101368808"/>
<removeNode id="101369656"/>
<removeNode id="101367368"/>
<removeNode id="101367648"/>
</nodes>
<edges>
<removeEdge to="101175624" from="101367504"/>
<removeEdge toIndex="1" to="101367368" from="101367232"/>
<removeEdge toIndex="1" to="101368808" from="101026384"/>
<removeEdge toIndex="3" to="101369656" from="101357064"/>
<removeEdge toIndex="2" to="101368808" from="101356928"/>
<removeEdge toIndex="2" to="101369656" from="101368808"/>
<removeEdge toIndex="7" to="101369656" from="101360192"/>
<removeEdge toIndex="1" to="101367504" from="101367368"/>
<removeEdge toIndex="1" to="101175464" from="101026384"/>
<removeEdge toIndex="3" to="101026232" from="101185576"/>
<removeEdge to="101370000" from="101369656"/>
<removeEdge to="101367504" from="101366280"/>
<removeEdge to="101369656" from="101367648"/>
<removeEdge to="101175464" from="101370000"/>
<removeEdge toIndex="4" to="101369656" from="101357392"/>
<removeEdge toIndex="1" to="101026232" from="101175464"/>
<removeEdge toIndex="3" to="101175464" from="101357064"/>
<removeEdge toIndex="5" to="101369656" from="101369552"/>
<removeEdge toIndex="1" to="101369656" from="101356792"/>
<removeEdge toIndex="1" to="101184000" from="101175624"/>
<removeEdge to="101367648" from="101367504"/>
<removeEdge toIndex="1" to="101367232" from="101367128"/>
<removeEdge toIndex="4" to="101175464" from="101026384"/>
<removeEdge toIndex="3" to="101368808" from="101361056"/>
<removeEdge toIndex="2" to="101175464" from="101026384"/>
<removeEdge toIndex="6" to="101369656" from="101026384"/>
<edge toIndex="1" to="101026232" from="101185576"/>
<edge toIndex="1" to="101184000" from="101366280"/>
</edges>
<controlFlow>
</controlFlow>
</graph>
<graph>
<properties>
<p name="name">
Optimize finished</p>
</properties>
<nodes>
</nodes>
<edges>
</edges>
<controlFlow>
<block name="0">
<successors>
<successor name="3"/>
</successors>
<nodes>
<node id="101026232"/>
<node id="101369552"/>
</nodes>
</block>
<block name="1">
<nodes>
<node id="101185368"/>
<node id="101185576"/>
</nodes>
</block>
<block name="2">
<successors>
<successor name="1"/>
<successor name="4"/>
</successors>
<nodes>
<node id="101184000"/>
<node id="101185104"/>
<node id="101366280"/>
<node id="101176752"/>
<node id="101177256"/>
<node id="101367128"/>
<node id="101360192"/>
</nodes>
</block>
<block name="3">
<successors>
<successor name="2"/>
<successor name="5"/>
</successors>
<nodes>
<node id="101360352"/>
<node id="101366000"/>
<node id="101354544"/>
<node id="101360736"/>
<node id="101354240"/>
<node id="101365856"/>
<node id="101357064"/>
<node id="101365712"/>
<node id="101365144"/>
<node id="101359264"/>
<node id="101026384"/>
<node id="101364960"/>
<node id="101364728"/>
<node id="101361056"/>
<node id="101364624"/>
<node id="101356928"/>
<node id="101357528"/>
</nodes>
</block>
<block name="4">
<successors>
<successor name="2"/>
</successors>
<nodes>
<node id="101177400"/>
<node id="101185200"/>
<node id="101177552"/>
</nodes>
</block>
<block name="5">
<nodes>
<node id="101182912"/>
<node id="101366144"/>
<node id="101358392"/>
<node id="101356792"/>
<node id="101357392"/>
</nodes>
</block>
</controlFlow>
</graph>
<graph>
<properties>
<p name="name">
Before Matching</p>
</properties>
<nodes>
</nodes>
<edges>
<edge toIndex="2" to="101366000" from="101365712"/>
</edges>
<controlFlow>
</controlFlow>
</graph>
<graph>
<properties>
<p name="name">
Global code motion</p>
</properties>
<nodes>
<removeNode id="101177256"/>
<removeNode id="101365144"/>
<removeNode id="101185104"/>
<removeNode id="101354240"/>
<removeNode id="101176752"/>
<removeNode id="101359264"/>
<removeNode id="101184000"/>
<removeNode id="101364624"/>
<removeNode id="101354544"/>
<removeNode id="101360736"/>
<removeNode id="101364960"/>
<removeNode id="101357392"/>
<removeNode id="101026232"/>
<removeNode id="101177552"/>
<removeNode id="101177400"/>
<removeNode id="101365856"/>
<removeNode id="101367128"/>
<removeNode id="101369552"/>
<removeNode id="101357064"/>
<removeNode id="101356792"/>
<removeNode id="101026384"/>
<removeNode id="101185200"/>
<removeNode id="101357528"/>
<removeNode id="101364728"/>
<removeNode id="101365712"/>
<removeNode id="101185368"/>
<removeNode id="101366280"/>
<removeNode id="101366144"/>
<removeNode id="101360352"/>
<removeNode id="101185576"/>
<removeNode id="101358392"/>
<removeNode id="101182912"/>
<removeNode id="101361056"/>
<removeNode id="101366000"/>
<removeNode id="101360192"/>
<removeNode id="101356928"/>
<node id="102017008">
<properties>
<p name="id">
102017008</p>
<p name="name">
Root</p>
<p name="type">
bottom</p>
<p name="idx">
1</p>
<p name="debug_idx">
5700001</p>
<p name="block">
1</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
true</p>
<p name="old_node_idx">
0</p>
<p name="dump_spec">
</p>
<p name="is_block_proj">
true</p>
<p name="is_block_start">
true</p>
</properties>
</node>
<node id="102024816">
<properties>
<p name="id">
102024816</p>
<p name="name">
Ret</p>
<p name="type">
bottom</p>
<p name="idx">
28</p>
<p name="debug_idx">
5700028</p>
<p name="block">
3</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
true</p>
<p name="old_node_idx">
109</p>
<p name="idealOpcode">
Return</p>
<p name="dump_spec">
</p>
<p name="is_block_proj">
true</p>
</properties>
</node>
<node id="102025568">
<properties>
<p name="id">
102025568</p>
<p name="name">
MachProj</p>
<p name="type">
return_address</p>
<p name="idx">
32</p>
<p name="debug_idx">
5700032</p>
<p name="block">
2</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
9</p>
<p name="con">
4</p>
<p name="dump_spec">
#4</p>
<p name="short_name">
RA</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="102022272">
<properties>
<p name="id">
102022272</p>
<p name="name">
MachProj</p>
<p name="type">
rawptr:</p>
<p name="idx">
17</p>
<p name="debug_idx">
5700017</p>
<p name="block">
2</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
8</p>
<p name="con">
3</p>
<p name="dump_spec">
#3</p>
<p name="short_name">
RP</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="102021136">
<properties>
<p name="id">
102021136</p>
<p name="name">
CallLeafDirect</p>
<p name="type">
tuple:</p>
<p name="idx">
12</p>
<p name="debug_idx">
5700012</p>
<p name="block">
2</p>
<p name="is_call">
true</p>
<p name="is_pc_relative">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
27</p>
<p name="idealOpcode">
CallLeaf</p>
<p name="dump_spec">
OSR_migration_end # void ( rawptr:BotPTR )</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="102024360">
<properties>
<p name="id">
102024360</p>
<p name="name">
loadI</p>
<p name="type">
int:</p>
<p name="idx">
27</p>
<p name="debug_idx">
5700027</p>
<p name="block">
2</p>
<p name="needs_anti_dependence_check">
true</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
26</p>
<p name="idealOpcode">
LoadI</p>
<p name="dump_spec">
</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="102024216">
<properties>
<p name="id">
102024216</p>
<p name="name">
Phi</p>
<p name="type">
int:</p>
<p name="idx">
26</p>
<p name="debug_idx">
5700026</p>
<p name="block">
5</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
78</p>
<p name="dump_spec">
#int</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="102017616">
<properties>
<p name="id">
102017616</p>
<p name="name">
Loop</p>
<p name="type">
control</p>
<p name="idx">
5</p>
<p name="debug_idx">
5700005</p>
<p name="block">
5</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
true</p>
<p name="old_node_idx">
110</p>
<p name="dump_spec">
inner</p>
<p name="is_block_start">
true</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="102028192">
<properties>
<p name="id">
102028192</p>
<p name="name">
jmpDir</p>
<p name="type">
bottom</p>
<p name="idx">
38</p>
<p name="debug_idx">
5700038</p>
<p name="block">
7</p>
<p name="is_branch">
true</p>
<p name="is_goto">
true</p>
<p name="may_be_short_branch">
true</p>
<p name="is_pc_relative">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="idealOpcode">
Goto</p>
<p name="dump_spec">
</p>
<p name="is_block_proj">
true</p>
</properties>
</node>
<node id="102022768">
<properties>
<p name="id">
102022768</p>
<p name="name">
safePoint_poll</p>
<p name="type">
tuple:</p>
<p name="idx">
19</p>
<p name="debug_idx">
5700019</p>
<p name="block">
7</p>
<p name="is_safepoint_node">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
82</p>
<p name="idealOpcode">
SafePoint</p>
<p name="dump_spec">
</p>
<p name="bci">
11</p>
</properties>
</node>
<node id="102023424">
<properties>
<p name="id">
102023424</p>
<p name="name">
MergeMem</p>
<p name="type">
memory</p>
<p name="idx">
22</p>
<p name="debug_idx">
5700022</p>
<p name="block">
7</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
83</p>
<p name="dump_spec">
{ N23:rawptr:BotPTR } Memory: @BotPTR *+bot, idx=Bot;</p>
<p name="bci">
11</p>
</properties>
</node>
<node id="102029432">
<properties>
<p name="id">
102029432</p>
<p name="name">
Region</p>
<p name="type">
control</p>
<p name="idx">
41</p>
<p name="debug_idx">
5700041</p>
<p name="block">
7</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="dump_spec">
</p>
<p name="is_block_start">
true</p>
</properties>
</node>
<node id="102023256">
<properties>
<p name="id">
102023256</p>
<p name="name">
CProj</p>
<p name="type">
control</p>
<p name="idx">
21</p>
<p name="debug_idx">
5700021</p>
<p name="block">
5</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
115</p>
<p name="con">
0</p>
<p name="dump_spec">
#0</p>
<p name="is_block_proj">
true</p>
<p name="short_name">
C</p>
</properties>
</node>
<node id="102023024">
<properties>
<p name="id">
102023024</p>
<p name="name">
MachProj</p>
<p name="type">
abIO</p>
<p name="idx">
20</p>
<p name="debug_idx">
5700020</p>
<p name="block">
7</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="con">
1</p>
<p name="dump_spec">
#1</p>
<p name="short_name">
IO</p>
</properties>
</node>
<node id="102028440">
<properties>
<p name="id">
102028440</p>
<p name="name">
jmpDir</p>
<p name="type">
bottom</p>
<p name="idx">
39</p>
<p name="debug_idx">
5700039</p>
<p name="block">
4</p>
<p name="is_branch">
true</p>
<p name="is_goto">
true</p>
<p name="may_be_short_branch">
true</p>
<p name="is_pc_relative">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="idealOpcode">
Goto</p>
<p name="dump_spec">
</p>
<p name="is_block_proj">
true</p>
</properties>
</node>
<node id="102028688">
<properties>
<p name="id">
102028688</p>
<p name="name">
Region</p>
<p name="type">
control</p>
<p name="idx">
40</p>
<p name="debug_idx">
5700040</p>
<p name="block">
4</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="dump_spec">
</p>
<p name="is_block_start">
true</p>
</properties>
</node>
<node id="102019816">
<properties>
<p name="id">
102019816</p>
<p name="name">
IfFalse</p>
<p name="type">
control</p>
<p name="idx">
6</p>
<p name="debug_idx">
5700006</p>
<p name="block">
2</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
true</p>
<p name="old_node_idx">
55</p>
<p name="con">
0</p>
<p name="dump_spec">
#0</p>
<p name="is_block_proj">
true</p>
<p name="short_name">
F</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="102019920">
<properties>
<p name="id">
102019920</p>
<p name="name">
jmpCon</p>
<p name="type">
tuple:</p>
<p name="idx">
7</p>
<p name="debug_idx">
5700007</p>
<p name="block">
2</p>
<p name="is_branch">
true</p>
<p name="may_be_short_branch">
true</p>
<p name="is_pc_relative">
true</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
true</p>
<p name="old_node_idx">
53</p>
<p name="idealOpcode">
If</p>
<p name="dump_spec">
P=0.000000, C=330626.000000</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="102020216">
<properties>
<p name="id">
102020216</p>
<p name="name">
testI_reg</p>
<p name="type">
int:</p>
<p name="idx">
8</p>
<p name="debug_idx">
5700008</p>
<p name="block">
2</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
true</p>
<p name="idealOpcode">
CmpI</p>
<p name="dump_spec">
#0</p>
</properties>
</node>
<node id="102020424">
<properties>
<p name="id">
102020424</p>
<p name="name">
loadUB</p>
<p name="type">
int:</p>
<p name="idx">
9</p>
<p name="debug_idx">
5700009</p>
<p name="block">
2</p>
<p name="needs_anti_dependence_check">
true</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
true</p>
<p name="idealOpcode">
LoadUB</p>
<p name="dump_spec">
#600</p>
</properties>
</node>
<node id="102025048">
<properties>
<p name="id">
102025048</p>
<p name="name">
IfTrue</p>
<p name="type">
control</p>
<p name="idx">
29</p>
<p name="debug_idx">
5700029</p>
<p name="block">
2</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
54</p>
<p name="con">
1</p>
<p name="dump_spec">
#1</p>
<p name="is_block_proj">
true</p>
<p name="short_name">
T</p>
<p name="bci">
5</p>
</properties>
</node>
<node id="102017520">
<properties>
<p name="id">
102017520</p>
<p name="name">
NeverBranch</p>
<p name="type">
tuple:</p>
<p name="idx">
4</p>
<p name="debug_idx">
5700004</p>
<p name="block">
5</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
114</p>
<p name="dump_spec">
</p>
</properties>
</node>
<node id="102017416">
<properties>
<p name="id">
102017416</p>
<p name="name">
CProj</p>
<p name="type">
control</p>
<p name="idx">
3</p>
<p name="debug_idx">
5700003</p>
<p name="block">
5</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
true</p>
<p name="old_node_idx">
116</p>
<p name="con">
1</p>
<p name="dump_spec">
#1</p>
<p name="is_block_proj">
true</p>
<p name="short_name">
C</p>
</properties>
</node>
<node id="102026936">
<properties>
<p name="id">
102026936</p>
<p name="name">
Region</p>
<p name="type">
control</p>
<p name="idx">
37</p>
<p name="debug_idx">
5700037</p>
<p name="block">
6</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="dump_spec">
</p>
<p name="is_block_start">
true</p>
</properties>
</node>
<node id="102023808">
<properties>
<p name="id">
102023808</p>
<p name="name">
incI_rReg</p>
<p name="type">
int:</p>
<p name="idx">
24</p>
<p name="debug_idx">
5700024</p>
<p name="block">
7</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
81</p>
<p name="idealOpcode">
AddI</p>
<p name="dump_spec">
#1</p>
<p name="bci">
8</p>
</properties>
</node>
<node id="102024048">
<properties>
<p name="id">
102024048</p>
<p name="name">
MachProj</p>
<p name="type">
int:</p>
<p name="idx">
25</p>
<p name="debug_idx">
5700025</p>
<p name="block">
7</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="con">
1</p>
<p name="dump_spec">
#1</p>
</properties>
</node>
<node id="102022440">
<properties>
<p name="id">
102022440</p>
<p name="name">
MachProj</p>
<p name="type">
rawptr:</p>
<p name="idx">
18</p>
<p name="debug_idx">
5700018</p>
<p name="block">
2</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
10</p>
<p name="con">
5</p>
<p name="dump_spec">
#5</p>
<p name="short_name">
RP</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="102022104">
<properties>
<p name="id">
102022104</p>
<p name="name">
MachProj</p>
<p name="type">
memory</p>
<p name="idx">
16</p>
<p name="debug_idx">
5700016</p>
<p name="block">
2</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
true</p>
<p name="old_node_idx">
7</p>
<p name="con">
2</p>
<p name="dump_spec">
#2/unmatched Memory: @BotPTR *+bot, idx=Bot;</p>
<p name="short_name">
M</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="102016904">
<properties>
<p name="id">
102016904</p>
<p name="name">
Con</p>
<p name="type">
top</p>
<p name="idx">
0</p>
<p name="debug_idx">
5700000</p>
<p name="block">
2</p>
<p name="is_con">
true</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
true</p>
<p name="old_node_idx">
1</p>
<p name="dump_spec">
#top</p>
<p name="short_name">
^</p>
</properties>
</node>
<node id="102021632">
<properties>
<p name="id">
102021632</p>
<p name="name">
MachProj</p>
<p name="type">
control</p>
<p name="idx">
14</p>
<p name="debug_idx">
5700014</p>
<p name="block">
2</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
5</p>
<p name="con">
0</p>
<p name="dump_spec">
#0/unmatched</p>
<p name="short_name">
C</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="102030888">
<properties>
<p name="id">
102030888</p>
<p name="name">
MachProj</p>
<p name="type">
bottom</p>
<p name="idx">
43</p>
<p name="debug_idx">
5700043</p>
<p name="block">
2</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="con">
6</p>
<p name="dump_spec">
#6/fat</p>
</properties>
</node>
<node id="102023544">
<properties>
<p name="id">
102023544</p>
<p name="name">
MachProj</p>
<p name="type">
memory</p>
<p name="idx">
23</p>
<p name="debug_idx">
5700023</p>
<p name="block">
2</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
30</p>
<p name="con">
2</p>
<p name="dump_spec">
#2/unmatched Memory: @rawptr:BotPTR, idx=Raw;</p>
<p name="short_name">
M</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="102021000">
<properties>
<p name="id">
102021000</p>
<p name="name">
MachProj</p>
<p name="type">
control</p>
<p name="idx">
11</p>
<p name="debug_idx">
5700011</p>
<p name="block">
2</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
28</p>
<p name="con">
0</p>
<p name="dump_spec">
#0/unmatched</p>
<p name="short_name">
C</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="102021464">
<properties>
<p name="id">
102021464</p>
<p name="name">
MachProj</p>
<p name="type">
bottom</p>
<p name="idx">
13</p>
<p name="debug_idx">
5700013</p>
<p name="block">
2</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="con">
10005</p>
<p name="dump_spec">
#10005/fat</p>
</properties>
</node>
<node id="102025352">
<properties>
<p name="id">
102025352</p>
<p name="name">
MergeMem</p>
<p name="type">
memory</p>
<p name="idx">
31</p>
<p name="debug_idx">
5700031</p>
<p name="block">
3</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
16</p>
<p name="dump_spec">
{ N23:rawptr:BotPTR } Memory: @BotPTR *+bot, idx=Bot;</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="102025184">
<properties>
<p name="id">
102025184</p>
<p name="name">
MachProj</p>
<p name="type">
abIO</p>
<p name="idx">
30</p>
<p name="debug_idx">
5700030</p>
<p name="block">
2</p>
<p name="is_dead_loop_safe">
true</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
true</p>
<p name="old_node_idx">
6</p>
<p name="con">
1</p>
<p name="dump_spec">
#1/unmatched</p>
<p name="short_name">
IO</p>
<p name="bci">
2</p>
</properties>
</node>
<node id="102029872">
<properties>
<p name="id">
102029872</p>
<p name="name">
Region</p>
<p name="type">
control</p>
<p name="idx">
42</p>
<p name="debug_idx">
5700042</p>
<p name="block">
3</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="dump_spec">
</p>
<p name="is_block_start">
true</p>
</properties>
</node>
<node id="102017184">
<properties>
<p name="id">
102017184</p>
<p name="name">
ShouldNotReachHere</p>
<p name="type">
bottom</p>
<p name="idx">
2</p>
<p name="debug_idx">
5700002</p>
<p name="block">
6</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
118</p>
<p name="idealOpcode">
Halt</p>
<p name="dump_spec">
</p>
<p name="is_block_proj">
true</p>
</properties>
</node>
<node id="102020632">
<properties>
<p name="id">
102020632</p>
<p name="name">
loadConP</p>
<p name="type">
klass:</p>
<p name="idx">
10</p>
<p name="debug_idx">
5700010</p>
<p name="block">
2</p>
<p name="is_con">
true</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
true</p>
<p name="idealOpcode">
ConP</p>
<p name="dump_spec">
precise klass StopThread: 0x00000000060c2e28:Constant:exact * Klass:precise klass StopThread: 0x00000000060c2e28:Constant:exa</p>
</properties>
</node>
<node id="102021768">
<properties>
<p name="id">
102021768</p>
<p name="name">
StartOSR</p>
<p name="type">
tuple:</p>
<p name="idx">
15</p>
<p name="debug_idx">
5700015</p>
<p name="block">
2</p>
<p name="is_block_start">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="old_node_idx">
3</p>
<p name="dump_spec">
#{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:rawptr:BotPTR}</p>
</properties>
</node>
</nodes>
<edges>
<removeEdge toIndex="2" to="101365144" from="101364960"/>
<removeEdge toIndex="2" to="101177552" from="101356928"/>
<removeEdge toIndex="1" to="101185576" from="101026384"/>
<removeEdge toIndex="2" to="101366000" from="101365712"/>
<removeEdge to="101026384" from="101026232"/>
<removeEdge to="101357528" from="101354240"/>
<removeEdge toIndex="4" to="101182912" from="101357392"/>
<removeEdge toIndex="1" to="101177400" from="101026384"/>
<removeEdge to="101185104" from="101184000"/>
<removeEdge toIndex="2" to="101177400" from="101177552"/>
<removeEdge toIndex="1" to="101365856" from="101365712"/>
<removeEdge to="101357392" from="101354240"/>
<removeEdge toIndex="3" to="101177552" from="101361056"/>
<removeEdge toIndex="2" to="101177256" from="101367128"/>
<removeEdge to="101185200" from="101185104"/>
<removeEdge to="101366280" from="101366000"/>
<removeEdge to="101360192" from="101354544"/>
<removeEdge to="101356928" from="101354240"/>
<removeEdge to="101367128" from="101026232"/>
<removeEdge to="101361056" from="101360352"/>
<removeEdge to="101366000" from="101360736"/>
<removeEdge toIndex="3" to="101177400" from="101026384"/>
<removeEdge to="101357064" from="101354240"/>
<removeEdge toIndex="2" to="101182912" from="101358392"/>
<removeEdge to="101366144" from="101366000"/>
<removeEdge to="101360736" from="101360352"/>
<removeEdge toIndex="1" to="101360192" from="101356928"/>
<removeEdge to="101364728" from="101026232"/>
<removeEdge toIndex="2" to="101185576" from="101026384"/>
<removeEdge toIndex="2" to="101176752" from="101177256"/>
<removeEdge toIndex="6" to="101177400" from="101177256"/>
<removeEdge toIndex="4" to="101360352" from="101026384"/>
<removeEdge toIndex="3" to="101364960" from="101364728"/>
<removeEdge to="101182912" from="101366144"/>
<removeEdge toIndex="1" to="101177256" from="101176752"/>
<removeEdge toIndex="3" to="101358392" from="101361056"/>
<removeEdge toIndex="2" to="101360352" from="101356928"/>
<removeEdge toIndex="2" to="101365712" from="101359264"/>
<removeEdge to="101369552" from="101026232"/>
<removeEdge to="101176752" from="101184000"/>
<removeEdge toIndex="5" to="101177400" from="101026384"/>
<removeEdge to="101177400" from="101185200"/>
<removeEdge to="101360352" from="101354544"/>
<removeEdge toIndex="2" to="101358392" from="101356928"/>
<removeEdge toIndex="1" to="101177552" from="101026384"/>
<removeEdge to="101185576" from="101185368"/>
<removeEdge to="101185368" from="101185104"/>
<removeEdge toIndex="2" to="101360192" from="101357528"/>
<removeEdge toIndex="4" to="101177400" from="101026384"/>
<removeEdge toIndex="1" to="101364960" from="101364624"/>
<removeEdge toIndex="1" to="101176752" from="101360192"/>
<removeEdge toIndex="4" to="101185576" from="101026384"/>
<removeEdge toIndex="1" to="101365144" from="101356928"/>
<removeEdge toIndex="1" to="101182912" from="101356792"/>
<removeEdge toIndex="1" to="101366000" from="101365856"/>
<removeEdge toIndex="3" to="101360352" from="101357064"/>
<removeEdge toIndex="2" to="101184000" from="101177400"/>
<removeEdge toIndex="1" to="101365712" from="101365144"/>
<removeEdge toIndex="5" to="101360352" from="101357528"/>
<removeEdge to="101026232" from="101026232"/>
<removeEdge toIndex="1" to="101360352" from="101026384"/>
<removeEdge toIndex="2" to="101364960" from="101364624"/>
<removeEdge toIndex="3" to="101182912" from="101357064"/>
<removeEdge toIndex="1" to="101354240" from="101026232"/>
<removeEdge toIndex="1" to="101026232" from="101185576"/>
<removeEdge to="101354240" from="101354240"/>
<removeEdge to="101364624" from="101026232"/>
<removeEdge toIndex="2" to="101026232" from="101182912"/>
<removeEdge to="101184000" from="101184000"/>
<removeEdge toIndex="1" to="101184000" from="101366280"/>
<removeEdge toIndex="3" to="101185576" from="101357064"/>
<removeEdge to="101359264" from="101026232"/>
<removeEdge toIndex="1" to="101358392" from="101026384"/>
<removeEdge to="101354544" from="101354240"/>
<removeEdge to="101356792" from="101354240"/>
<edge to="102017008" from="102017008"/>
<edge toIndex="1" to="102017008" from="102017184"/>
<edge toIndex="2" to="102017008" from="102024816"/>
<edge to="102024816" from="102029872"/>
<edge toIndex="1" to="102024816" from="102025184"/>
<edge toIndex="2" to="102024816" from="102025352"/>
<edge toIndex="3" to="102024816" from="102022272"/>
<edge toIndex="4" to="102024816" from="102025568"/>
<edge to="102025568" from="102021768"/>
<edge to="102022272" from="102021768"/>
<edge to="102021136" from="102021632"/>
<edge toIndex="1" to="102021136" from="102016904"/>
<edge toIndex="2" to="102021136" from="102022104"/>
<edge toIndex="3" to="102021136" from="102022272"/>
<edge toIndex="4" to="102021136" from="102016904"/>
<edge toIndex="5" to="102021136" from="102022440"/>
<edge toIndex="6" to="102021136" from="102024360"/>
<edge to="102024360" from="102021632"/>
<edge toIndex="1" to="102024360" from="102022104"/>
<edge toIndex="2" to="102024360" from="102022440"/>
<edge to="102024216" from="102017616"/>
<edge toIndex="1" to="102024216" from="102024360"/>
<edge toIndex="2" to="102024216" from="102023808"/>
<edge to="102017616" from="102017616"/>
<edge toIndex="1" to="102017616" from="102028440"/>
<edge toIndex="2" to="102017616" from="102028192"/>
<edge to="102028192" from="102022768"/>
<edge to="102022768" from="102029432"/>
<edge toIndex="1" to="102022768" from="102016904"/>
<edge toIndex="2" to="102022768" from="102023424"/>
<edge toIndex="3" to="102022768" from="102016904"/>
<edge toIndex="4" to="102022768" from="102016904"/>
<edge toIndex="5" to="102022768" from="102016904"/>
<edge toIndex="6" to="102022768" from="102023808"/>
<edge toIndex="1" to="102023424" from="102016904"/>
<edge toIndex="2" to="102023424" from="102022104"/>
<edge toIndex="3" to="102023424" from="102023544"/>
<edge to="102029432" from="102029432"/>
<edge toIndex="1" to="102029432" from="102023256"/>
<edge to="102023256" from="102017520"/>
<edge to="102023024" from="102022768"/>
<edge to="102028440" from="102028688"/>
<edge to="102028688" from="102028688"/>
<edge toIndex="1" to="102028688" from="102019816"/>
<edge to="102019816" from="102019920"/>
<edge to="102019920" from="102021000"/>
<edge toIndex="1" to="102019920" from="102020216"/>
<edge toIndex="1" to="102020216" from="102020424"/>
<edge toIndex="1" to="102020424" from="102022104"/>
<edge toIndex="2" to="102020424" from="102020632"/>
<edge to="102025048" from="102019920"/>
<edge to="102017520" from="102017616"/>
<edge to="102017416" from="102017520"/>
<edge to="102026936" from="102026936"/>
<edge toIndex="1" to="102026936" from="102017416"/>
<edge toIndex="1" to="102023808" from="102024216"/>
<edge to="102024048" from="102023808"/>
<edge to="102022440" from="102021768"/>
<edge to="102022104" from="102021768"/>
<edge to="102016904" from="102021768"/>
<edge to="102021632" from="102021768"/>
<edge to="102030888" from="102021136"/>
<edge to="102023544" from="102021136"/>
<edge to="102021000" from="102021136"/>
<edge to="102021464" from="102021136"/>
<edge toIndex="1" to="102025352" from="102016904"/>
<edge toIndex="2" to="102025352" from="102022104"/>
<edge toIndex="3" to="102025352" from="102023544"/>
<edge to="102025184" from="102021768"/>
<edge to="102029872" from="102029872"/>
<edge toIndex="1" to="102029872" from="102025048"/>
<edge to="102017184" from="102026936"/>
<edge toIndex="1" to="102017184" from="102016904"/>
<edge toIndex="2" to="102017184" from="102016904"/>
<edge toIndex="3" to="102017184" from="102022272"/>
<edge toIndex="4" to="102017184" from="102016904"/>
<edge to="102020632" from="102017008"/>
<edge to="102021768" from="102021768"/>
<edge toIndex="1" to="102021768" from="102017008"/>
</edges>
<controlFlow>
</controlFlow>
</graph>
<graph>
<properties>
<p name="name">
Final Code</p>
</properties>
<nodes>
<removeNode id="102019920"/>
<removeNode id="102028192"/>
<node id="102032912">
<properties>
<p name="id">
102032912</p>
<p name="name">
jmpDir_short</p>
<p name="type">
bottom</p>
<p name="idx">
38</p>
<p name="debug_idx">
5700055</p>
<p name="block">
2</p>
<p name="is_branch">
true</p>
<p name="is_goto">
true</p>
<p name="is_pc_relative">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="idealOpcode">
Goto</p>
<p name="dump_spec">
</p>
<p name="is_block_proj">
true</p>
<p name="reg">
&lt;OptoReg::-1&gt;</p>
<p name="lrg">
0</p>
</properties>
</node>
<node id="102032584">
<properties>
<p name="id">
102032584</p>
<p name="name">
jmpCon_short</p>
<p name="type">
tuple:</p>
<p name="idx">
7</p>
<p name="debug_idx">
5700054</p>
<p name="block">
1</p>
<p name="is_branch">
true</p>
<p name="is_pc_relative">
true</p>
<p name="is_shared">
true</p>
<p name="is_dontcare">
true</p>
<p name="old_node_idx">
53</p>
<p name="idealOpcode">
If</p>
<p name="dump_spec">
P=0.000000, C=330626.000000</p>
<p name="bci">
5</p>
<p name="reg">
&lt;OptoReg::-1&gt;</p>
<p name="lrg">
0</p>
</properties>
</node>
<node id="102031792">
<properties>
<p name="id">
102031792</p>
<p name="name">
jmpDir</p>
<p name="type">
bottom</p>
<p name="idx">
48</p>
<p name="debug_idx">
5700048</p>
<p name="block">
5</p>
<p name="is_branch">
true</p>
<p name="is_goto">
true</p>
<p name="may_be_short_branch">
true</p>
<p name="is_pc_relative">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="idealOpcode">
Goto</p>
<p name="dump_spec">
</p>
<p name="is_block_proj">
true</p>
<p name="reg">
&lt;OptoReg::-1&gt;</p>
<p name="lrg">
-1414812757</p>
</properties>
</node>
<node id="102031600">
<properties>
<p name="id">
102031600</p>
<p name="name">
MachSpillCopy</p>
<p name="type">
rawptr:</p>
<p name="idx">
47</p>
<p name="debug_idx">
5700047</p>
<p name="block">
1</p>
<p name="is_copy">
true</p>
<p name="is_shared">
false</p>
<p name="is_dontcare">
false</p>
<p name="idealOpcode">
Node</p>
<p name="dump_spec">
</p>
<p name="reg">
RCX</p>
<p name="lrg">
15</p>
</properties>
</node>
</nodes>
<edges>
<removeEdge to="102019816" from="102019920"/>
<removeEdge to="102025048" from="102019920"/>
<removeEdge toIndex="1" to="102019920" from="102020216"/>
<removeEdge to="102028192" from="102022768"/>
<removeEdge to="102019920" from="102021000"/>
<removeEdge toIndex="2" to="102017616" from="102028192"/>
<removeEdge toIndex="5" to="102021136" from="102022440"/>
<removeEdge toIndex="1" to="102026936" from="102017416"/>
<removeEdge toIndex="1" to="102029432" from="102023256"/>
<edge toIndex="5" to="102021136" from="102031600"/>
<edge toIndex="2" to="102017616" from="102032912"/>
<edge to="102032912" from="102022768"/>
<edge toIndex="1" to="102029432" from="102031792"/>
<edge to="102019816" from="102032584"/>
<edge to="102032584" from="102021000"/>
<edge toIndex="1" to="102032584" from="102020216"/>
<edge to="102025048" from="102032584"/>
<edge to="102031792" from="102017616"/>
<edge toIndex="1" to="102031600" from="102022440"/>
</edges>
<controlFlow>
</controlFlow>
</graph>
</group>
</graphDocument>
{method}
- klass: {other class}
- this oop: 0x00000000bc925718
- method holder: 'StopThread$1'
- constants: 0x00000000bc925430 constant pool [29] for 'StopThread$1' cache=0x00000000bc925a90
- access: 0xc1000001 public
- name: 'run'
- signature: '()V'
- max stack: 1
- max locals: 2
- size of params: 1
- method size: 17
- vtable index: -2
- i2i entry: 0x000000000250daa0
- adapter: 0x0000000005f08750
- compiled entry 0x00000000025be72d
- code size: 15
- code start: 0x00000000bc925700
- code end (excl): 0x00000000bc92570f
- method data: 0x00000000bc9287e0
- checked ex length: 0
- linenumber start: 0x00000000bc92570f
- localvar length: 0
#
# void ( rawptr:BotPTR )
#
#r016 rdx:rdx : parm 0: rawptr:BotPTR
# -- Old rsp -- Framesize: 64 --
#r089 rsp+60: pad2, in_preserve
#r088 rsp+56: pad2, in_preserve
#r087 rsp+52: pad2, in_preserve
#r086 rsp+48: pad2, in_preserve
#r085 rsp+44: pad2, in_preserve
#r084 rsp+40: return address
#r083 rsp+36: Fixed slot 1
#r082 rsp+32: Fixed slot 0
#r097 rsp+28: outgoing argument
#r096 rsp+24: outgoing argument
#r095 rsp+20: outgoing argument
#r094 rsp+16: outgoing argument
#r093 rsp+12: outgoing argument
#r092 rsp+ 8: outgoing argument
#r091 rsp+ 4: outgoing argument
#r090 rsp+ 0: outgoing argument
#
000 N50: # B1 <- BLOCK HEAD IS JUNK Freq: 1
000 INT3
nop # 15 bytes pad for loops and calls
010 B1: # B3 B2 <- BLOCK HEAD IS JUNK Freq: 1
010 pushq rbp
subq rsp, #48 # Create frame
nop # nop for patch_verified_entry
016 movl RBX, [RDX] # int
018 movq RCX, RDX # spill
01b call_leaf,runtime OSR_migration_end
No JVM State Info
#
028 movq R10, precise klass StopThread: 0x0000000005fb9698:Constant:exact * # ptr
032 movzbl R11, [R10 + #600 (32-bit)] # ubyte ! Field StopThread.stopRequested
03a testl R11, R11
03d jne,s B3 P=0.000000 C=13654.000000
03d
03f B2: # B2 <- B1 B2 top-of-loop Freq: 1e-035
03f incl RBX # int
041 testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC # StopThread$1::run @ bci:11 L[0]=_ L[1]=RBX
# OopMap{off=65}
047 jmp,s B2
047
049 B3: # N50 <- B1 Freq: 5e-007
049 addq rsp, 48 # Destroy frame
popq rbp
testl rax, [rip + #offset_to_poll_page] # Safepoint: poll for GC
054 ret
054
import java.util.concurrent.*;
public class StopThread {
private static boolean stopRequested;
public static void main(String[] args) throws Exception {
Thread t = new Thread(new Runnable() {
public void run() {
int i = 0;
while (!stopRequested)
i++;
}
});
t.start();
TimeUnit.SECONDS.sleep(1);
stopRequested = true;
}
}
// The original code is effective optimized into something as follows
import java.util.concurrent.*;
public class StopThread {
private static boolean stopRequested;
public static void main(String[] args) throws Exception {
Thread t = new Thread(new Runnable() {
public void run() {
int i = 0;
if (!stopRequested) { // the static variable load is hoisted out of the loop as a loop invariant
while (true)
i++;
}
}
});
t.start();
TimeUnit.SECONDS.sleep(1);
stopRequested = true;
}
}
D:\sdk\jdk1.6.0_25\fastdebug\bin\java -XX:CICompilerCount=1 -XX:+PrintCompilation -XX:+TraceIterativeGVN StopThread > StopThread_TraceIterativeGVN.txt
878 1 StopThread::access$000 (4 bytes)
VM option 'CICompilerCount=1'
VM option '+PrintCompilation'
VM option '+TraceIterativeGVN'
908 1% StopThread$1::run @ 2 (15 bytes)
< < 76 Phi === _ _ _ [[]] [3200076]
> memory 7 Parm === 3 [[ 65 105 105 26 27 49 95 83 ]] Memory Memory: @BotPTR *+bot, idx=Bot; !orig=[76] !jvms: StopThread$1::run @ bci:2
< < 77 Phi === _ _ _ [[]] [3200077]
> memory 30 Proj === 27 [[ 65 106 106 83 ]] #2 Memory: @rawptr:BotPTR, idx=Raw; !orig=[77] !jvms: StopThread$1::run @ bci:2
< < 105 Phi === _ _ _ [[]] [3400105]
> memory 7 Parm === 3 [[ 65 16 83 26 27 49 95 ]] Memory Memory: @BotPTR *+bot, idx=Bot; !orig=[76] !jvms: StopThread$1::run @ bci:2
< < 106 Phi === _ _ _ [[]] [3400106]
> memory 30 Proj === 27 [[ 65 16 83 ]] #2 Memory: @rawptr:BotPTR, idx=Raw; !orig=[77] !jvms: StopThread$1::run @ bci:2
< control < 38 Region === _ _ [[]] [3200038]
> top 1 Con === 0 [[]] #top
< < 95 LoadUB === _ _ _ [[]] [3400095]
> bool 49 LoadUB === _ 7 48 [[ 51 97 ]] @precise klass StopThread: 0x00000000060c4968:Constant:exact+600 *, name=stopRequested, idx=4; #bool !orig=[95] !jvms: StopThread::access$000 @ bci:0 StopThread$1::run @ bci:2
< < 75 Phi === _ _ _ [[]] [3200075]
> abIO 6 Parm === 3 [[ 68 104 104 ]] I_O !orig=[75] !jvms: StopThread$1::run @ bci:2
< < 97 CmpI === _ _ _ [[]] [3400097]
> bool 51 CmpI === _ 49 20 [[ 52 98 ]] !orig=[97] !jvms: StopThread$1::run @ bci:5
< < 104 Phi === _ _ _ [[]] [3400104]
> abIO 6 Parm === 3 [[ 68 109 ]] I_O !orig=[75] !jvms: StopThread$1::run @ bci:2
< < 98 Bool === _ _ [[]] [3400098]
> bool 52 Bool === _ 51 [[ 53 99 ]] [ne] !orig=[98] !jvms: StopThread$1::run @ bci:5
= {0:control, 1:top} 99 If === 82 20 [[ 100 101 ]] P=0.000000, C=185496.000000 !jvms: StopThread$1::run @ bci:5
< control < 100 IfTrue === _ [[]] [3400100]
> top 1 Con === 0 [[]] #top
< control < 58 Region === _ _ [[]] [3200058]
> top 1 Con === 0 [[]] #top
< < 101 IfFalse === _ [[]] [3400101]
> control 82 SafePoint === 110 1 83 1 1 1 81 [[ 110 ]] SafePoint !orig=[101] !jvms: StopThread$1::run @ bci:11
< < 117 Parm === _ [[]] [4900117]
> rawptr:BotPTR 8 Parm === 3 [[ 109 68 72 27 118 ]] FramePtr !orig=[117] !jvms: StopThread$1::run @ bci:2
< < 61 Opaque1 === _ _ [[]] [3200061]
> int 60 ConI === 0 [[ 62 81 ]] #int:1
< bool < 62 Conv2B === _ _ [[]] [3200062]
> int:1 60 ConI === 0 [[ 63 81 ]] #int:1
= {0:top, 1:control} 63 If === 55 60 [[ 64 73 ]] P=0.999999, C=-1.000000 !jvms: StopThread$1::run @ bci:8
< control < 64 IfFalse === _ [[]] [3200064]
> top 1 Con === 0 [[]] #top
< < 73 IfTrue === _ [[]] [3200073]
> control 55 IfFalse === 53 [[ 110 ]] #0 !orig=[73] !jvms: StopThread$1::run @ bci:5
< {0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address} < 68 CallStaticJava === _ _ _ _ _ (_ _ _ ) [[]] [3200068]
> top 1 Con === 0 [[]] #top
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment