static void test.misc.TEST.testMethod_dontinline(jobject)
true
true
static void test.misc.TEST.testMethod_dontinline(jobject)
true
true
Bytecode 0: aload_0
0
Root
bottom
0
30800000
other
true
true
3
Start
tuple:
3
30800003
mixed
#{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:narrowoop: java/lang/Object *[int:>=0] *}
true
10
Parm
ary:
10
30800010
data
true
5
Parm0: narrowoop: java/lang/Object *[int:>=0] *
P0
-1
20
SafePoint
control
20
30800020
control
SafePoint
-99
17
19
MergeMem
memory
19
30800019
memory
{ - } Memory: @BotPTR *+bot, idx=Bot;
-1
17
SafePoint
control
17
30800017
control
SafePoint
-99
18
MergeMem
memory
18
30800018
memory
{ - } Memory: @BotPTR *+bot, idx=Bot;
4
SafePoint
control
4
30800004
control
SafePoint
-1
9
Parm
return_address
9
30800009
data
true
4
ReturnAdr
RA
-1
12
SafePoint
control
12
30800012
control
SafePoint
-1
4
16
MergeMem
memory
16
30800016
memory
{ - } Memory: @BotPTR *+bot, idx=Bot;
15
Phi
memory
15
30800015
memory
#memory Memory: @BotPTR *+bot, idx=Bot;
14
Phi
abIO
14
30800014
other
#abIO
13
Region
control
13
30800013
control
true
8
Parm
rawptr:
8
30800008
data
true
3
FramePtr
RP
-1
7
Parm
memory
7
30800007
memory
true
2
Memory Memory: @BotPTR *+bot, idx=Bot;
M
-1
11
MergeMem
memory
11
30800011
memory
{ - } Memory: @BotPTR *+bot, idx=Bot;
6
Parm
abIO
6
30800006
other
true
1
I_O
IO
-1
5
Parm
control
5
30800005
control
true
0
Control
C
-1
1
Con
top
1
30800001
other
true
#top
^
Bytecode 1: invokevirtual
85
Halt
bottom
85
30800085
other
true
1
39
100
ArrayCopy
tuple:
100
30800100
mixed
true
void ( java/lang/Object *, int, java/lang/Object *, int, int, int, int, BotPTR *+bot, BotPTR *+bot ) (oop array clone, tightl
99
URShiftL
long:
99
30800099
data
1
39
97
AddL
long:
97
30800097
data
1
39
65
AndL
long:
65
30800065
data
1
39
63
AddL
long:
63
30800063
data
1
39
62
LShiftL
long:
62
30800062
data
1
39
60
ConvI2L
long:
60
30800060
data
#long:0..maxint
1
39
54
LoadRange
int:
54
30800054
data
@bottom[int:>=0]+12 * [narrow], idx=5; #int:>=0
1
39
53
AddP
ary:
53
30800053
data
1
39
48
LoadNKlass
narrowklass:
48
30800048
data
@java/lang/Object+8 * [narrowklass], idx=4; #narrowklass: klass [Ljava/lang/Object;: 0x00007fdcc8113ed0 *
1
39
47
AddP
ary:
47
30800047
data
1
39
49
DecodeNKlass
klass:
49
30800049
data
#klass [Ljava/lang/Object;: 0x00007fdcc8113ed0 * Klass:klass [Ljava/lang/Object;: 0x00007fdcc8113ed0 *
1
39
37
MemBarCPUOrder
tuple:
37
30800037
mixed
1
39
28
IfTrue
control
28
30800028
control
true
1
#1
true
T
1
39
27
If
tuple:
27
30800027
control
P=0.999999, C=-1.000000
1
39
24
Bool
int:
24
30800024
data
[ne]
1
39
23
CmpP
int:
23
30800023
data
1
39
21
CheckCastPP
ary:
21
30800021
data
#narrowoop: java/lang/Object *[int:>=0] * (speculative=narrowoop: java/lang/Object *[int:>=0]:exact * (inline_depth=1))
1
39
29
IfFalse
control
29
30800029
control
true
0
#0
true
F
1
39
39
Proj
memory
39
30800039
memory
2
#2 Memory: @BotPTR *+bot, idx=Bot;
M
1
39
102
MergeMem
memory
102
30800102
memory
{ N103:rawptr:BotPTR N91:java/lang/Object+8 * [narrowklass] - N91:java/lang/Object * N91:narrowoop: java/lang/Object *[int:>=
1
39
91
Proj
memory
91
30800091
memory
2
#2 Memory: @rawptr:BotPTR, idx=Raw;
M
1
39
89
Initialize
tuple:
89
30800089
mixed
1
39
88
Proj
rawptr:
88
30800088
data
true
5
#5
RP
1
39
76
CatchProj
control
76
30800076
control
true
0
#0@bci -1
true
C
1
39
75
Catch
tuple:
75
30800075
control
1
39
74
Proj
abIO
74
30800074
other
true
1
#1 (i_o_use)
IO
1
39
72
Proj
control
72
30800072
control
true
0
#0
C
1
39
77
CatchProj
control
77
30800077
control
true
1
#1@bci -1
true
C
1
39
104
MemBarStoreStore
tuple:
104
30800104
mixed
1
39
106
Proj
memory
106
30800106
memory
2
#2 Memory: @BotPTR *+bot, idx=Bot;
M
1
39
109
MergeMem
memory
109
30800109
memory
{ - } Memory: @BotPTR *+bot, idx=Bot;
1
39
44
Phi
memory
44
30800044
memory
#memory Memory: @BotPTR *+bot, idx=Bot;
1
39
41
Region
control
41
30800041
control
1
39
43
Phi
abIO
43
30800043
other
#abIO
1
39
87
Proj
abIO
87
30800087
other
true
1
#1
IO
1
39
42
Phi
ary:
42
30800042
data
#narrowoop: java/lang/Object *[int:0..max-2]:NotNull *
1
39
107
MergeMem
memory
107
30800107
memory
{ - } Memory: @BotPTR *+bot, idx=Bot;
1
39
105
Proj
control
105
30800105
control
true
0
#0
C
1
39
92
MergeMem
memory
92
30800092
memory
{ - - - - N39:narrowoop: java/lang/Object *[int:>=0]+any * [narrow] } Memory: @BotPTR *+bot, idx=Bot;
1
39
86
Proj
memory
86
30800086
memory
2
#2 Memory: @rawptr:BotPTR, idx=Raw;
M
1
39
83
MergeMem
memory
83
30800083
memory
{ N73:rawptr:BotPTR } Memory: @BotPTR *+bot, idx=Bot;
1
39
73
Proj
memory
73
30800073
memory
2
#2 (i_o_use) Memory: @rawptr:BotPTR, idx=Raw;
M
1
39
78
MergeMem
memory
78
30800078
memory
{ N73:rawptr:BotPTR } Memory: @BotPTR *+bot, idx=Bot;
1
39
50
MergeMem
memory
50
30800050
memory
{ - } Memory: @BotPTR *+bot, idx=Bot;
1
39
40
MergeMem
memory
40
30800040
memory
{ - } Memory: @BotPTR *+bot, idx=Bot;
1
39
38
Proj
control
38
30800038
control
true
0
#0
C
1
39
33
MergeMem
memory
33
30800033
memory
{ - } Memory: @BotPTR *+bot, idx=Bot;
1
39
25
MergeMem
memory
25
30800025
memory
{ - } Memory: @BotPTR *+bot, idx=Bot;
1
39
56
CmpU
int:
56
30800056
data
1
39
69
Bool
int:
69
30800069
data
[le]
1
39
70
CMoveI
int:
70
30800070
data
#bool
1
39
57
Bool
int:
57
30800057
data
[gt]
1
39
68
CMoveI
int:
68
30800068
data
#bool
1
39
95
SubL
long:
95
30800095
data
1
39
93
CheckCastPP
ary:
93
30800093
data
#narrowoop: java/lang/Object *[int:0..max-2]:NotNull *
1
39
36
CastPP
ary:
36
30800036
data
#narrowoop: java/lang/Object *[int:>=0]:NotNull * (speculative=narrowoop: java/lang/Object *[int:>=0]:NotNull:exact * (inline
1
39
66
MergeMem
memory
66
30800066
memory
{ N91:rawptr:BotPTR N91:java/lang/Object+8 * [narrowklass] - N91:java/lang/Object * N91:narrowoop: java/lang/Object *[int:>=0
1
39
90
Proj
control
90
30800090
control
true
0
#0
C
1
39
103
Proj
memory
103
30800103
memory
2
#2 Memory: @rawptr:BotPTR, idx=Raw;
M
1
39
101
Proj
control
101
30800101
control
true
0
#0
C
1
39
81
CallStaticJava
tuple:
81
30800081
mixed
# Static uncommon_trap(reason='unhandled' action='none' debug_id='0') void ( int ) C=0.000100 TEST::testMethod_dontinline @ b
1
39
84
Proj
abIO
84
30800084
other
true
1
#1
IO
1
39
71
AllocateArray
tuple:
71
30800071
mixed
true
rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, int ) TEST::testMethod_dontinline @ bci:1 (line 39) reexecute
1
39
51
SafePoint
control
51
30800051
control
SafePoint replaced nodes: 10->21,21->36
1
39
20,17
31
CallStaticJava
tuple:
31
30800031
mixed
# Static uncommon_trap(reason='null_check' action='maybe_recompile' debug_id='0') void ( int ) C=0.000100 TEST::testMethod_do
1
39
34
Proj
abIO
34
30800034
other
true
1
#1
IO
1
39
32
Proj
control
32
30800032
control
true
0
#0
C
1
39
82
Proj
control
82
30800082
control
true
0
#0
C
1
39
35
Halt
bottom
35
30800035
other
true
1
39
98
ConI
int:
98
30800098
data
true
#int:3
3
96
ConL
long:
96
30800096
data
true
#long:-16
L
94
ConL
long:
94
30800094
data
true
#long:16
16
80
ConI
int:
80
30800080
data
true
#int:-105
I
67
ConI
int:
67
30800067
data
true
#int:1
1
64
ConL
long:
64
30800064
data
true
#long:-8
-8
61
ConL
long:
61
30800061
data
true
#long:23
23
59
ConI
int:
59
30800059
data
true
#int:2
2
58
ConI
int:
58
30800058
data
true
#int:23
23
55
ConI
int:
55
30800055
data
true
#int:262144
I
52
ConL
long:
52
30800052
data
true
#long:12
12
46
ConI
int:
46
30800046
data
true
#int:0
0
45
ConL
long:
45
30800045
data
true
#long:8
8
30
ConI
int:
30
30800030
data
true
#int:-10
I
22
ConP
anyptr:
22
30800022
data
true
#NULL
P
Bytecode 4: checkcast
111
CheckCastPP
ary:
111
30800111
data
#narrowoop: java/lang/Object *[int:0..max-2]:NotNull * (speculative=narrowoop: java/lang/Object *[int:0..max-2]:NotNull:exact
4
39
110
ConP
klass:
110
30800110
data
true
#precise klass [Ljava/lang/Object;: 0x00007fdcc8113ed0:Constant:exact * Klass:precise klass [Ljava/lang/Object;: 0x00007fdcc
CP
Bytecode 7: astore_1
Bytecode 8: new
122
SafePoint
control
122
30800122
control
SafePoint replaced nodes: 10->21,21->36,93->111
8
43
20,17
123
CreateEx
inst:
123
30800123
data
#java/lang/Throwable:NotNull * Oop:java/lang/Throwable:NotNull *
8
43
113
MergeMem
memory
113
30800113
memory
{ N129:rawptr:BotPTR N129:java/lang/Object+8 * [narrowklass] - N129:java/lang/Object * } Memory: @BotPTR *+bot, idx=Bot;
8
43
129
Proj
memory
129
30800129
memory
2
#2 Memory: @rawptr:BotPTR, idx=Raw;
M
8
43
127
Initialize
tuple:
127
30800127
mixed
8
43
126
Proj
rawptr:
126
30800126
data
true
5
#5
RP
8
43
131
CheckCastPP
inst:
131
30800131
data
#java/lang/Object:NotNull:exact * Oop:java/lang/Object:NotNull:exact *
8
43
130
MergeMem
memory
130
30800130
memory
{ - } Memory: @BotPTR *+bot, idx=Bot;
8
43
124
Proj
memory
124
30800124
memory
2
#2 Memory: @rawptr:BotPTR, idx=Raw;
M
8
43
119
CatchProj
control
119
30800119
control
true
0
#0@bci -1
true
C
8
43
118
Catch
tuple:
118
30800118
control
8
43
115
Proj
control
115
30800115
control
true
0
#0
C
8
43
128
Proj
control
128
30800128
control
true
0
#0
C
8
43
121
MergeMem
memory
121
30800121
memory
{ N116:rawptr:BotPTR } Memory: @BotPTR *+bot, idx=Bot;
8
43
116
Proj
memory
116
30800116
memory
2
#2 (i_o_use) Memory: @rawptr:BotPTR, idx=Raw;
M
8
43
117
Proj
abIO
117
30800117
other
true
1
#1 (i_o_use)
IO
8
43
120
CatchProj
control
120
30800120
control
true
1
#1@bci -1
true
C
8
43
114
Allocate
tuple:
114
30800114
mixed
true
rawptr:NotNull ( int:>=0, java/lang/Object:NotNull *, bool, top ) TEST::testMethod_dontinline @ bci:8 (line 43)
8
43
125
Proj
abIO
125
30800125
other
true
1
#1
IO
8
43
112
ConP
klass:
112
30800112
data
true
#precise klass java/lang/Object: 0x00007fdcc800ee60:Constant:exact * Klass:precise klass java/lang/Object: 0x00007fdcc800ee6
CP
Bytecode 11: dup
133
SafePoint
control
133
30800133
control
SafePoint replaced nodes: 10->21,21->36
-1
4
132
MergeMem
memory
132
30800132
memory
{ - } Memory: @BotPTR *+bot, idx=Bot;
8
43
Bytecode -1: return
140
SafePoint
control
140
30800140
control
SafePoint
-99 12
43
161
Phi
memory
161
30900161
memory
#memory Memory: @java/lang/Object *, idx=6;
12
43
138
136
Region
control
136
30800136
control
true
12
43
156
Region
control
156
30900156
control
0 12
43
138
Phi
memory
138
30800138
memory
#memory Memory: @BotPTR *+bot, idx=Bot;
12
43
144
LoadNKlass
narrowklass:
144
30800144
data
@java/lang/Object+8 * [narrowklass], idx=4; #narrowklass: precise klass java/lang/Object: 0x00007fdcc800ee60:Constant:exact *
0 12
43
149
LoadI
int:
149
30900149
data
@klass java/lang/Object: 0x00007fdcc800ee60+172 *, idx=8; #int:589299745
0 12
43
148
AddP
klass:
148
30900148
data
Klass:precise klass java/lang/Object: 0x00007fdcc800ee60:Constant:exact+172 *
0 12
43
137
Phi
abIO
137
30800137
other
#abIO
12
43
139
MergeMem
memory
139
30800139
memory
{ N159:rawptr:BotPTR N160:java/lang/Object+8 * [narrowklass] - N161:java/lang/Object * } Memory: @BotPTR *+bot, idx=Bot;
12
43
160
Phi
memory
160
30900160
memory
#memory Memory: @java/lang/Object+8 * [narrowklass], idx=4;
12
43
138
159
Phi
memory
159
30900159
memory
#memory Memory: @rawptr:BotPTR, idx=Raw;
12
43
138
141
MergeMem
memory
141
30800141
memory
{ N129:rawptr:BotPTR N129:java/lang/Object+8 * [narrowklass] - N129:java/lang/Object * } Memory: @BotPTR *+bot, idx=Bot;
-1 12
43
134
MergeMem
memory
134
30800134
memory
{ N129:rawptr:BotPTR N129:java/lang/Object+8 * [narrowklass] - N129:java/lang/Object * } Memory: @BotPTR *+bot, idx=Bot;
12
43
143
AddP
inst:
143
30800143
data
Oop:java/lang/Object:NotNull:exact+8 * [narrowklass]
0 12
43
155
If
tuple:
155
30900155
control
P=0.999999, C=-1.000000
0 12
43
158
IfTrue
control
158
30900158
control
true
1
#1
true
T
0 12
43
157
IfFalse
control
157
30900157
control
true
0
#0
true
F
0 12
43
135
SafePoint
control
135
30800135
control
SafePoint replaced nodes: 10->21,21->36,93->111
12
43
20,17
151
ConI
int:
151
30900151
data
true
#int:1073741824
I
152
AndI
int:
152
30900152
data
0 12
43
150
ConI
int:
150
30900150
data
true
#int:589299745
I
147
ConL
long:
147
30900147
data
true
#long:172
L
145
ConNKlass
narrowklass:
145
30800145
data
true
#narrowklass: precise klass java/lang/Object: 0x00007fdcc800ee60:Constant:exact *
146
DecodeNKlass
klass:
146
30800146
data
#precise klass java/lang/Object: 0x00007fdcc800ee60:Constant:exact * Klass:precise klass java/lang/Object: 0x00007fdcc800ee6
0 12
43
154
Bool
int:
154
30900154
data
[ne]
0 12
43
153
CmpI
int:
153
30900153
data
0 12
43
Bytecode 12: invokespecial
Bytecode 15: putstatic
174
MergeMem
memory
174
30900174
memory
{ N173:rawptr:BotPTR N129:java/lang/Object+8 * [narrowklass] - N129:java/lang/Object * - - N166:java/lang/Class:exact+112 * [
15
43
166
StoreN
memory
166
30900166
memory
@java/lang/Class:exact+112 * [narrow], name=escape1, idx=9; Memory: @java/lang/Class:exact+112 * [narrow], name=escape1, idx
15
43
164
AddP
inst:
164
30900164
data
Oop:java/lang/Class:exact+112 * [narrow]
15
43
168
CastP2X
long:
168
30900168
data
15
43
170
URShiftL
long:
170
30900170
data
15
43
172
AddP
rawptr:
172
30900172
data
15
43
173
StoreB
memory
173
30900173
memory
@rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw;
15
43
165
EncodeP
narrowoop:
165
30900165
data
#narrowoop: java/lang/Object:NotNull:exact *
15
43
171
ConP
rawptr:
171
30900171
data
true
#0x00007fdcfe9b8000
RP
169
ConI
int:
169
30900169
data
true
#int:9
9
163
ConL
long:
163
30900163
data
true
#long:112
L
162
ConP
inst:
162
30900162
data
true
#java/lang/Class:exact * Oop:java/lang/Class:exact *
Bytecode 18: aload_0
Bytecode 19: arraylength
176
LoadRange
int:
176
30900176
data
@bottom[int:>=0]+12 * [narrow], idx=5; #int:>=0
19
44
175
AddP
ary:
175
30900175
data
19
44
Bytecode 20: iconst_4
177
ConI
int:
177
30900177
data
true
#int:4
4
Bytecode 21: if_icmple
184
SafePoint
control
184
30900184
control
SafePoint replaced nodes: 10->21,21->36,93->111
12
43
135,20,17
180
If
tuple:
180
30900180
control
P=0.500000, C=10496.000000
21
44
179
Bool
int:
179
30900179
data
[le]
21
44
178
CmpI
int:
178
30900178
data
21
44
182
IfFalse
control
182
30900182
control
true
0
#0
true
F
21
44
181
IfTrue
control
181
30900181
control
true
1
#1
true
T
21
44
183
MergeMem
memory
183
30900183
memory
{ N173:rawptr:BotPTR N129:java/lang/Object+8 * [narrowklass] - N129:java/lang/Object * - - N166:java/lang/Class:exact+112 * [
21
44
185
Region
control
185
30900185
control
true
30
47
Bytecode 24: aload_1
Bytecode 25: iconst_4
Bytecode 26: aaload
202
Halt
bottom
202
30900202
other
true
26
45
198
CallStaticJava
tuple:
198
30900198
mixed
# Static uncommon_trap(reason='range_check' action='make_not_entrant' debug_id='0') void ( int ) C=0.000100 TEST::testMethod_
26
45
187
LoadRange
int:
187
30900187
data
@bottom[int:>=0]+12 * [narrow], idx=5; #int:0..max-2
26
45
190
CmpU
int:
190
30900190
data
26
45
188
191
Bool
int:
191
30900191
data
[gt]
26
45
192
RangeCheck
tuple:
192
30900192
control
P=0.999999, C=-1.000000
26
45
200
MergeMem
memory
200
30900200
memory
{ N173:rawptr:BotPTR N129:java/lang/Object+8 * [narrowklass] - N129:java/lang/Object * - - N166:java/lang/Class:exact+112 * [
26
45
193
IfTrue
control
193
30900193
control
true
1
#1
true
T
26
45
205
LoadN
narrowoop:
205
30900205
data
@narrowoop: java/lang/Object *[int:>=0]+any * [narrow], idx=7; #narrowoop: java/lang/Object *
26
45
206
DecodeN
inst:
206
30900206
data
#java/lang/Object * Oop:java/lang/Object *
26
45
188
CmpU
int:
188
30900188
data
26
45
189
Bool
int:
189
30900189
data
[lt]
26
45
186
AddP
ary:
186
30900186
data
26
45
204
AddP
ary:
204
30900204
data
26
45
194
MergeMem
memory
194
30900194
memory
{ N173:rawptr:BotPTR N129:java/lang/Object+8 * [narrowklass] - N129:java/lang/Object * - - N166:java/lang/Class:exact+112 * [
26
45
196
IfFalse
control
196
30900196
control
true
0
#0
true
F
26
45
201
Proj
abIO
201
30900201
other
true
1
#1
IO
26
45
199
Proj
control
199
30900199
control
true
0
#0
C
26
45
203
ConL
long:
203
30900203
data
true
#long:32
32
197
ConI
int:
197
30900197
data
true
#int:-28
I
Bytecode 27: putstatic
216
MergeMem
memory
216
31100216
memory
{ N215:rawptr:BotPTR N129:java/lang/Object+8 * [narrowklass] - N129:java/lang/Object * - - N166:java/lang/Class:exact+112 * [
27
45
210
StoreN
memory
210
31000210
memory
@java/lang/Class:exact+116 * [narrow], name=escape2, idx=10; Memory: @java/lang/Class:exact+116 * [narrow], name=escape2, id
27
45
209
EncodeP
narrowoop:
209
31000209
data
#narrowoop: java/lang/Object *
27
45
208
AddP
inst:
208
31000208
data
Oop:java/lang/Class:exact+116 * [narrow]
27
45
215
StoreB
memory
215
31100215
memory
@rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw;
27
45
214
AddP
rawptr:
214
31100214
data
27
45
213
URShiftL
long:
213
31000213
data
27
45
212
CastP2X
long:
212
31000212
data
27
45
207
ConL
long:
207
31000207
data
true
#long:116
L
Bytecode -1: return
221
Phi
memory
221
31100221
memory
#memory Memory: @java/lang/Object *, idx=6;
15
218
Phi
memory
218
31100218
memory
#memory Memory: @java/lang/Class:exact+116 * [narrow], name=escape2, idx=10;
30
47
217
Phi
memory
217
31100217
memory
#memory Memory: @rawptr:BotPTR, idx=Raw;
30
47
223
Phi
memory
223
31100223
memory
#memory Memory: @java/lang/Class:exact+116 * [narrow], name=escape2, idx=10;
15
222
Phi
memory
222
31100222
memory
#memory Memory: @java/lang/Class:exact+112 * [narrow], name=escape1, idx=9;
15
219
Phi
memory
219
31100219
memory
#memory Memory: @rawptr:BotPTR, idx=Raw;
15
220
Phi
memory
220
31100220
memory
#memory Memory: @java/lang/Object+8 * [narrowklass], idx=4;
15
Before RemoveUseless
227
Rethrow
bottom
227
31100227
other
225
SafePoint
control
225
31100225
control
SafePoint replaced nodes: 10->21,21->36
-1
133,4
224
MergeMem
memory
224
31100224
memory
{ N116:rawptr:BotPTR } Memory: @BotPTR *+bot, idx=Bot;
226
Return
bottom
226
31100226
other
After Parsing
Iter GVN 1
229
RangeCheck
tuple:
229
31100229
control
P=0.000001, C=-1.000000
26
45
[192]
228
Bool
int:
228
31100228
data
[le]
231
IfTrue
control
231
31100231
control
true
1
#1
true
T
26
45
[196]
230
IfFalse
control
230
31100230
control
true
0
#0
true
F
26
45
[193]
Incremental Inline
Incremental Boxing Inline
Iter GVN after EA
234
AddP
ary:
234
31900234
data
26
45
[204]
233
LoadN
narrowoop:
233
31900233
data
@narrowoop: java/lang/Object *[int:>=0]:NotNull[4] * [narrow], idx=7; #narrowoop: java/lang/Object * (does not depend only on
26
45
[205]
236
MemBarCPUOrder
tuple:
236
32300236
mixed
1
39
104
232
CastII
int:
232
31700232
data
#int:0..max-2
26
45
[187]
235
ConN
narrowoop:
235
32100235
data
true
#narrowoop: NULL
Iter GVN after eliminating allocations and locks
PhaseCPP 1
Iter GVN 2
Macro expand
287
Phi
memory
287
33900287
memory
#memory Memory: @rawptr:BotPTR, idx=Raw;
317
StoreI
memory
317
34300317
memory
@NULL Memory: @rawptr:BotPTR, idx=Raw;
316
AddP
rawptr:
316
34300316
data
294
LoadP
rawptr:
294
34100294
data
@rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test)
246
AddP
rawptr:
246
32600246
data
291
311
StoreP
memory
311
34300311
memory
@rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw;
260
StoreP
memory
260
32600260
memory
@rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw;
251
AddP
rawptr:
251
32600251
data
258
AddP
rawptr:
258
32600258
data
259
PrefetchAllocation
abIO
259
32600259
other
288
Phi
abIO
288
33900288
other
#abIO
310
PrefetchAllocation
abIO
310
34300310
other
307
PrefetchAllocation
abIO
307
34300307
other
305
PrefetchAllocation
abIO
305
34200305
other
302
PrefetchAllocation
abIO
302
34200302
other
242
Phi
abIO
242
32600242
other
#abIO
240
Region
control
240
32600240
control
true
8
43
[119]
274
CatchProj
control
274
33300274
control
true
0
#0@bci -1
true
C
8
43
[119]
269
Proj
control
269
33000269
control
true
0
#0
C
268
MemBarStoreStore
tuple:
268
33000268
mixed
272
Proj
memory
272
33000272
memory
2
#2 Memory: @BotPTR *+bot, idx=Bot;
M
8
43
[129]
271
Proj
control
271
33000271
control
true
0
#0
C
8
43
[128]
270
Proj
memory
270
33000270
memory
2
#2 Memory: @rawptr:BotPTR, idx=Raw;
M
243
Phi
rawptr:
243
32600243
data
#rawptr:BotPTR
8
43
[126]
275
Proj
rawptr:
275
33400275
data
true
5
#5
RP
8
43
[126]
241
Phi
memory
241
32600241
memory
#memory Memory: @rawptr:BotPTR, idx=Raw;
267
StoreI
memory
267
32900267
memory
@rawptr:BotPTR, idx=Raw; Memory: @rawptr:BotPTR, idx=Raw;
266
AddP
rawptr:
266
32800266
data
265
StoreNKlass
memory
265
32700265
memory
@NULL Memory: @rawptr:BotPTR, idx=Raw;
263
AddP
rawptr:
263
32700263
data
252
CmpP
int:
252
32600252
data
249
LoadP
rawptr:
249
32600249
data
@rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test)
248
AddP
rawptr:
248
32600248
data
292
293
LoadP
rawptr:
293
34100293
data
@rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test)
296
CmpP
int:
296
34100296
data
325
Bool
int:
325
35200325
data
[lt]
326
If
tuple:
326
35200326
control
P=0.999900, C=-1.000000
[298]
324
IfTrue
control
324
34600324
control
true
1
#1
true
T
[285]
322
If
tuple:
322
34600322
control
P=0.999999, C=-1.000000
[283]
321
Bool
int:
321
34600321
data
[le]
323
IfFalse
control
323
34600323
control
true
0
#0
true
F
[284]
282
Region
control
282
33900282
control
true
327
IfFalse
control
327
35200327
control
true
0
#0
true
F
[299]
239
CallLeafNoFP
tuple:
239
32500239
mixed
# jlong_disjoint_arraycopy void ( NotNull *+bot, NotNull *+bot, long, half )
100
238
AddP
ary:
238
32500238
data
277
If
tuple:
277
33500277
control
P=0.999900, C=-1.000000
[254]
278
IfFalse
control
278
33500278
control
true
0
#0
true
F
[255]
276
Bool
int:
276
33500276
data
[lt]
279
IfTrue
control
279
33500279
control
true
1
#1
true
T
[256]
262
StoreL
memory
262
32600262
memory
@NULL Memory: @rawptr:BotPTR, idx=Raw;
250
LoadP
rawptr:
250
32600250
data
@rawptr:BotPTR, idx=Raw; #rawptr:BotPTR (does not depend only on test)
289
Phi
rawptr:
289
33900289
data
#rawptr:BotPTR
1
39
[88]
320
Proj
rawptr:
320
34500320
data
true
5
#5
RP
1
39
[88]
313
AddP
rawptr:
313
34300313
data
312
StoreL
memory
312
34300312
memory
@NULL Memory: @rawptr:BotPTR, idx=Raw;
309
AddP
rawptr:
309
34300309
data
306
AddP
rawptr:
306
34300306
data
304
AddP
rawptr:
304
34200304
data
301
AddP
rawptr:
301
34200301
data
295
AddP
rawptr:
295
34100295
data
315
StoreNKlass
memory
315
34300315
memory
@NULL Memory: @rawptr:BotPTR, idx=Raw;
328
IfTrue
control
328
35200328
control
true
1
#1
true
T
[300]
286
Region
control
286
33900286
control
true
1
39
[76]
319
CatchProj
control
319
34400319
control
true
0
#0@bci -1
true
C
1
39
[76]
318
CallStaticJava
tuple:
318
34300318
mixed
# Static _new_array_Java rawptr:NotNull ( java/lang/Object:NotNull *, int ) C=0.000100 TEST::testMethod_dontinline @ bci:1 (l
1
39
71
237
AddP
ary:
237
32500237
data
273
CallStaticJava
tuple:
273
33200273
mixed
# Static _new_instance_Java rawptr:NotNull ( java/lang/Object:NotNull * ) C=0.000100 TEST::testMethod_dontinline @ bci:8 (lin
8
43
114
303
ConL
long:
303
34200303
data
true
#long:256
L
308
ConL
long:
308
34300308
data
true
#long:384
L
280
ConNKlass
narrowklass:
280
33800280
data
true
#narrowklass: precise klass java/lang/Object: 0x00007fdcc800ee60:Constant:exact *
261
ConL
long:
261
32600261
data
true
#long:1
1
257
ConL
long:
257
32600257
data
true
#long:192
L
247
ConL
long:
247
32600247
data
true
#long:336
L
245
ConL
long:
245
32600245
data
true
#long:320
L
244
ThreadLocal
rawptr:
244
32600244
data
[290]
Barrier expand
Optimize finished
329
If
tuple:
329
35600329
control
P=0.000001, C=-1.000000
Before matching
After Matching
42
loadP
rawptr:
42
35700042
data
true
false
false
294
LoadP
rawptr:BotPTR
14
MachProj
memory
14
35700014
memory
true
false
false
7
2
#2/unmatched Memory: @BotPTR *+bot, idx=Bot;
M
-1
12
MachProj
ary:
12
35700012
data
true
false
false
10
5
#5
AP
-1
100
MachProj
memory
100
35700100
memory
false
false
91
2
#2/unmatched Memory: @rawptr:BotPTR, idx=Raw;
M
1
39
161
storeN
memory
161
35700161
memory
false
false
210
StoreN
memory Memory: @java/lang/Class:exact+116 * [narrow], name=escape2, idx=10;
27
45
114
MachProj
memory
114
35700114
memory
false
false
106
2
#2/unmatched Memory: @BotPTR *+bot, idx=Bot;
M
1
39
84
MemBarCPUOrder
tuple:
84
35700084
mixed
false
false
236
1
39
108
shrL_rReg_imm
long:
108
35700108
data
false
false
99
URShiftL
#3/0x00000003
1
39
109
addL_rReg_imm
long:
109
35700109
data
false
false
AddL
#-16/0xfffffffffffffff0
44
andL_rReg_imm
long:
44
35700044
data
false
false
65
AndL
#-8/0xfffffffffffffff8
1
39
50
MachProj
int:
50
35700050
data
true
false
false
1
#1
110
MachProj
int:
110
35700110
data
true
false
false
1
#1
111
MachProj
int:
111
35700111
data
true
false
false
1
#1
113
MachProj
memory
113
35700113
memory
false
false
103
2
#2/unmatched Memory: @rawptr:BotPTR, idx=Raw;
M
1
39
83
MachProj
control
83
35700083
control
true
false
false
105
0
#0/unmatched
C
1
39
134
prefetchAllocNTA
bottom
134
35700134
other
true
false
false
259
PrefetchAllocation
#192/0x00000000000000c0
116
MachProj
int:
116
35700116
data
true
false
false
1
#1
129
Phi
abIO
129
35700129
other
false
false
288
#abIO
130
prefetchAllocNTA
bottom
130
35700130
other
true
false
false
310
PrefetchAllocation
#384/0x0000000000000180
132
prefetchAllocNTA
bottom
132
35700132
other
true
false
false
305
PrefetchAllocation
#256/0x0000000000000100
133
prefetchAllocNTA
bottom
133
35700133
other
true
false
false
302
PrefetchAllocation
#192/0x00000000000000c0
36
jmpConU
tuple:
36
35700036
control
true
false
false
326
If
P=0.999900, C=-1.000000
13
MachProj
abIO
13
35700013
other
true
false
false
6
1
#1/unmatched
IO
-1
121
Phi
memory
121
35700121
memory
false
false
241
#memory Memory: @rawptr:BotPTR, idx=Raw;
122
MachProj
memory
122
35700122
memory
false
false
124
2
#2/unmatched Memory: @BotPTR *+bot, idx=Bot;
M
8
43
73
Initialize
tuple:
73
35700073
mixed
false
false
127
8
43
71
membar_storestore
tuple:
71
35700071
mixed
false
false
268
MemBarStoreStore
142
MachProj
memory
142
35700142
memory
false
false
272
2
#2/unmatched Memory: @BotPTR *+bot, idx=Bot;
M
8
43
136
storeImmB0
memory
136
35700136
memory
false
false
173
StoreB
memory Memory: @rawptr:BotPTR, idx=Raw;
15
43
138
shrL_rReg_imm
long:
138
35700138
data
false
false
URShiftL
#9/0x00000009
139
castP2X
long:
139
35700139
data
false
false
CastP2X
141
MachProj
int:
141
35700141
data
true
false
false
1
#1
155
Phi
memory
155
35700155
memory
false
false
217
#memory Memory: @rawptr:BotPTR, idx=Raw;
30
47
151
Region
control
151
35700151
control
false
false
185
true
30
47
153
IfTrue
control
153
35700153
control
true
false
false
181
1
#1
true
T
21
44
68
jmpCon
tuple:
68
35700068
control
true
false
false
180
If
P=0.500000, C=10496.000000
21
44
69
compI_rReg_imm
int:
69
35700069
data
false
false
CmpI
#4/0x00000004
156
storeImmB0
memory
156
35700156
memory
false
false
215
StoreB
memory Memory: @rawptr:BotPTR, idx=Raw;
27
45
157
shrL_rReg_imm
long:
157
35700157
data
false
false
URShiftL
#9/0x00000009
158
castP2X
long:
158
35700158
data
false
false
CastP2X
159
MachProj
int:
159
35700159
data
true
false
false
1
#1
70
MachProj
control
70
35700070
control
true
false
false
271
0
#0/unmatched
C
8
43
145
checkCastPP
inst:
145
35700145
data
false
false
CheckCastPP
java/lang/Object:NotNull:exact * Oop:java/lang/Object:NotNull:exact *
147
Phi
rawptr:
147
35700147
data
false
false
243
#rawptr:BotPTR
8
43
148
MachProj
rawptr:
148
35700148
data
true
false
false
275
5
#5
RP
8
43
144
encodeHeapOop_not_null
narrowoop:
144
35700144
data
false
false
EncodeP
narrowoop: java/lang/Object:NotNull:exact *
146
MachProj
int:
146
35700146
data
true
false
false
1
#1
74
Region
control
74
35700074
control
false
false
240
true
8
43
76
Catch
tuple:
76
35700076
control
false
false
118
8
43
154
MergeMem
memory
154
35700154
memory
false
false
16
{ N155:rawptr:BotPTR N142:java/lang/Object+8 * [narrowklass] - N142:java/lang/Object * - - N143:java/lang/Class:exact+112 * [
-1
143
storeN
memory
143
35700143
memory
false
false
166
StoreN
memory Memory: @java/lang/Class:exact+112 * [narrow], name=escape1, idx=9;
15
43
126
storeP
memory
126
35700126
memory
false
false
260
StoreP
memory Memory: @rawptr:BotPTR, idx=Raw;
117
loadP
rawptr:
117
35700117
data
true
false
false
250
LoadP
rawptr:BotPTR
152
IfFalse
control
152
35700152
control
true
false
false
230
0
#0
true
F
26
45
160
Phi
memory
160
35700160
memory
false
false
218
#memory Memory: @java/lang/Class:exact+116 * [narrow], name=escape2, idx=10;
30
47
51
decodeKlass_not_null
klass:
51
35700051
data
false
false
49
DecodeNKlass
klass [Ljava/lang/Object;: 0x00007fdcc8113ed0 * Klass:klass [Ljava/lang/Object;: 0x00007fdcc8113ed0 *
1
39
34
loadRange
int:
34
35700034
data
false
false
54
LoadRange
#12/0x000000000000000c
1
39
33
IfTrue
control
33
35700033
control
true
false
false
28
1
#1
true
T
1
39
57
MachProj
memory
57
35700057
memory
false
false
86
2
#2/unmatched Memory: @BotPTR *+bot, idx=Bot;
M
1
39
25
CallStaticJavaDirect
tuple:
25
35700025
mixed
false
false
318
CallStaticJava
Static wrapper for: _new_array_Java # rawptr:NotNull ( java/lang/Object:NotNull *, int ) C=0.000100 TEST::testMethod_dontinlin
1
39
26
MachProj
bottom
26
35700026
other
true
false
false
10006
#10006/fat
95
storeI
memory
95
35700095
memory
false
false
317
StoreI
memory Memory: @rawptr:BotPTR, idx=Raw;
40
addP_rReg
rawptr:
40
35700040
data
false
false
295
AddP
rawptr:BotPTR
41
MachProj
int:
41
35700041
data
true
false
false
1
#1
107
MachProj
rawptr:
107
35700107
data
true
false
false
320
5
#5
RP
1
39
88
MachProj
control
88
35700088
control
true
false
false
90
0
#0/unmatched
C
1
39
79
MachProj
bottom
79
35700079
other
true
false
false
10006
#10006/fat
104
MachProj
int:
104
35700104
data
true
false
false
1
#1
149
loadConI
int:
149
35700149
data
true
false
false
197
ConI
#-28/0xffffffe4
135
MergeMem
memory
135
35700135
memory
false
false
194
{ N136:rawptr:BotPTR N142:java/lang/Object+8 * [narrowklass] - N142:java/lang/Object * - - N143:java/lang/Class:exact+112 * [
26
45
128
Phi
abIO
128
35700128
other
false
false
242
#abIO
20
CallStaticJavaDirect
tuple:
20
35700020
mixed
false
false
81
CallStaticJava
Static wrapper for: uncommon_trap(reason='unhandled' action='none' debug_id='0') # void ( int ) C=0.000100 TEST::testMethod_do
1
39
58
loadConI
int:
58
35700058
data
true
false
false
80
ConI
#-105/0xffffff97
19
MachProj
control
19
35700019
control
true
false
false
82
0
#0/unmatched
C
1
39
21
MachProj
bottom
21
35700021
other
true
false
false
10005
#10005/fat
4
CallStaticJavaDirect
tuple:
4
35700004
mixed
false
false
31
CallStaticJava
Static wrapper for: uncommon_trap(reason='null_check' action='maybe_recompile' debug_id='0') # void ( int ) C=0.000100 TEST::t
1
39
17
loadConI
int:
17
35700017
data
true
false
false
30
ConI
#-10/0xfffffff6
15
MachProj
rawptr:
15
35700015
data
true
false
false
8
3
#3
RP
-1
119
MachProj
abIO
119
35700119
other
true
false
false
125
1
#1/unmatched
IO
8
43
150
Ret
bottom
150
35700150
other
false
false
226
Return
true
18
ShouldNotReachHere
bottom
18
35700018
other
false
false
85
Halt
true
1
39
2
ShouldNotReachHere
bottom
2
35700002
other
false
false
35
Halt
true
1
39
137
loadConP
rawptr:
137
35700137
data
true
false
false
ConP
0x00007fdcfe9b8000
140
loadConP
inst:
140
35700140
data
true
false
false
ConP
java/lang/Class:exact * Oop:java/lang/Class:exact *
43
tlsLoadP
rawptr:
43
35700043
data
false
false
244
ThreadLocal
11
Start
tuple:
11
35700011
mixed
false
false
3
#{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address, 5:narrowoop: java/lang/Object *[int:>=0] *}
true
1
39
After matching
Global code motion
192
Region
control
192
35700192
18
0.49999898
control
false
false
true
195
NullCheck
tuple:
195
35800195
2
1.00000000
control
false
false
Node
176
Region
control
176
35700176
4
0.99999899
control
false
false
true
185
jmpDir
bottom
185
35700185
22
0.99989796
other
true
true
true
Goto
true
170
186
jmpDir
bottom
186
35700186
8
0.00010103
other
true
false
false
Goto
true
170
187
Region
control
187
35700187
8
0.00010103
control
false
false
true
172
Region
control
172
35700172
7
0.00000000
control
false
false
true
181
jmpDir
bottom
181
35700181
19
0.99989897
other
true
false
true
Goto
true
170
182
jmpDir
bottom
182
35700182
12
0.00010001
other
true
false
true
Goto
true
170
183
Region
control
183
35700183
12
0.00010001
control
false
false
true
194
Region
control
194
35700194
11
0.00000000
control
false
true
true
193
Region
control
193
35700193
14
0.49999949
control
false
false
true
190
jmpDir
bottom
190
35700190
14
0.49999949
other
true
false
false
Goto
true
170
184
Region
control
184
35700184
10
0.00010002
control
false
false
true
189
Region
control
189
35700189
19
0.99989897
control
false
false
true
197
MachProj
bottom
197
35800197
9
0.99999898
other
true
false
false
6
#6/fat
178
Region
control
178
35700178
20
0.99999797
control
false
false
true
175
Region
control
175
35700175
5
0.00000101
control
false
false
true
174
jmpDir
bottom
174
35700174
5
0.00000101
other
true
false
false
Goto
true
170
173
jmpDir
bottom
173
35700173
21
0.00010002
other
true
true
false
Goto
true
170
177
Region
control
177
35700177
21
0.00010002
control
true
false
true
188
Region
control
188
35700188
22
0.99989796
control
false
false
true
171
Region
control
171
35700171
3
0.00000101
control
true
false
true
180
Region
control
180
35700180
16
0.49999949
control
true
false
true
179
Region
control
179
35700179
17
0.00000050
control
false
false
true
191
jmpDir
bottom
191
35700191
18
0.49999898
other
true
false
false
Goto
true
170
199
MachProj
bottom
199
35800199
17
0.00000050
other
true
true
true
6
#6/fat
198
MachProj
bottom
198
35800198
10
0.00010002
other
true
false
false
7
#7/fat
200
MachProj
bottom
200
35800200
7
0.00000000
other
true
false
false
6
#6/fat
196
MachProj
bottom
196
35800196
6
0.00010103
other
true
false
false
7
#7/fat
201
MachProj
bottom
201
35800201
3
0.00000101
other
true
false
false
6
#6/fat
Final Code
241
MemToRegSpillCopy
int:
241
35800241
7
0.99999898
data
true
true
true
Node
R10
87
236
DefinitionSpillCopy
int:
236
35800236
2
0.99999899
data
true
true
true
Node
rsp + #0
55
221
tlsLoadP
rawptr:
221
35800221
5
0.99999898
data
false
false
ThreadLocal
[43]
R15
65
205
TwoAddressSpillCopy
rawptr:
205
35800205
5
0.99999898
data
true
false
false
Node
R10
28
225
DefinitionSpillCopy
ary:
225
35800225
11
0.00010002
data
true
false
false
Node
rsp + #8
69
240
MemToRegSpillCopy
ary:
240
35800240
5
0.99999898
data
true
true
true
Node
R10
86
244
DefinitionSpillCopy
narrowoop:
244
35800244
5
0.99999898
data
true
true
false
Node
rsp + #4
93
245
MemToRegSpillCopy
narrowoop:
245
35800245
9
0.49999898
data
true
true
false
Node
R10
94
229
RegToMemSpillCopy
ary:
229
35800229
15
0.00000050
data
true
false
false
Node
RBP
73
219
BoundSpillCopy
long:
219
35800219
5
0.99999898
data
true
false
false
Node
RDX
63
203
TwoAddressSpillCopy
ary:
203
35800203
5
0.99999898
data
true
false
false
Node
RDI
19
207
DebugUseSpillCopy
ary:
207
35800207
17
0.00000000
data
true
false
false
Node
RBP
51
202
TwoAddressSpillCopy
rawptr:
202
35800202
3
0.99999797
data
true
false
false
Node
R11
13
232
PhiLocationDifferToInputLocationSpillCopy
rawptr:
232
35800232
14
0.00010103
data
true
false
false
Node
RBX
79
228
Phi
ary:
228
35800228
7
0.99999898
data
false
false
#narrowoop: java/lang/Object *[int:0..max-2]:NotNull *
RBX
79
204
TwoAddressSpillCopy
ary:
204
35800204
5
0.99999898
data
true
false
false
Node
RSI
21
234
PhiLocationDifferToInputLocationSpillCopy
ary:
234
35800234
12
0.00010001
data
true
false
false
Node
RBX
79
206
DebugUseSpillCopy
ary:
206
35800206
11
0.00010002
data
true
false
false
Node
RBP
50
231
BoundSpillCopy
inst:
231
35800231
18
0.00000000
data
true
false
true
Node
Oop:java/lang/Throwable:NotNull *
RSI
75
220
tlsLoadP
rawptr:
220
35800220
5
0.99999898
data
false
false
ThreadLocal
[43]
R15
64
214
tlsLoadP
rawptr:
214
35800214
4
0.99989796
data
false
false
ThreadLocal
[43]
R15
58
213
tlsLoadP
rawptr:
213
35800213
3
0.99999797
data
false
false
ThreadLocal
[43]
R15
57
212
tlsLoadP
rawptr:
212
35800212
3
0.99999797
data
false
false
ThreadLocal
[43]
R15
56
222
tlsLoadP
rawptr:
222
35800222
6
0.99989897
data
false
false
ThreadLocal
[43]
R15
66
210
MemToRegSpillCopy
ary:
210
35800210
1
1.00000000
data
true
false
false
Node
rsp + #16
89
215
BoundSpillCopy
int:
215
35800215
13
0.00010103
data
true
false
false
Node
RDX
59
239
MemToRegSpillCopy
int:
239
35800239
4
0.99989796
data
true
true
false
Node
R8
85
238
MemToRegSpillCopy
int:
238
35800238
2
0.99999899
data
true
false
false
Node
R11
84
250
Epilog
control
250
35800250
18
0.00000000
control
true
false
Node
<OptoReg::-1>
0
258
Nop
control
258
35800258
17
0.00000000
control
false
false
Con
<OptoReg::-1>
0
257
Nop
control
257
35800257
16
0.00000101
control
true
false
Con
<OptoReg::-1>
0
256
Nop
control
256
35800256
15
0.00000050
control
false
false
Con
<OptoReg::-1>
0
249
Epilog
control
249
35800249
10
0.99999848
control
false
false
Node
<OptoReg::-1>
0
248
Prolog
control
248
35800248
1
1.00000000
control
false
false
Node
<OptoReg::-1>
0