aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.c
diff options
context:
space:
mode:
authorDorit Nuzman <dorit@il.ibm.com>2007-04-18 07:55:34 +0000
committerDorit Nuzman <dorit@gcc.gnu.org>2007-04-18 07:55:34 +0000
commit8cf81ddffd26ef1262e2d93f7232d72b92cd72be (patch)
tree0ad09efa2980fbea19fc13f434aa01aa5eac044f /gcc/tree-vectorizer.c
parent7b715e2e18f941bef4c263de3978c3050cabb60a (diff)
downloadgcc-8cf81ddffd26ef1262e2d93f7232d72b92cd72be.zip
gcc-8cf81ddffd26ef1262e2d93f7232d72b92cd72be.tar.gz
gcc-8cf81ddffd26ef1262e2d93f7232d72b92cd72be.tar.bz2
tree-vect-analyze.c (process_use): New function.
* tree-vect-analyze.c (process_use): New function. (vect_mark_stmts_to_be_vectorized): Factor out code to process_use. Check phis in all bbs. * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant assert. From-SVN: r123943
Diffstat (limited to 'gcc/tree-vectorizer.c')
-rw-r--r--gcc/tree-vectorizer.c12
1 files changed, 1 insertions, 11 deletions
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index b0aedf7..212b584 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -1714,15 +1714,6 @@ vect_is_simple_use (tree operand, loop_vec_info loop_vinfo, tree *def_stmt,
return false;
}
- /* stmts inside the loop that have been identified as performing
- a reduction operation cannot have uses in the loop. */
- if (*dt == vect_reduction_def && TREE_CODE (*def_stmt) != PHI_NODE)
- {
- if (vect_print_dump_info (REPORT_DETAILS))
- fprintf (vect_dump, "reduction used in loop.");
- return false;
- }
-
if (vect_print_dump_info (REPORT_DETAILS))
fprintf (vect_dump, "type of def: %d.",*dt);
@@ -1731,12 +1722,11 @@ vect_is_simple_use (tree operand, loop_vec_info loop_vinfo, tree *def_stmt,
case PHI_NODE:
*def = PHI_RESULT (*def_stmt);
gcc_assert (*dt == vect_induction_def || *dt == vect_reduction_def
- || *dt == vect_invariant_def);
+ || *dt == vect_invariant_def);
break;
case GIMPLE_MODIFY_STMT:
*def = GIMPLE_STMT_OPERAND (*def_stmt, 0);
- gcc_assert (*dt == vect_loop_def || *dt == vect_invariant_def);
break;
default: