< prev index next >

src/hotspot/share/opto/compile.cpp

Print this page

1001   set_has_loops(false); // first approximation
1002   set_has_stringbuilder(false);
1003   set_has_boxed_value(false);
1004   _trap_can_recompile = false;  // no traps emitted yet
1005   _major_progress = true; // start out assuming good things will happen
1006   set_has_unsafe_access(false);
1007   set_max_vector_size(0);
1008   set_clear_upper_avx(false);  //false as default for clear upper bits of ymm registers
1009   Copy::zero_to_bytes(_trap_hist, sizeof(_trap_hist));
1010   set_decompile_count(0);
1011 
1012   set_do_freq_based_layout(_directive->BlockLayoutByFrequencyOption);
1013   _loop_opts_cnt = LoopOptsCount;
1014   set_do_inlining(Inline);
1015   set_max_inline_size(MaxInlineSize);
1016   set_freq_inline_size(FreqInlineSize);
1017   set_do_scheduling(OptoScheduling);
1018 
1019   set_do_vector_loop(false);
1020   set_has_monitors(false);

1021 
1022   if (AllowVectorizeOnDemand) {
1023     if (has_method() && (_directive->VectorizeOption || _directive->VectorizeDebugOption)) {
1024       set_do_vector_loop(true);
1025       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());})
1026     } else if (has_method() && method()->name() != 0 &&
1027                method()->intrinsic_id() == vmIntrinsics::_forEachRemaining) {
1028       set_do_vector_loop(true);
1029     }
1030   }
1031   set_use_cmove(UseCMoveUnconditionally /* || do_vector_loop()*/); //TODO: consider do_vector_loop() mandate use_cmove unconditionally
1032   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());})
1033 
1034   set_rtm_state(NoRTM); // No RTM lock eliding by default
1035   _max_node_limit = _directive->MaxNodeLimitOption;
1036 
1037 #if INCLUDE_RTM_OPT
1038   if (UseRTMLocking && has_method() && (method()->method_data_or_null() != NULL)) {
1039     int rtm_state = method()->method_data()->rtm_state();
1040     if (method_has_option(CompileCommand::NoRTMLockEliding) || ((rtm_state & NoRTM) != 0)) {

1001   set_has_loops(false); // first approximation
1002   set_has_stringbuilder(false);
1003   set_has_boxed_value(false);
1004   _trap_can_recompile = false;  // no traps emitted yet
1005   _major_progress = true; // start out assuming good things will happen
1006   set_has_unsafe_access(false);
1007   set_max_vector_size(0);
1008   set_clear_upper_avx(false);  //false as default for clear upper bits of ymm registers
1009   Copy::zero_to_bytes(_trap_hist, sizeof(_trap_hist));
1010   set_decompile_count(0);
1011 
1012   set_do_freq_based_layout(_directive->BlockLayoutByFrequencyOption);
1013   _loop_opts_cnt = LoopOptsCount;
1014   set_do_inlining(Inline);
1015   set_max_inline_size(MaxInlineSize);
1016   set_freq_inline_size(FreqInlineSize);
1017   set_do_scheduling(OptoScheduling);
1018 
1019   set_do_vector_loop(false);
1020   set_has_monitors(false);
1021   reset_max_monitors();
1022 
1023   if (AllowVectorizeOnDemand) {
1024     if (has_method() && (_directive->VectorizeOption || _directive->VectorizeDebugOption)) {
1025       set_do_vector_loop(true);
1026       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());})
1027     } else if (has_method() && method()->name() != 0 &&
1028                method()->intrinsic_id() == vmIntrinsics::_forEachRemaining) {
1029       set_do_vector_loop(true);
1030     }
1031   }
1032   set_use_cmove(UseCMoveUnconditionally /* || do_vector_loop()*/); //TODO: consider do_vector_loop() mandate use_cmove unconditionally
1033   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());})
1034 
1035   set_rtm_state(NoRTM); // No RTM lock eliding by default
1036   _max_node_limit = _directive->MaxNodeLimitOption;
1037 
1038 #if INCLUDE_RTM_OPT
1039   if (UseRTMLocking && has_method() && (method()->method_data_or_null() != NULL)) {
1040     int rtm_state = method()->method_data()->rtm_state();
1041     if (method_has_option(CompileCommand::NoRTMLockEliding) || ((rtm_state & NoRTM) != 0)) {
< prev index next >