Print this page
rev 6907 : 8056071: compiler/whitebox/IsMethodCompilableTest.java fails with 'method() is not compilable after 3 iterations'
Summary: Always use MDO if valid and always compile trivial methods with C1 if available.
Reviewed-by: kvn, iveresov

Split Split Close
Expand all
Collapse all
          --- old/hotspot/src/share/vm/oops/methodData.cpp
          +++ new/hotspot/src/share/vm/oops/methodData.cpp
↓ open down ↓ 1145 lines elided ↑ open up ↑
1146 1146    set_size(object_size);
1147 1147  }
1148 1148  
1149 1149  void MethodData::init() {
1150 1150    _invocation_counter.init();
1151 1151    _backedge_counter.init();
1152 1152    _invocation_counter_start = 0;
1153 1153    _backedge_counter_start = 0;
1154 1154    _num_loops = 0;
1155 1155    _num_blocks = 0;
1156      -  _would_profile = true;
     1156 +  _would_profile = unknown;
1157 1157  
1158 1158  #if INCLUDE_RTM_OPT
1159 1159    _rtm_state = NoRTM; // No RTM lock eliding by default
1160 1160    if (UseRTMLocking &&
1161 1161        !CompilerOracle::has_option_string(_method, "NoRTMLockEliding")) {
1162 1162      if (CompilerOracle::has_option_string(_method, "UseRTMLockEliding") || !UseRTMDeopt) {
1163 1163        // Generate RTM lock eliding code without abort ratio calculation code.
1164 1164        _rtm_state = UseRTM;
1165 1165      } else if (UseRTMDeopt) {
1166 1166        // Generate RTM lock eliding code and include abort ratio calculation
↓ open down ↓ 480 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX