Mercurial > hg > graal-jvmci-8
comparison src/share/vm/ci/bcEscapeAnalyzer.cpp @ 154:09c2ba680204
6700102: c2 assertion "counter_changed,"failed dependencies, but counter didn't change")" with AggressiveOpts
Summary: Bytecode Escape Analyzer does not have the check for the case described in 6389127.
Reviewed-by: never
author | kvn |
---|---|
date | Thu, 15 May 2008 22:40:43 -0700 |
parents | e1e86702e43e |
children | d1605aabd0a1 |
comparison
equal
deleted
inserted
replaced
147:83c868b757c0 | 154:09c2ba680204 |
---|---|
215 // retrieve information about the callee | 215 // retrieve information about the callee |
216 ciInstanceKlass* klass = target->holder(); | 216 ciInstanceKlass* klass = target->holder(); |
217 ciInstanceKlass* calling_klass = method()->holder(); | 217 ciInstanceKlass* calling_klass = method()->holder(); |
218 ciInstanceKlass* callee_holder = ciEnv::get_instance_klass_for_declared_method_holder(holder); | 218 ciInstanceKlass* callee_holder = ciEnv::get_instance_klass_for_declared_method_holder(holder); |
219 ciInstanceKlass* actual_recv = callee_holder; | 219 ciInstanceKlass* actual_recv = callee_holder; |
220 | |
221 // some methods are obviously bindable without any type checks so | |
222 // convert them directly to an invokespecial. | |
223 if (target->is_loaded() && !target->is_abstract() && | |
224 target->can_be_statically_bound() && code == Bytecodes::_invokevirtual) { | |
225 code = Bytecodes::_invokespecial; | |
226 } | |
220 | 227 |
221 // compute size of arguments | 228 // compute size of arguments |
222 int arg_size = target->arg_size(); | 229 int arg_size = target->arg_size(); |
223 if (!target->is_loaded() && code == Bytecodes::_invokestatic) { | 230 if (!target->is_loaded() && code == Bytecodes::_invokestatic) { |
224 arg_size--; | 231 arg_size--; |