diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-03-28 08:40:49 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-03-28 08:40:49 +0000 |
commit | 1b29f05e56e3b6711352d5cfd8b30785beb3b663 (patch) | |
tree | 37b1217368c03af34bab18d88543d292d72e0cfa /gcc/tree-vect-data-refs.c | |
parent | 506e68087a1e12a38255fbf77b53a0808860c0a8 (diff) | |
download | gcc-1b29f05e56e3b6711352d5cfd8b30785beb3b663.tar.gz |
tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
* tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
* tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
Insert new statements at it in lieu of STMT.
(vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
* tree-vect-stmts.c (vectorizable_store): Likewise.
(vectorizable_load): Likewise.
From-SVN: r171592
Diffstat (limited to 'gcc/tree-vect-data-refs.c')
-rw-r--r-- | gcc/tree-vect-data-refs.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index d4ba704f459..8f411140880 100644 --- a/gcc/tree-vect-data-refs.c +++ b/gcc/tree-vect-data-refs.c @@ -2922,9 +2922,10 @@ vect_create_addr_base_for_vector_ref (gimple stmt, 2. AT_LOOP: the loop where the vector memref is to be created. 3. OFFSET (optional): an offset to be added to the initial address accessed by the data-ref in STMT. - 4. ONLY_INIT: indicate if vp is to be updated in the loop, or remain + 4. BSI: location where the new stmts are to be placed if there is no loop + 5. ONLY_INIT: indicate if vp is to be updated in the loop, or remain pointing to the initial address. - 5. TYPE: if not NULL indicates the required type of the data-ref. + 6. TYPE: if not NULL indicates the required type of the data-ref. Output: 1. Declare a new ptr to vector_type, and have it point to the base of the @@ -2952,9 +2953,9 @@ vect_create_addr_base_for_vector_ref (gimple stmt, 4. Return the pointer. */ tree -vect_create_data_ref_ptr (gimple stmt, struct loop *at_loop, - tree offset, tree *initial_address, gimple *ptr_incr, - bool only_init, bool *inv_p) +vect_create_data_ref_ptr (gimple stmt, struct loop *at_loop, tree offset, + tree *initial_address, gimple_stmt_iterator *gsi, + gimple *ptr_incr, bool only_init, bool *inv_p) { tree base_name; stmt_vec_info stmt_info = vinfo_for_stmt (stmt); @@ -2980,7 +2981,6 @@ vect_create_data_ref_ptr (gimple stmt, struct loop *at_loop, gimple incr; tree step; bb_vec_info bb_vinfo = STMT_VINFO_BB_VINFO (stmt_info); - gimple_stmt_iterator gsi = gsi_for_stmt (stmt); tree base; if (loop_vinfo) @@ -3125,7 +3125,7 @@ vect_create_data_ref_ptr (gimple stmt, struct loop *at_loop, gcc_assert (!new_bb); } else - gsi_insert_seq_before (&gsi, new_stmt_list, GSI_SAME_STMT); + gsi_insert_seq_before (gsi, new_stmt_list, GSI_SAME_STMT); } *initial_address = new_temp; @@ -3147,7 +3147,7 @@ vect_create_data_ref_ptr (gimple stmt, struct loop *at_loop, gcc_assert (!new_bb); } else - gsi_insert_before (&gsi, vec_stmt, GSI_SAME_STMT); + gsi_insert_before (gsi, vec_stmt, GSI_SAME_STMT); } else vect_ptr_init = new_temp; @@ -3672,7 +3672,7 @@ vect_setup_realignment (gimple stmt, gimple_stmt_iterator *gsi, gcc_assert (!compute_in_loop); vec_dest = vect_create_destination_var (scalar_dest, vectype); ptr = vect_create_data_ref_ptr (stmt, loop_for_initial_load, NULL_TREE, - &init_addr, &inc, true, &inv_p); + &init_addr, NULL, &inc, true, &inv_p); new_stmt = gimple_build_assign_with_ops (BIT_AND_EXPR, NULL_TREE, ptr, build_int_cst (TREE_TYPE (ptr), |