970 set_has_split_ifs(false);
971 set_has_loops(false); // first approximation
972 set_has_stringbuilder(false);
973 set_has_boxed_value(false);
974 _trap_can_recompile = false; // no traps emitted yet
975 _major_progress = true; // start out assuming good things will happen
976 set_has_unsafe_access(false);
977 set_max_vector_size(0);
978 set_clear_upper_avx(false); //false as default for clear upper bits of ymm registers
979 Copy::zero_to_bytes(_trap_hist, sizeof(_trap_hist));
980 set_decompile_count(0);
981
982 set_do_freq_based_layout(_directive->BlockLayoutByFrequencyOption);
983 _loop_opts_cnt = LoopOptsCount;
984 set_do_inlining(Inline);
985 set_max_inline_size(MaxInlineSize);
986 set_freq_inline_size(FreqInlineSize);
987 set_do_scheduling(OptoScheduling);
988
989 set_do_vector_loop(false);
990
991 if (AllowVectorizeOnDemand) {
992 if (has_method() && (_directive->VectorizeOption || _directive->VectorizeDebugOption)) {
993 set_do_vector_loop(true);
994 NOT_PRODUCT(if (do_vector_loop() && Verbose) {tty->print("Compile::Init: do vectorized loops (SIMD like) for method %s\n", method()->name()->as_quoted_ascii());})
995 } else if (has_method() && method()->name() != 0 &&
996 method()->intrinsic_id() == vmIntrinsics::_forEachRemaining) {
997 set_do_vector_loop(true);
998 }
999 }
1000 set_use_cmove(UseCMoveUnconditionally /* || do_vector_loop()*/); //TODO: consider do_vector_loop() mandate use_cmove unconditionally
1001 NOT_PRODUCT(if (use_cmove() && Verbose && has_method()) {tty->print("Compile::Init: use CMove without profitability tests for method %s\n", method()->name()->as_quoted_ascii());})
1002
1003 set_age_code(has_method() && method()->profile_aging());
1004 set_rtm_state(NoRTM); // No RTM lock eliding by default
1005 _max_node_limit = _directive->MaxNodeLimitOption;
1006
1007 #if INCLUDE_RTM_OPT
1008 if (UseRTMLocking && has_method() && (method()->method_data_or_null() != NULL)) {
1009 int rtm_state = method()->method_data()->rtm_state();
|
970 set_has_split_ifs(false);
971 set_has_loops(false); // first approximation
972 set_has_stringbuilder(false);
973 set_has_boxed_value(false);
974 _trap_can_recompile = false; // no traps emitted yet
975 _major_progress = true; // start out assuming good things will happen
976 set_has_unsafe_access(false);
977 set_max_vector_size(0);
978 set_clear_upper_avx(false); //false as default for clear upper bits of ymm registers
979 Copy::zero_to_bytes(_trap_hist, sizeof(_trap_hist));
980 set_decompile_count(0);
981
982 set_do_freq_based_layout(_directive->BlockLayoutByFrequencyOption);
983 _loop_opts_cnt = LoopOptsCount;
984 set_do_inlining(Inline);
985 set_max_inline_size(MaxInlineSize);
986 set_freq_inline_size(FreqInlineSize);
987 set_do_scheduling(OptoScheduling);
988
989 set_do_vector_loop(false);
990 reset_max_monitors();
991
992 if (AllowVectorizeOnDemand) {
993 if (has_method() && (_directive->VectorizeOption || _directive->VectorizeDebugOption)) {
994 set_do_vector_loop(true);
995 NOT_PRODUCT(if (do_vector_loop() && Verbose) {tty->print("Compile::Init: do vectorized loops (SIMD like) for method %s\n", method()->name()->as_quoted_ascii());})
996 } else if (has_method() && method()->name() != 0 &&
997 method()->intrinsic_id() == vmIntrinsics::_forEachRemaining) {
998 set_do_vector_loop(true);
999 }
1000 }
1001 set_use_cmove(UseCMoveUnconditionally /* || do_vector_loop()*/); //TODO: consider do_vector_loop() mandate use_cmove unconditionally
1002 NOT_PRODUCT(if (use_cmove() && Verbose && has_method()) {tty->print("Compile::Init: use CMove without profitability tests for method %s\n", method()->name()->as_quoted_ascii());})
1003
1004 set_age_code(has_method() && method()->profile_aging());
1005 set_rtm_state(NoRTM); // No RTM lock eliding by default
1006 _max_node_limit = _directive->MaxNodeLimitOption;
1007
1008 #if INCLUDE_RTM_OPT
1009 if (UseRTMLocking && has_method() && (method()->method_data_or_null() != NULL)) {
1010 int rtm_state = method()->method_data()->rtm_state();
|