diff options
author | Bin Cheng <bin.cheng@arm.com> | 2017-06-07 11:28:17 +0000 |
---|---|---|
committer | Bin Cheng <amker@gcc.gnu.org> | 2017-06-07 11:28:17 +0000 |
commit | 6355150f585e2d746a62df19ae89df7c93e8c3c7 (patch) | |
tree | ffd017ee04fe672e3f42d56032ae0e149f982e6f /gcc/tree-vect-data-refs.c | |
parent | 0874a778ec0adf43167dd4aa014dadb75b0907f8 (diff) | |
download | gcc-6355150f585e2d746a62df19ae89df7c93e8c3c7.zip gcc-6355150f585e2d746a62df19ae89df7c93e8c3c7.tar.gz gcc-6355150f585e2d746a62df19ae89df7c93e8c3c7.tar.bz2 |
tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor out code checking if runtime alias check is possible to below ...
* tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
out code checking if runtime alias check is possible to below ...
Call the new function.
* tree-data-ref.c (runtime_alias_check_p): ... to new function.
* tree-data-ref.h (runtime_alias_check_p): New decalaration.
From-SVN: r248962
Diffstat (limited to 'gcc/tree-vect-data-refs.c')
-rw-r--r-- | gcc/tree-vect-data-refs.c | 42 |
1 files changed, 3 insertions, 39 deletions
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index e8e2658..623acf6 100644 --- a/gcc/tree-vect-data-refs.c +++ b/gcc/tree-vect-data-refs.c @@ -150,45 +150,9 @@ vect_mark_for_runtime_alias_test (ddr_p ddr, loop_vec_info loop_vinfo) if ((unsigned) PARAM_VALUE (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS) == 0) return false; - if (dump_enabled_p ()) - { - dump_printf_loc (MSG_NOTE, vect_location, - "mark for run-time aliasing test between "); - dump_generic_expr (MSG_NOTE, TDF_SLIM, DR_REF (DDR_A (ddr))); - dump_printf (MSG_NOTE, " and "); - dump_generic_expr (MSG_NOTE, TDF_SLIM, DR_REF (DDR_B (ddr))); - dump_printf (MSG_NOTE, "\n"); - } - - if (optimize_loop_nest_for_size_p (loop)) - { - if (dump_enabled_p ()) - dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, - "versioning not supported when optimizing" - " for size.\n"); - return false; - } - - /* FORNOW: We don't support versioning with outer-loop vectorization. */ - if (loop->inner) - { - if (dump_enabled_p ()) - dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, - "versioning not yet supported for outer-loops.\n"); - return false; - } - - /* FORNOW: We don't support creating runtime alias tests for non-constant - step. */ - if (TREE_CODE (DR_STEP (DDR_A (ddr))) != INTEGER_CST - || TREE_CODE (DR_STEP (DDR_B (ddr))) != INTEGER_CST) - { - if (dump_enabled_p ()) - dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, - "versioning not yet supported for non-constant " - "step\n"); - return false; - } + if (!runtime_alias_check_p (ddr, loop, + optimize_loop_nest_for_speed_p (loop))) + return false; LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo).safe_push (ddr); return true; |