17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "ci/ciConstant.hpp"
27 #include "ci/ciEnv.hpp"
28 #include "ci/ciField.hpp"
29 #include "ci/ciInstance.hpp"
30 #include "ci/ciInstanceKlass.hpp"
31 #include "ci/ciMethod.hpp"
32 #include "ci/ciNullObject.hpp"
33 #include "ci/ciReplay.hpp"
34 #include "ci/ciUtilities.hpp"
35 #include "classfile/systemDictionary.hpp"
36 #include "classfile/vmSymbols.hpp"
37 #include "code/scopeDesc.hpp"
38 #include "compiler/compileBroker.hpp"
39 #include "compiler/compileLog.hpp"
40 #include "compiler/compilerOracle.hpp"
41 #include "gc_interface/collectedHeap.inline.hpp"
42 #include "interpreter/linkResolver.hpp"
43 #include "memory/allocation.inline.hpp"
44 #include "memory/oopFactory.hpp"
45 #include "memory/universe.inline.hpp"
46 #include "oops/methodData.hpp"
47 #include "oops/objArrayKlass.hpp"
48 #include "oops/oop.inline.hpp"
49 #include "oops/oop.inline2.hpp"
50 #include "prims/jvmtiExport.hpp"
51 #include "runtime/init.hpp"
52 #include "runtime/reflection.hpp"
53 #include "runtime/sharedRuntime.hpp"
54 #include "runtime/thread.inline.hpp"
55 #include "utilities/dtrace.hpp"
56 #include "utilities/macros.hpp"
1068 if (TraceNMethodInstalls) {
1069 ResourceMark rm;
1070 char *method_name = method->name_and_sig_as_C_string();
1071 ttyLocker ttyl;
1072 tty->print_cr("Installing osr method (%d) %s @ %d",
1073 comp_level,
1074 method_name,
1075 entry_bci);
1076 }
1077 method->method_holder()->add_osr_nmethod(nm);
1078 }
1079 }
1080 } // safepoints are allowed again
1081
1082 if (nm != NULL) {
1083 // JVMTI -- compiled method notification (must be done outside lock)
1084 nm->post_compiled_method_load_event();
1085 } else {
1086 // The CodeCache is full. Print out warning and disable compilation.
1087 record_failure("code cache is full");
1088 CompileBroker::handle_full_code_cache();
1089 }
1090 }
1091
1092
1093 // ------------------------------------------------------------------
1094 // ciEnv::find_system_klass
1095 ciKlass* ciEnv::find_system_klass(ciSymbol* klass_name) {
1096 VM_ENTRY_MARK;
1097 return get_klass_by_name_impl(NULL, constantPoolHandle(), klass_name, false);
1098 }
1099
1100 // ------------------------------------------------------------------
1101 // ciEnv::comp_level
1102 int ciEnv::comp_level() {
1103 if (task() == NULL) return CompLevel_highest_tier;
1104 return task()->comp_level();
1105 }
1106
1107 // ------------------------------------------------------------------
1108 // ciEnv::compile_id
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "ci/ciConstant.hpp"
27 #include "ci/ciEnv.hpp"
28 #include "ci/ciField.hpp"
29 #include "ci/ciInstance.hpp"
30 #include "ci/ciInstanceKlass.hpp"
31 #include "ci/ciMethod.hpp"
32 #include "ci/ciNullObject.hpp"
33 #include "ci/ciReplay.hpp"
34 #include "ci/ciUtilities.hpp"
35 #include "classfile/systemDictionary.hpp"
36 #include "classfile/vmSymbols.hpp"
37 #include "code/codeCache.hpp"
38 #include "code/scopeDesc.hpp"
39 #include "compiler/compileBroker.hpp"
40 #include "compiler/compileLog.hpp"
41 #include "compiler/compilerOracle.hpp"
42 #include "gc_interface/collectedHeap.inline.hpp"
43 #include "interpreter/linkResolver.hpp"
44 #include "memory/allocation.inline.hpp"
45 #include "memory/oopFactory.hpp"
46 #include "memory/universe.inline.hpp"
47 #include "oops/methodData.hpp"
48 #include "oops/objArrayKlass.hpp"
49 #include "oops/oop.inline.hpp"
50 #include "oops/oop.inline2.hpp"
51 #include "prims/jvmtiExport.hpp"
52 #include "runtime/init.hpp"
53 #include "runtime/reflection.hpp"
54 #include "runtime/sharedRuntime.hpp"
55 #include "runtime/thread.inline.hpp"
56 #include "utilities/dtrace.hpp"
57 #include "utilities/macros.hpp"
1069 if (TraceNMethodInstalls) {
1070 ResourceMark rm;
1071 char *method_name = method->name_and_sig_as_C_string();
1072 ttyLocker ttyl;
1073 tty->print_cr("Installing osr method (%d) %s @ %d",
1074 comp_level,
1075 method_name,
1076 entry_bci);
1077 }
1078 method->method_holder()->add_osr_nmethod(nm);
1079 }
1080 }
1081 } // safepoints are allowed again
1082
1083 if (nm != NULL) {
1084 // JVMTI -- compiled method notification (must be done outside lock)
1085 nm->post_compiled_method_load_event();
1086 } else {
1087 // The CodeCache is full. Print out warning and disable compilation.
1088 record_failure("code cache is full");
1089 CompileBroker::handle_full_code_cache(CodeCache::get_code_blob_type(comp_level));
1090 }
1091 }
1092
1093
1094 // ------------------------------------------------------------------
1095 // ciEnv::find_system_klass
1096 ciKlass* ciEnv::find_system_klass(ciSymbol* klass_name) {
1097 VM_ENTRY_MARK;
1098 return get_klass_by_name_impl(NULL, constantPoolHandle(), klass_name, false);
1099 }
1100
1101 // ------------------------------------------------------------------
1102 // ciEnv::comp_level
1103 int ciEnv::comp_level() {
1104 if (task() == NULL) return CompLevel_highest_tier;
1105 return task()->comp_level();
1106 }
1107
1108 // ------------------------------------------------------------------
1109 // ciEnv::compile_id
|