Commit 51d00891 by Kazu Hirata Committed by Kazu Hirata

tree-vect-analyze.c (vect_mark_relevant): Take VEC(tree,heap) instead of…

tree-vect-analyze.c (vect_mark_relevant): Take VEC(tree,heap) instead of varray_type as an argument.

	* tree-vect-analyze.c (vect_mark_relevant): Take
	VEC(tree,heap) instead of varray_type as an argument.
	(vect_mark_stmts_to_be_vectorized): Change the type of
	worklist to VEC(tree,heap).  Adjust uses of worklist.

From-SVN: r98695
parent eb1093d3
2005-04-25 Kazu Hirata <kazu@cs.umass.edu>
* tree-vect-analyze.c (vect_mark_relevant): Take
VEC(tree,heap) instead of varray_type as an argument.
(vect_mark_stmts_to_be_vectorized): Change the type of
worklist to VEC(tree,heap). Adjust uses of worklist.
2005-04-24 Devang Patel <dpatel@apple.com> 2005-04-24 Devang Patel <dpatel@apple.com>
* config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New. * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
......
...@@ -54,7 +54,7 @@ static bool vect_determine_vectorization_factor (loop_vec_info); ...@@ -54,7 +54,7 @@ static bool vect_determine_vectorization_factor (loop_vec_info);
/* Utility functions for the analyses. */ /* Utility functions for the analyses. */
static bool exist_non_indexing_operands_for_use_p (tree, tree); static bool exist_non_indexing_operands_for_use_p (tree, tree);
static void vect_mark_relevant (varray_type *, tree); static void vect_mark_relevant (VEC(tree,heap) **, tree);
static bool vect_stmt_relevant_p (tree, loop_vec_info); static bool vect_stmt_relevant_p (tree, loop_vec_info);
static tree vect_get_loop_niters (struct loop *, tree *); static tree vect_get_loop_niters (struct loop *, tree *);
static bool vect_analyze_data_ref_dependence static bool vect_analyze_data_ref_dependence
...@@ -2061,7 +2061,7 @@ vect_analyze_data_refs (loop_vec_info loop_vinfo) ...@@ -2061,7 +2061,7 @@ vect_analyze_data_refs (loop_vec_info loop_vinfo)
Mark STMT as "relevant for vectorization" and add it to WORKLIST. */ Mark STMT as "relevant for vectorization" and add it to WORKLIST. */
static void static void
vect_mark_relevant (varray_type *worklist, tree stmt) vect_mark_relevant (VEC(tree,heap) **worklist, tree stmt)
{ {
stmt_vec_info stmt_info; stmt_vec_info stmt_info;
...@@ -2070,7 +2070,7 @@ vect_mark_relevant (varray_type *worklist, tree stmt) ...@@ -2070,7 +2070,7 @@ vect_mark_relevant (varray_type *worklist, tree stmt)
if (TREE_CODE (stmt) == PHI_NODE) if (TREE_CODE (stmt) == PHI_NODE)
{ {
VARRAY_PUSH_TREE (*worklist, stmt); VEC_safe_push (tree, heap, *worklist, stmt);
return; return;
} }
...@@ -2094,7 +2094,7 @@ vect_mark_relevant (varray_type *worklist, tree stmt) ...@@ -2094,7 +2094,7 @@ vect_mark_relevant (varray_type *worklist, tree stmt)
} }
STMT_VINFO_RELEVANT_P (stmt_info) = 1; STMT_VINFO_RELEVANT_P (stmt_info) = 1;
VARRAY_PUSH_TREE (*worklist, stmt); VEC_safe_push (tree, heap, *worklist, stmt);
} }
...@@ -2190,7 +2190,7 @@ vect_stmt_relevant_p (tree stmt, loop_vec_info loop_vinfo) ...@@ -2190,7 +2190,7 @@ vect_stmt_relevant_p (tree stmt, loop_vec_info loop_vinfo)
static bool static bool
vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo) vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo)
{ {
varray_type worklist; VEC(tree,heap) *worklist;
struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo); struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo); basic_block *bbs = LOOP_VINFO_BBS (loop_vinfo);
unsigned int nbbs = loop->num_nodes; unsigned int nbbs = loop->num_nodes;
...@@ -2225,7 +2225,7 @@ vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo) ...@@ -2225,7 +2225,7 @@ vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo)
} }
} }
VARRAY_TREE_INIT (worklist, 64, "work list"); worklist = VEC_alloc (tree, heap, 64);
/* 1. Init worklist. */ /* 1. Init worklist. */
...@@ -2253,10 +2253,9 @@ vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo) ...@@ -2253,10 +2253,9 @@ vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo)
/* 2. Process_worklist */ /* 2. Process_worklist */
while (VARRAY_ACTIVE_SIZE (worklist) > 0) while (VEC_length (tree, worklist) > 0)
{ {
stmt = VARRAY_TOP_TREE (worklist); stmt = VEC_pop (tree, worklist);
VARRAY_POP (worklist);
if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC)) if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
{ {
...@@ -2281,7 +2280,7 @@ vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo) ...@@ -2281,7 +2280,7 @@ vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo)
if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS, if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
LOOP_LOC (loop_vinfo))) LOOP_LOC (loop_vinfo)))
fprintf (vect_dump, "not vectorized: unsupported use in stmt."); fprintf (vect_dump, "not vectorized: unsupported use in stmt.");
varray_clear (worklist); VEC_free (tree, heap, worklist);
return false; return false;
} }
if (!def_stmt) if (!def_stmt)
...@@ -2318,7 +2317,7 @@ vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo) ...@@ -2318,7 +2317,7 @@ vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo)
if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS, if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS,
LOOP_LOC (loop_vinfo))) LOOP_LOC (loop_vinfo)))
fprintf (vect_dump, "not vectorized: unsupported use in stmt."); fprintf (vect_dump, "not vectorized: unsupported use in stmt.");
varray_clear (worklist); VEC_free (tree, heap, worklist);
return false; return false;
} }
...@@ -2338,7 +2337,7 @@ vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo) ...@@ -2338,7 +2337,7 @@ vect_mark_stmts_to_be_vectorized (loop_vec_info loop_vinfo)
} }
} /* while worklist */ } /* while worklist */
varray_clear (worklist); VEC_free (tree, heap, worklist);
return true; return true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment