< prev index next >

src/share/vm/opto/compile.cpp

Print this page
rev 8713 : SIMD: CMoveVD - .ad is "almost" good. need to make CC in codegen taken rightly from IdealGraph.
Also added (Windows only) an option to stop in debugger after compiled file has been printed.
See compile.cpp: WINDOWS_ONLY(if(method()->has_option("BreakAfterCompilation")) DebugBreak();)
rev 8715 : Making breakpoint after compilation system independent.
rev 8877 : tests from repo commit
rev 8930 : SIMD: cleanup - trailing spaces, tabs
rev 9042 : SIMD: added global flag UseCMov (false).
rev 9043 : SIMD: UseCMov is a must and not set alone in do_vector_loop()
rev 9045 : SIMD: fixed if (!def->is_Bool() || def->in(0) != NULL || def->outcnt() != 1) return NULL;,
      Removed if(method()->has_option("BreakAfterCompilation")) os::breakpoint();
rev 9101 : Merge
rev 9150 : SIMD: fixing trace/debug printiout
rev 9161 : Merge

*** 1099,1122 **** set_do_count_invocations(false); set_do_method_data_update(false); set_do_vector_loop(false); - bool do_vector = false; if (AllowVectorizeOnDemand) { if (has_method() && (method()->has_option("Vectorize") || method()->has_option("VectorizeDebug"))) { set_do_vector_loop(true); } else if (has_method() && method()->name() != 0 && method()->intrinsic_id() == vmIntrinsics::_forEachRemaining) { set_do_vector_loop(true); } - #ifndef PRODUCT - if (do_vector_loop() && Verbose) { - tty->print("Compile::Init: do vectorized loops (SIMD like) for method %s\n", method()->name()->as_quoted_ascii()); - } - #endif } set_age_code(has_method() && method()->profile_aging()); set_rtm_state(NoRTM); // No RTM lock eliding by default method_has_option_value("MaxNodeLimit", _max_node_limit); #if INCLUDE_RTM_OPT --- 1099,1119 ---- set_do_count_invocations(false); set_do_method_data_update(false); set_do_vector_loop(false); if (AllowVectorizeOnDemand) { if (has_method() && (method()->has_option("Vectorize") || method()->has_option("VectorizeDebug"))) { set_do_vector_loop(true); + 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());}) } else if (has_method() && method()->name() != 0 && method()->intrinsic_id() == vmIntrinsics::_forEachRemaining) { set_do_vector_loop(true); } } + set_use_cmove(UseCMov /* || do_vector_loop()*/); //TODO: consider do_vector_loop() mandate use_cmove unconditionally + NOT_PRODUCT(if (Verbose && has_method()) {tty->print("Compile::Init: use CMove without profitability tests for method %s\n", method()->name()->as_quoted_ascii());}) set_age_code(has_method() && method()->profile_aging()); set_rtm_state(NoRTM); // No RTM lock eliding by default method_has_option_value("MaxNodeLimit", _max_node_limit); #if INCLUDE_RTM_OPT
< prev index next >