< prev index next >

src/hotspot/share/opto/compile.cpp

Print this page

 972   set_has_split_ifs(false);
 973   set_has_loops(false); // first approximation
 974   set_has_stringbuilder(false);
 975   set_has_boxed_value(false);
 976   _trap_can_recompile = false;  // no traps emitted yet
 977   _major_progress = true; // start out assuming good things will happen
 978   set_has_unsafe_access(false);
 979   set_max_vector_size(0);
 980   set_clear_upper_avx(false);  //false as default for clear upper bits of ymm registers
 981   Copy::zero_to_bytes(_trap_hist, sizeof(_trap_hist));
 982   set_decompile_count(0);
 983 
 984   set_do_freq_based_layout(_directive->BlockLayoutByFrequencyOption);
 985   _loop_opts_cnt = LoopOptsCount;
 986   set_do_inlining(Inline);
 987   set_max_inline_size(MaxInlineSize);
 988   set_freq_inline_size(FreqInlineSize);
 989   set_do_scheduling(OptoScheduling);
 990 
 991   set_do_vector_loop(false);

 992 
 993   if (AllowVectorizeOnDemand) {
 994     if (has_method() && (_directive->VectorizeOption || _directive->VectorizeDebugOption)) {
 995       set_do_vector_loop(true);
 996       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());})
 997     } else if (has_method() && method()->name() != 0 &&
 998                method()->intrinsic_id() == vmIntrinsics::_forEachRemaining) {
 999       set_do_vector_loop(true);
1000     }
1001   }
1002   set_use_cmove(UseCMoveUnconditionally /* || do_vector_loop()*/); //TODO: consider do_vector_loop() mandate use_cmove unconditionally
1003   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());})
1004 
1005   set_age_code(has_method() && method()->profile_aging());
1006   set_rtm_state(NoRTM); // No RTM lock eliding by default
1007   _max_node_limit = _directive->MaxNodeLimitOption;
1008 
1009 #if INCLUDE_RTM_OPT
1010   if (UseRTMLocking && has_method() && (method()->method_data_or_null() != NULL)) {
1011     int rtm_state = method()->method_data()->rtm_state();

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