comparison src/share/vm/runtime/deoptimization.cpp @ 7154:5d0bb7d52783

changes to support Graal co-existing with the other HotSpot compiler(s) and being used for explicit compilation requests and code installation via the Graal API
author Doug Simon <doug.simon@oracle.com>
date Wed, 12 Dec 2012 21:36:40 +0100
parents a818db37b7be
children 291ffc492eb6 8a3efb8c831d
comparison
equal deleted inserted replaced
7153:c421c19b7bf8 7154:5d0bb7d52783
1308 tty->print_cr(" bci=%d pc=%d, relative_pc=%d, method=%s", trap_scope->bci(), fr.pc(), fr.pc() - nm->code_begin(), trap_scope->method()->name()->as_C_string()); 1308 tty->print_cr(" bci=%d pc=%d, relative_pc=%d, method=%s", trap_scope->bci(), fr.pc(), fr.pc() - nm->code_begin(), trap_scope->method()->name()->as_C_string());
1309 #ifdef GRAAL 1309 #ifdef GRAAL
1310 if (thread->graal_deopt_info() != NULL) { 1310 if (thread->graal_deopt_info() != NULL) {
1311 oop deopt_info = thread->graal_deopt_info(); 1311 oop deopt_info = thread->graal_deopt_info();
1312 if (java_lang_String::is_instance(deopt_info)) { 1312 if (java_lang_String::is_instance(deopt_info)) {
1313 char buf[1024]; 1313 char buf[O_BUFLEN];
1314 java_lang_String::as_utf8_string(deopt_info, buf, 1024); 1314 java_lang_String::as_utf8_string(deopt_info, buf, O_BUFLEN);
1315 tty->print_cr("deopt info: %s", buf); 1315 tty->print_cr("deopt info: %s", buf);
1316 } else { 1316 } else {
1317 tty->print_cr("deopt info:"); 1317 tty->print_cr("deopt info:");
1318 deopt_info->print(); 1318 deopt_info->print();
1319 } 1319 }
1854 1854
1855 //--------------------------------statics-------------------------------------- 1855 //--------------------------------statics--------------------------------------
1856 Deoptimization::DeoptAction Deoptimization::_unloaded_action 1856 Deoptimization::DeoptAction Deoptimization::_unloaded_action
1857 = Deoptimization::Action_reinterpret; 1857 = Deoptimization::Action_reinterpret;
1858 const char* Deoptimization::_trap_reason_name[Reason_LIMIT] = { 1858 const char* Deoptimization::_trap_reason_name[Reason_LIMIT] = {
1859 #ifdef GRAAL 1859 // Note: Keep this in sync. with enum DeoptReason.
1860 "none", 1860 "none",
1861 "null_check", 1861 "null_check",
1862 "null_assert" GRAAL_ONLY("|unreached0"),
1862 "range_check", 1863 "range_check",
1863 "class_check", 1864 "class_check",
1864 "array_check", 1865 "array_check",
1866 "intrinsic" GRAAL_ONLY("|type_checked_inlining"),
1867 "bimorphic" GRAAL_ONLY("|optimized_type_check"),
1868 "unloaded",
1869 "uninitialized" GRAAL_ONLY("|unresolved"),
1865 "unreached", 1870 "unreached",
1866 "type_checked_inlining", 1871 "unhandled" GRAAL_ONLY("|not_compiled_exception_handler"),
1867 "optimized_type_check",
1868 "not_compiled_exception_handler",
1869 "unresolved",
1870 "jsr_mismatch",
1871 "div0_check",
1872 "constraint"
1873 #else
1874 // Note: Keep this in sync. with enum DeoptReason.
1875 "none",
1876 "null_check",
1877 "null_assert",
1878 "range_check",
1879 "class_check",
1880 "array_check",
1881 "intrinsic",
1882 "bimorphic",
1883 "unloaded",
1884 "uninitialized",
1885 "unreached",
1886 "unhandled",
1887 "constraint", 1872 "constraint",
1888 "div0_check", 1873 "div0_check",
1889 "age", 1874 "age" GRAAL_ONLY("|jsr_mismatch"),
1890 "predicate", 1875 "predicate",
1891 "loop_limit_check" 1876 "loop_limit_check"
1892 #endif
1893 }; 1877 };
1894 const char* Deoptimization::_trap_action_name[Action_LIMIT] = { 1878 const char* Deoptimization::_trap_action_name[Action_LIMIT] = {
1895 // Note: Keep this in sync. with enum DeoptAction. 1879 // Note: Keep this in sync. with enum DeoptAction.
1896 "none", 1880 "none",
1897 "maybe_recompile", 1881 "maybe_recompile",