[07/11] Use single basic block array in loop_vec_info
_loop_vec_info::_loop_vec_info used get_loop_array to get the order of the blocks when creating stmt_vec_infos, but then used dfs_enumerate_from to get the order of the blocks that the rest of the vectoriser uses. We should be able to use that order for creating stmt_vec_infos too. 2018-08-01 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Use the result of dfs_enumerate_from when constructing stmt_vec_infos, instead of additionally calling get_loop_body. From-SVN: r263221
This commit is contained in:
parent
2d4bca81bd
commit
beeb6ce863
@ -1,3 +1,9 @@
|
||||
2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Use the
|
||||
result of dfs_enumerate_from when constructing stmt_vec_infos,
|
||||
instead of additionally calling get_loop_body.
|
||||
|
||||
2018-08-01 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* tree-vectorizer.h (vect_create_data_ref_ptr): Remove inv_p
|
||||
|
@ -834,11 +834,18 @@ _loop_vec_info::_loop_vec_info (struct loop *loop_in, vec_info_shared *shared)
|
||||
scalar_loop (NULL),
|
||||
orig_loop_info (NULL)
|
||||
{
|
||||
/* Create/Update stmt_info for all stmts in the loop. */
|
||||
basic_block *body = get_loop_body (loop);
|
||||
for (unsigned int i = 0; i < loop->num_nodes; i++)
|
||||
/* CHECKME: We want to visit all BBs before their successors (except for
|
||||
latch blocks, for which this assertion wouldn't hold). In the simple
|
||||
case of the loop forms we allow, a dfs order of the BBs would the same
|
||||
as reversed postorder traversal, so we are safe. */
|
||||
|
||||
unsigned int nbbs = dfs_enumerate_from (loop->header, 0, bb_in_loop_p,
|
||||
bbs, loop->num_nodes, loop);
|
||||
gcc_assert (nbbs == loop->num_nodes);
|
||||
|
||||
for (unsigned int i = 0; i < nbbs; i++)
|
||||
{
|
||||
basic_block bb = body[i];
|
||||
basic_block bb = bbs[i];
|
||||
gimple_stmt_iterator si;
|
||||
|
||||
for (si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si))
|
||||
@ -855,16 +862,6 @@ _loop_vec_info::_loop_vec_info (struct loop *loop_in, vec_info_shared *shared)
|
||||
add_stmt (stmt);
|
||||
}
|
||||
}
|
||||
free (body);
|
||||
|
||||
/* CHECKME: We want to visit all BBs before their successors (except for
|
||||
latch blocks, for which this assertion wouldn't hold). In the simple
|
||||
case of the loop forms we allow, a dfs order of the BBs would the same
|
||||
as reversed postorder traversal, so we are safe. */
|
||||
|
||||
unsigned int nbbs = dfs_enumerate_from (loop->header, 0, bb_in_loop_p,
|
||||
bbs, loop->num_nodes, loop);
|
||||
gcc_assert (nbbs == loop->num_nodes);
|
||||
}
|
||||
|
||||
/* Free all levels of MASKS. */
|
||||
|
Loading…
Reference in New Issue
Block a user