comparison src/share/vm/oops/method.cpp @ 12324:510fbd28919c

8020151: PSR:PERF Large performance regressions when code cache is filled Summary: Code cache sweeping based on method hotness; removed speculatively disconnect Reviewed-by: kvn, iveresov
author anoll
date Fri, 27 Sep 2013 10:50:55 +0200
parents b2e698d2276c
children cefad50507d8 ac9cb1d5a202
comparison
equal deleted inserted replaced
12323:c9ccd7b85f20 12324:510fbd28919c
899 // This function is called after potential safepoints so that nmethod 899 // This function is called after potential safepoints so that nmethod
900 // or adapter that it points to is still live and valid. 900 // or adapter that it points to is still live and valid.
901 // This function must not hit a safepoint! 901 // This function must not hit a safepoint!
902 address Method::verified_code_entry() { 902 address Method::verified_code_entry() {
903 debug_only(No_Safepoint_Verifier nsv;) 903 debug_only(No_Safepoint_Verifier nsv;)
904 nmethod *code = (nmethod *)OrderAccess::load_ptr_acquire(&_code);
905 if (code == NULL && UseCodeCacheFlushing) {
906 nmethod *saved_code = CodeCache::reanimate_saved_code(this);
907 if (saved_code != NULL) {
908 methodHandle method(this);
909 assert( ! saved_code->is_osr_method(), "should not get here for osr" );
910 set_code( method, saved_code );
911 }
912 }
913
914 assert(_from_compiled_entry != NULL, "must be set"); 904 assert(_from_compiled_entry != NULL, "must be set");
915 return _from_compiled_entry; 905 return _from_compiled_entry;
916 } 906 }
917 907
918 // Check that if an nmethod ref exists, it has a backlink to this or no backlink at all 908 // Check that if an nmethod ref exists, it has a backlink to this or no backlink at all