This is a small C++11-ificiation for the use of vect_vect_recog_func_ptrs.
Changes the loop into a range based loop which then we can remove the variable
definition of NUM_PATTERNS. Also uses const reference instead of a pointer.
Bootstrapped and tested on x86_64-linux-gnu.
gcc/ChangeLog:
* tree-vect-patterns.cc (NUM_PATTERNS): Delete.
(vect_pattern_recog_1): Constify and change
recog_func to a reference.
(vect_pattern_recog): Use range-based loop over
vect_vect_recog_func_ptrs.
Signed-off-by: Andrew Pinski <[email protected]>
---
gcc/tree-vect-patterns.cc | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/gcc/tree-vect-patterns.cc b/gcc/tree-vect-patterns.cc
index 87b3dc413b8..f52de2b6972 100644
--- a/gcc/tree-vect-patterns.cc
+++ b/gcc/tree-vect-patterns.cc
@@ -7362,8 +7362,6 @@ static vect_recog_func vect_vect_recog_func_ptrs[] = {
/* These must come after the double widening ones. */
};
-const unsigned int NUM_PATTERNS = ARRAY_SIZE (vect_vect_recog_func_ptrs);
-
/* Mark statements that are involved in a pattern. */
void
@@ -7518,7 +7516,7 @@ vect_mark_pattern_stmts (vec_info *vinfo,
static void
vect_pattern_recog_1 (vec_info *vinfo,
- vect_recog_func *recog_func, stmt_vec_info stmt_info)
+ const vect_recog_func &recog_func, stmt_vec_info
stmt_info)
{
gimple *pattern_stmt;
tree pattern_vectype;
@@ -7538,7 +7536,7 @@ vect_pattern_recog_1 (vec_info *vinfo,
}
gcc_assert (!STMT_VINFO_PATTERN_DEF_SEQ (stmt_info));
- pattern_stmt = recog_func->fn (vinfo, stmt_info, &pattern_vectype);
+ pattern_stmt = recog_func.fn (vinfo, stmt_info, &pattern_vectype);
if (!pattern_stmt)
{
/* Clear any half-formed pattern definition sequence. */
@@ -7550,7 +7548,7 @@ vect_pattern_recog_1 (vec_info *vinfo,
if (dump_enabled_p ())
dump_printf_loc (MSG_NOTE, vect_location,
"%s pattern recognized: %G",
- recog_func->name, pattern_stmt);
+ recog_func.name, pattern_stmt);
/* Mark the stmts that are involved in the pattern. */
vect_mark_pattern_stmts (vinfo, stmt_info, pattern_stmt, pattern_vectype);
@@ -7658,8 +7656,8 @@ vect_pattern_recog (vec_info *vinfo)
continue;
/* Scan over all generic vect_recog_xxx_pattern functions. */
- for (unsigned j = 0; j < NUM_PATTERNS; j++)
- vect_pattern_recog_1 (vinfo, &vect_vect_recog_func_ptrs[j],
+ for (const auto &func_ptr : vect_vect_recog_func_ptrs)
+ vect_pattern_recog_1 (vinfo, func_ptr,
stmt_info);
}
}
--
2.43.0