1072 _fixed_slots = 0;
1073 set_has_split_ifs(false);
1074 set_has_loops(has_method() && method()->has_loops()); // first approximation
1075 set_has_stringbuilder(false);
1076 set_has_boxed_value(false);
1077 _trap_can_recompile = false; // no traps emitted yet
1078 _major_progress = true; // start out assuming good things will happen
1079 set_has_unsafe_access(false);
1080 set_max_vector_size(0);
1081 Copy::zero_to_bytes(_trap_hist, sizeof(_trap_hist));
1082 set_decompile_count(0);
1083
1084 set_do_freq_based_layout(BlockLayoutByFrequency || method_has_option("BlockLayoutByFrequency"));
1085 set_num_loop_opts(LoopOptsCount);
1086 set_do_inlining(Inline);
1087 set_max_inline_size(MaxInlineSize);
1088 set_freq_inline_size(FreqInlineSize);
1089 set_do_scheduling(OptoScheduling);
1090 set_do_count_invocations(false);
1091 set_do_method_data_update(false);
1092 set_rtm_state(NoRTM); // No RTM lock eliding by default
1093 #if INCLUDE_RTM_OPT
1094 if (UseRTMLocking && has_method() && (method()->method_data_or_null() != NULL)) {
1095 int rtm_state = method()->method_data()->rtm_state();
1096 if (method_has_option("NoRTMLockEliding") || ((rtm_state & NoRTM) != 0)) {
1097 // Don't generate RTM lock eliding code.
1098 set_rtm_state(NoRTM);
1099 } else if (method_has_option("UseRTMLockEliding") || ((rtm_state & UseRTM) != 0) || !UseRTMDeopt) {
1100 // Generate RTM lock eliding code without abort ratio calculation code.
1101 set_rtm_state(UseRTM);
1102 } else if (UseRTMDeopt) {
1103 // Generate RTM lock eliding code and include abort ratio calculation
1104 // code if UseRTMDeopt is on.
1105 set_rtm_state(ProfileRTM);
1106 }
1107 }
1108 #endif
1109 if (debug_info()->recording_non_safepoints()) {
1110 set_node_note_array(new(comp_arena()) GrowableArray<Node_Notes*>
1111 (comp_arena(), 8, 0, NULL));
|
1072 _fixed_slots = 0;
1073 set_has_split_ifs(false);
1074 set_has_loops(has_method() && method()->has_loops()); // first approximation
1075 set_has_stringbuilder(false);
1076 set_has_boxed_value(false);
1077 _trap_can_recompile = false; // no traps emitted yet
1078 _major_progress = true; // start out assuming good things will happen
1079 set_has_unsafe_access(false);
1080 set_max_vector_size(0);
1081 Copy::zero_to_bytes(_trap_hist, sizeof(_trap_hist));
1082 set_decompile_count(0);
1083
1084 set_do_freq_based_layout(BlockLayoutByFrequency || method_has_option("BlockLayoutByFrequency"));
1085 set_num_loop_opts(LoopOptsCount);
1086 set_do_inlining(Inline);
1087 set_max_inline_size(MaxInlineSize);
1088 set_freq_inline_size(FreqInlineSize);
1089 set_do_scheduling(OptoScheduling);
1090 set_do_count_invocations(false);
1091 set_do_method_data_update(false);
1092 set_age_code(has_method() && method()->profile_aging());
1093 set_rtm_state(NoRTM); // No RTM lock eliding by default
1094 #if INCLUDE_RTM_OPT
1095 if (UseRTMLocking && has_method() && (method()->method_data_or_null() != NULL)) {
1096 int rtm_state = method()->method_data()->rtm_state();
1097 if (method_has_option("NoRTMLockEliding") || ((rtm_state & NoRTM) != 0)) {
1098 // Don't generate RTM lock eliding code.
1099 set_rtm_state(NoRTM);
1100 } else if (method_has_option("UseRTMLockEliding") || ((rtm_state & UseRTM) != 0) || !UseRTMDeopt) {
1101 // Generate RTM lock eliding code without abort ratio calculation code.
1102 set_rtm_state(UseRTM);
1103 } else if (UseRTMDeopt) {
1104 // Generate RTM lock eliding code and include abort ratio calculation
1105 // code if UseRTMDeopt is on.
1106 set_rtm_state(ProfileRTM);
1107 }
1108 }
1109 #endif
1110 if (debug_info()->recording_non_safepoints()) {
1111 set_node_note_array(new(comp_arena()) GrowableArray<Node_Notes*>
1112 (comp_arena(), 8, 0, NULL));
|