diff options
author | Pan Li <pan2.li@intel.com> | 2023-05-11 18:50:56 +0800 |
---|---|---|
committer | Pan Li <pan2.li@intel.com> | 2023-05-11 19:06:44 +0800 |
commit | 0918360d709a32294913aef4392cec6c1dec1857 (patch) | |
tree | 8dfac10cd9d51ba431cc46965f928ae980158801 /gcc/tree-vect-loop-manip.cc | |
parent | 0440b774ea3311d65027aa7b1d26b62b7d8538ea (diff) | |
download | gcc-0918360d709a32294913aef4392cec6c1dec1857.zip gcc-0918360d709a32294913aef4392cec6c1dec1857.tar.gz gcc-0918360d709a32294913aef4392cec6c1dec1857.tar.bz2 |
VECT: Add tree_code into "creat_iv" and allow it can handle MINUS_EXPR IV
This patch is going to be commited after bootstrap && regression on X86
PASSED.
Thanks Richards.
gcc/ChangeLog:
* cfgloopmanip.cc (create_empty_loop_on_edge): Add PLUS_EXPR.
* gimple-loop-interchange.cc
(tree_loop_interchange::map_inductions_to_loop): Ditto.
* tree-ssa-loop-ivcanon.cc (create_canonical_iv): Ditto.
* tree-ssa-loop-ivopts.cc (create_new_iv): Ditto.
* tree-ssa-loop-manip.cc (create_iv): Ditto.
(tree_transform_and_unroll_loop): Ditto.
(canonicalize_loop_ivs): Ditto.
* tree-ssa-loop-manip.h (create_iv): Ditto.
* tree-vect-data-refs.cc (vect_create_data_ref_ptr): Ditto.
* tree-vect-loop-manip.cc (vect_set_loop_controls_directly):
Ditto.
(vect_set_loop_condition_normal): Ditto.
* tree-vect-loop.cc (vect_create_epilog_for_reduction): Ditto.
* tree-vect-stmts.cc (vectorizable_store): Ditto.
(vectorizable_load): Ditto.
Signed-off-by: Juzhe Zhong <juzhe.zhong@rivai.ai>
Diffstat (limited to 'gcc/tree-vect-loop-manip.cc')
-rw-r--r-- | gcc/tree-vect-loop-manip.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/tree-vect-loop-manip.cc b/gcc/tree-vect-loop-manip.cc index 44bd5f2..ff6159e 100644 --- a/gcc/tree-vect-loop-manip.cc +++ b/gcc/tree-vect-loop-manip.cc @@ -468,8 +468,9 @@ vect_set_loop_controls_directly (class loop *loop, loop_vec_info loop_vinfo, gimple_stmt_iterator incr_gsi; bool insert_after; standard_iv_increment_position (loop, &incr_gsi, &insert_after); - create_iv (build_int_cst (iv_type, 0), nitems_step, NULL_TREE, loop, - &incr_gsi, insert_after, &index_before_incr, &index_after_incr); + create_iv (build_int_cst (iv_type, 0), PLUS_EXPR, nitems_step, NULL_TREE, + loop, &incr_gsi, insert_after, &index_before_incr, + &index_after_incr); tree zero_index = build_int_cst (compare_type, 0); tree test_index, test_limit, first_limit; @@ -893,7 +894,7 @@ vect_set_loop_condition_normal (class loop *loop, tree niters, tree step, } standard_iv_increment_position (loop, &incr_gsi, &insert_after); - create_iv (init, step, NULL_TREE, loop, + create_iv (init, PLUS_EXPR, step, NULL_TREE, loop, &incr_gsi, insert_after, &indx_before_incr, &indx_after_incr); indx_after_incr = force_gimple_operand_gsi (&loop_cond_gsi, indx_after_incr, true, NULL_TREE, true, |