1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
2 |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
3 |
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'> |
4 |
<head> |
5 |
<title>rpms/java-1.8.0-openjdk.git - java-1.8.0-openjdk</title> |
6 |
<meta name='generator' content='cgit v0.12'/> |
7 |
<meta name='robots' content='index, nofollow'/> |
8 |
<link rel='stylesheet' type='text/css' href='/cgit-data/cgit.css'/> |
9 |
<link rel='shortcut icon' href='/favicon.ico'/> |
10 |
<link rel='alternate' title='Atom feed' href='http://pkgs.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/atom/hotspot-1358661.patch?h=f24' type='application/atom+xml'/> |
11 |
<link rel='vcs-git' href='git://pkgs.fedoraproject.org/rpms/java-1.8.0-openjdk.git' title='rpms/java-1.8.0-openjdk.git Git repository'/> |
12 |
<link rel='vcs-git' href='ssh://pkgs.fedoraproject.org/rpms/java-1.8.0-openjdk.git' title='rpms/java-1.8.0-openjdk.git Git repository'/> |
13 |
<link rel='vcs-git' href='http://pkgs.fedoraproject.org/git/rpms/java-1.8.0-openjdk.git' title='rpms/java-1.8.0-openjdk.git Git repository'/> |
14 |
</head> |
15 |
<body> |
16 |
<script src="https://apps.fedoraproject.org/fedmenu/js/jquery-1.11.2.min.js"></script> |
17 |
<script src="https://apps.fedoraproject.org/fedmenu/js/fedmenu.js"></script> |
18 |
|
19 |
<script> |
20 |
var base = 'https://apps.fedoraproject.org/'; |
21 |
var tokens = window.location.href.split('/'); |
22 |
var repo = null; |
23 |
if (tokens.length > 4 && tokens[4] != '') { |
24 |
repo = tokens[4].split('.')[0]; |
25 |
} |
26 |
fedmenu({ |
27 |
'url': base + 'js/data.js', |
28 |
'mimeType': 'application/javascript', |
29 |
'position': 'bottom-right', |
30 |
'package': repo, |
31 |
}); |
32 |
</script> |
33 |
<div id='cgit'><table id='header'> |
34 |
<tr> |
35 |
<td class='logo' rowspan='2'><a href='/cgit/'><img src='/cgit-data/cgit.png' alt='cgit logo'/></a></td> |
36 |
<td class='main'><a href='/cgit/'>index</a> : <a title='rpms/java-1.8.0-openjdk.git' href='/cgit/rpms/java-1.8.0-openjdk.git/'>rpms/java-1.8.0-openjdk.git</a></td><td class='form'><form method='get' action=''> |
37 |
<select name='h' onchange='this.form.submit();'> |
38 |
<option value='f19'>f19</option> |
39 |
<option value='f20'>f20</option> |
40 |
<option value='f21'>f21</option> |
41 |
<option value='f22'>f22</option> |
42 |
<option value='f23'>f23</option> |
43 |
<option value='f24' selected='selected'>f24</option> |
44 |
<option value='f25'>f25</option> |
45 |
<option value='master'>master</option> |
46 |
</select> <input type='submit' name='' value='switch'/></form></td></tr> |
47 |
<tr><td class='sub'>java-1.8.0-openjdk</td><td class='sub right'>Jon Ciesla</td></tr></table> |
48 |
<table class='tabs'><tr><td> |
49 |
<a href='/cgit/rpms/java-1.8.0-openjdk.git/?h=f24'>summary</a><a href='/cgit/rpms/java-1.8.0-openjdk.git/refs/?h=f24'>refs</a><a href='/cgit/rpms/java-1.8.0-openjdk.git/log/hotspot-1358661.patch?h=f24'>log</a><a class='active' href='/cgit/rpms/java-1.8.0-openjdk.git/tree/hotspot-1358661.patch?h=f24'>tree</a><a href='/cgit/rpms/java-1.8.0-openjdk.git/commit/hotspot-1358661.patch?h=f24'>commit</a><a href='/cgit/rpms/java-1.8.0-openjdk.git/diff/hotspot-1358661.patch?h=f24'>diff</a><a href='/cgit/rpms/java-1.8.0-openjdk.git/stats/hotspot-1358661.patch?h=f24'>stats</a></td><td class='form'><form class='right' method='get' action='/cgit/rpms/java-1.8.0-openjdk.git/log/hotspot-1358661.patch'> |
50 |
<input type='hidden' name='h' value='f24'/><select name='qt'> |
51 |
<option value='grep'>log msg</option> |
52 |
<option value='author'>author</option> |
53 |
<option value='committer'>committer</option> |
54 |
<option value='range'>range</option> |
55 |
</select> |
56 |
<input class='txt' type='text' size='10' name='q' value=''/> |
57 |
<input type='submit' value='search'/> |
58 |
</form> |
59 |
</td></tr></table> |
60 |
<div class='path'>path: <a href='/cgit/rpms/java-1.8.0-openjdk.git/tree/?h=f24'>root</a>/<a href='/cgit/rpms/java-1.8.0-openjdk.git/tree/hotspot-1358661.patch?h=f24'>hotspot-1358661.patch</a></div><div class='content'>blob: fd986c9a680402d9fda62638e70e1a2b04cc7c22 (<a href='/cgit/rpms/java-1.8.0-openjdk.git/plain/hotspot-1358661.patch?h=f24'>plain</a>) |
61 |
<table summary='blob content' class='blob'> |
62 |
<tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a> |
63 |
<a id='n2' href='#n2'>2</a> |
64 |
<a id='n3' href='#n3'>3</a> |
65 |
<a id='n4' href='#n4'>4</a> |
66 |
<a id='n5' href='#n5'>5</a> |
67 |
<a id='n6' href='#n6'>6</a> |
68 |
<a id='n7' href='#n7'>7</a> |
69 |
<a id='n8' href='#n8'>8</a> |
70 |
<a id='n9' href='#n9'>9</a> |
71 |
<a id='n10' href='#n10'>10</a> |
72 |
<a id='n11' href='#n11'>11</a> |
73 |
<a id='n12' href='#n12'>12</a> |
74 |
<a id='n13' href='#n13'>13</a> |
75 |
<a id='n14' href='#n14'>14</a> |
76 |
<a id='n15' href='#n15'>15</a> |
77 |
<a id='n16' href='#n16'>16</a> |
78 |
<a id='n17' href='#n17'>17</a> |
79 |
<a id='n18' href='#n18'>18</a> |
80 |
<a id='n19' href='#n19'>19</a> |
81 |
<a id='n20' href='#n20'>20</a> |
82 |
<a id='n21' href='#n21'>21</a> |
83 |
<a id='n22' href='#n22'>22</a> |
84 |
<a id='n23' href='#n23'>23</a> |
85 |
<a id='n24' href='#n24'>24</a> |
86 |
<a id='n25' href='#n25'>25</a> |
87 |
<a id='n26' href='#n26'>26</a> |
88 |
<a id='n27' href='#n27'>27</a> |
89 |
<a id='n28' href='#n28'>28</a> |
90 |
<a id='n29' href='#n29'>29</a> |
91 |
<a id='n30' href='#n30'>30</a> |
92 |
<a id='n31' href='#n31'>31</a> |
93 |
<a id='n32' href='#n32'>32</a> |
94 |
<a id='n33' href='#n33'>33</a> |
95 |
<a id='n34' href='#n34'>34</a> |
96 |
<a id='n35' href='#n35'>35</a> |
97 |
<a id='n36' href='#n36'>36</a> |
98 |
<a id='n37' href='#n37'>37</a> |
99 |
<a id='n38' href='#n38'>38</a> |
100 |
<a id='n39' href='#n39'>39</a> |
101 |
<a id='n40' href='#n40'>40</a> |
102 |
<a id='n41' href='#n41'>41</a> |
103 |
<a id='n42' href='#n42'>42</a> |
104 |
<a id='n43' href='#n43'>43</a> |
105 |
</pre></td> |
106 |
<td class='lines'><pre><code>--- openjdk/hotspot/src/share/vm/opto/doCall.cpp 2016-07-22 11:32:42.953343258 +0200 |
107 |
+++ openjdk/hotspot/src/share/vm/opto/doCall.cpp 2016-07-22 11:32:39.209369543 +0200 |
108 |
@@ -209,16 +209,22 @@ |
109 |
|
110 |
int morphism = profile.morphism(); |
111 |
if (speculative_receiver_type != NULL) { |
112 |
- // We have a speculative type, we should be able to resolve |
113 |
- // the call. We do that before looking at the profiling at |
114 |
- // this invoke because it may lead to bimorphic inlining which |
115 |
- // a speculative type should help us avoid. |
116 |
- receiver_method = callee->resolve_invoke(jvms->method()->holder(), |
117 |
- speculative_receiver_type); |
118 |
- if (receiver_method == NULL) { |
119 |
- speculative_receiver_type = NULL; |
120 |
+ if (!too_many_traps(caller, bci, Deoptimization::Reason_speculate_class_check)) { |
121 |
+ // We have a speculative type, we should be able to resolve |
122 |
+ // the call. We do that before looking at the profiling at |
123 |
+ // this invoke because it may lead to bimorphic inlining which |
124 |
+ // a speculative type should help us avoid. |
125 |
+ receiver_method = callee->resolve_invoke(jvms->method()->holder(), |
126 |
+ speculative_receiver_type); |
127 |
+ if (receiver_method == NULL) { |
128 |
+ speculative_receiver_type = NULL; |
129 |
+ } else { |
130 |
+ morphism = 1; |
131 |
+ } |
132 |
} else { |
133 |
- morphism = 1; |
134 |
+ // speculation failed before. Use profiling at the call |
135 |
+ // (could allow bimorphic inlining for instance). |
136 |
+ speculative_receiver_type = NULL; |
137 |
} |
138 |
} |
139 |
if (receiver_method == NULL && |
140 |
@@ -255,7 +261,7 @@ |
141 |
Deoptimization::Reason_bimorphic : |
142 |
(speculative_receiver_type == NULL ? Deoptimization::Reason_class_check : Deoptimization::Reason_speculate_class_check); |
143 |
if ((morphism == 1 || (morphism == 2 && next_hit_cg != NULL)) && |
144 |
- !too_many_traps(jvms->method(), jvms->bci(), reason) |
145 |
+ !too_many_traps(caller, bci, reason) |
146 |
) { |
147 |
// Generate uncommon trap for class check failure path |
148 |
// in case of monomorphic or bimorphic virtual call site. |
149 |
</code></pre></td></tr></table> |
150 |
</div> <!-- class=content --> |
151 |
<div class='footer'>generated by <a href='http://git.zx2c4.com/cgit/about/'>cgit v0.12</a> at 2016-07-28 17:18:11 (GMT)</div> |
152 |
</div> <!-- id=cgit --> |
153 |
</body> |
154 |
</html> |