comparison src/share/vm/opto/bytecodeInfo.cpp @ 1783:d5d065957597

6953144: Tiered compilation Summary: Infrastructure for tiered compilation support (interpreter + c1 + c2) for 32 and 64 bit. Simple tiered policy implementation. Reviewed-by: kvn, never, phh, twisti
author iveresov
date Fri, 03 Sep 2010 17:51:07 -0700
parents e9ff18c4ace7
children f95d63e2154a
comparison
equal deleted inserted replaced
1782:f353275af40e 1783:d5d065957597
138 tty->cr(); 138 tty->cr();
139 } 139 }
140 } else { 140 } else {
141 // Not hot. Check for medium-sized pre-existing nmethod at cold sites. 141 // Not hot. Check for medium-sized pre-existing nmethod at cold sites.
142 if (callee_method->has_compiled_code() && 142 if (callee_method->has_compiled_code() &&
143 callee_method->instructions_size() > InlineSmallCode/4) 143 callee_method->instructions_size(CompLevel_full_optimization) > InlineSmallCode/4)
144 return "already compiled into a medium method"; 144 return "already compiled into a medium method";
145 } 145 }
146 if (size > max_size) { 146 if (size > max_size) {
147 if (max_size > C->max_inline_size()) 147 if (max_size > C->max_inline_size())
148 return "hot method too big"; 148 return "hot method too big";
178 if (!top_method->holder()->is_subclass_of(C->env()->Throwable_klass())) { 178 if (!top_method->holder()->is_subclass_of(C->env()->Throwable_klass())) {
179 wci_result->set_profit(wci_result->profit() * 0.1); 179 wci_result->set_profit(wci_result->profit() * 0.1);
180 } 180 }
181 } 181 }
182 182
183 if (callee_method->has_compiled_code() && callee_method->instructions_size() > InlineSmallCode) { 183 if (callee_method->has_compiled_code() && callee_method->instructions_size(CompLevel_full_optimization) > InlineSmallCode) {
184 wci_result->set_profit(wci_result->profit() * 0.1); 184 wci_result->set_profit(wci_result->profit() * 0.1);
185 // %%% adjust wci_result->size()? 185 // %%% adjust wci_result->size()?
186 } 186 }
187 187
188 return NULL; 188 return NULL;
204 return NULL; 204 return NULL;
205 } 205 }
206 206
207 // Now perform checks which are heuristic 207 // Now perform checks which are heuristic
208 208
209 if( callee_method->has_compiled_code() && callee_method->instructions_size() > InlineSmallCode ) 209 if( callee_method->has_compiled_code() && callee_method->instructions_size(CompLevel_full_optimization) > InlineSmallCode )
210 return "already compiled into a big method"; 210 return "already compiled into a big method";
211 211
212 // don't inline exception code unless the top method belongs to an 212 // don't inline exception code unless the top method belongs to an
213 // exception class 213 // exception class
214 if (caller_tree() != NULL && 214 if (caller_tree() != NULL &&