Mercurial > hg > truffle
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", |