< 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 >