src/share/vm/runtime/deoptimization.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/runtime

src/share/vm/runtime/deoptimization.cpp

Print this page
rev 6132 : 8031755: Type speculation should be used to optimize explicit null checks
Summary: feed profiling data about reference nullness to type speculation.
Reviewed-by:


1809   = Deoptimization::Action_reinterpret;
1810 const char* Deoptimization::_trap_reason_name[Reason_LIMIT] = {
1811   // Note:  Keep this in sync. with enum DeoptReason.
1812   "none",
1813   "null_check",
1814   "null_assert",
1815   "range_check",
1816   "class_check",
1817   "array_check",
1818   "intrinsic",
1819   "bimorphic",
1820   "unloaded",
1821   "uninitialized",
1822   "unreached",
1823   "unhandled",
1824   "constraint",
1825   "div0_check",
1826   "age",
1827   "predicate",
1828   "loop_limit_check",
1829   "speculate_class_check"

1830 };
1831 const char* Deoptimization::_trap_action_name[Action_LIMIT] = {
1832   // Note:  Keep this in sync. with enum DeoptAction.
1833   "none",
1834   "maybe_recompile",
1835   "reinterpret",
1836   "make_not_entrant",
1837   "make_not_compilable"
1838 };
1839 
1840 const char* Deoptimization::trap_reason_name(int reason) {
1841   if (reason == Reason_many)  return "many";
1842   if ((uint)reason < Reason_LIMIT)
1843     return _trap_reason_name[reason];
1844   static char buf[20];
1845   sprintf(buf, "reason%d", reason);
1846   return buf;
1847 }
1848 const char* Deoptimization::trap_action_name(int action) {
1849   if ((uint)action < Action_LIMIT)




1809   = Deoptimization::Action_reinterpret;
1810 const char* Deoptimization::_trap_reason_name[Reason_LIMIT] = {
1811   // Note:  Keep this in sync. with enum DeoptReason.
1812   "none",
1813   "null_check",
1814   "null_assert",
1815   "range_check",
1816   "class_check",
1817   "array_check",
1818   "intrinsic",
1819   "bimorphic",
1820   "unloaded",
1821   "uninitialized",
1822   "unreached",
1823   "unhandled",
1824   "constraint",
1825   "div0_check",
1826   "age",
1827   "predicate",
1828   "loop_limit_check",
1829   "speculate_class_check",
1830   "speculate_null_check"
1831 };
1832 const char* Deoptimization::_trap_action_name[Action_LIMIT] = {
1833   // Note:  Keep this in sync. with enum DeoptAction.
1834   "none",
1835   "maybe_recompile",
1836   "reinterpret",
1837   "make_not_entrant",
1838   "make_not_compilable"
1839 };
1840 
1841 const char* Deoptimization::trap_reason_name(int reason) {
1842   if (reason == Reason_many)  return "many";
1843   if ((uint)reason < Reason_LIMIT)
1844     return _trap_reason_name[reason];
1845   static char buf[20];
1846   sprintf(buf, "reason%d", reason);
1847   return buf;
1848 }
1849 const char* Deoptimization::trap_action_name(int action) {
1850   if ((uint)action < Action_LIMIT)


src/share/vm/runtime/deoptimization.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File