Relates :
|
Use metadata section in nmethod to decide when to deoptimize nmethods after redefinition. This walk includes the Method* in evol_method dependencies because the Method* is added there. This might deoptimize more things but then we don't have to call clear_inline_caches. [~eosterlund] is trying to remove that. I don't think this can remove evol_method dependencies. We still have to assert_evol_method to get the Method* in the metadata section. It also seems to be used to check_dependencies: // The point of the whole exercise: Is this dep still OK? Klass* check_dependency() { Klass* result = check_klass_dependency(NULL); if (result != NULL) return result; return check_call_site_dependency(NULL); } check_klass_dependency has a case for evol_method dependencies. Also make metadata_do take a closure.