diff options
author | dorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-23 03:24:06 +0000 |
---|---|---|
committer | dorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-23 03:24:06 +0000 |
commit | 0c351ef34620d870403476663691e1c657d87fa0 (patch) | |
tree | db2eee15afd72fa434218c912f0986a5697a1aa1 /gcc/tree-vect-transform.c | |
parent | d3e2893997bf1e83c9095e51c0c6e80144477ca4 (diff) | |
download | gcc-0c351ef34620d870403476663691e1c657d87fa0.tar.gz |
PR tree-optimization/33834
PR tree-optimization/33835
* tree-vect-analyze.c (vect_analyze_operations): RELEVANT and LIVE stmts
need to be checked for success seperately.
* tree-vect-transform.c (vectorizable_call, vectorizable_conversion):
Remove the check that stmt is not LIVE.
(vectorizable_assignment, vectorizable_induction): Likewise.
(vectorizable_operation, vectorizable_type_demotion): Likewise.
(vectorizable_type_promotion, vectorizable_load, vectorizable_store):
Likewise.
(vectorizable_live_operation): Check that op is not NULL.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129571 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vect-transform.c')
-rw-r--r-- | gcc/tree-vect-transform.c | 73 |
1 files changed, 1 insertions, 72 deletions
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c index c718e074212..0578239083a 100644 --- a/gcc/tree-vect-transform.c +++ b/gcc/tree-vect-transform.c @@ -2961,14 +2961,6 @@ vectorizable_call (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt) if (STMT_SLP_TYPE (stmt_info)) return false; - /* FORNOW: not yet supported. */ - if (STMT_VINFO_LIVE_P (stmt_info)) - { - if (vect_print_dump_info (REPORT_DETAILS)) - fprintf (vect_dump, "value used after loop."); - return false; - } - /* Is STMT a vectorizable call? */ if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT) return false; @@ -3307,14 +3299,6 @@ vectorizable_conversion (tree stmt, block_stmt_iterator *bsi, if (STMT_VINFO_DEF_TYPE (stmt_info) != vect_loop_def) return false; - if (STMT_VINFO_LIVE_P (stmt_info)) - { - /* FORNOW: not yet supported. */ - if (vect_print_dump_info (REPORT_DETAILS)) - fprintf (vect_dump, "value used after loop."); - return false; - } - if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT) return false; @@ -3585,14 +3569,6 @@ vectorizable_assignment (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt, if (STMT_VINFO_DEF_TYPE (stmt_info) != vect_loop_def) return false; - /* FORNOW: not yet supported. */ - if (STMT_VINFO_LIVE_P (stmt_info)) - { - if (vect_print_dump_info (REPORT_DETAILS)) - fprintf (vect_dump, "value used after loop."); - return false; - } - /* Is vectorizable assignment? */ if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT) return false; @@ -3702,14 +3678,6 @@ vectorizable_induction (tree phi, block_stmt_iterator *bsi ATTRIBUTE_UNUSED, gcc_assert (STMT_VINFO_DEF_TYPE (stmt_info) == vect_induction_def); - if (STMT_VINFO_LIVE_P (stmt_info)) - { - /* FORNOW: not yet supported. */ - if (vect_print_dump_info (REPORT_DETAILS)) - fprintf (vect_dump, "value used after loop."); - return false; - } - if (TREE_CODE (phi) != PHI_NODE) return false; @@ -3791,14 +3759,6 @@ vectorizable_operation (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt, if (STMT_VINFO_DEF_TYPE (stmt_info) != vect_loop_def) return false; - /* FORNOW: not yet supported. */ - if (STMT_VINFO_LIVE_P (stmt_info)) - { - if (vect_print_dump_info (REPORT_DETAILS)) - fprintf (vect_dump, "value used after loop."); - return false; - } - /* Is STMT a vectorizable binary/unary operation? */ if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT) return false; @@ -4088,14 +4048,6 @@ vectorizable_type_demotion (tree stmt, block_stmt_iterator *bsi, if (STMT_VINFO_DEF_TYPE (stmt_info) != vect_loop_def) return false; - /* FORNOW: not yet supported. */ - if (STMT_VINFO_LIVE_P (stmt_info)) - { - if (vect_print_dump_info (REPORT_DETAILS)) - fprintf (vect_dump, "value used after loop."); - return false; - } - /* Is STMT a vectorizable type-demotion operation? */ if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT) return false; @@ -4249,14 +4201,6 @@ vectorizable_type_promotion (tree stmt, block_stmt_iterator *bsi, if (STMT_VINFO_DEF_TYPE (stmt_info) != vect_loop_def) return false; - /* FORNOW: not yet supported. */ - if (STMT_VINFO_LIVE_P (stmt_info)) - { - if (vect_print_dump_info (REPORT_DETAILS)) - fprintf (vect_dump, "value used after loop."); - return false; - } - /* Is STMT a vectorizable type-promotion operation? */ if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT) return false; @@ -4629,13 +4573,6 @@ vectorizable_store (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt, if (STMT_VINFO_DEF_TYPE (stmt_info) != vect_loop_def) return false; - if (STMT_VINFO_LIVE_P (stmt_info)) - { - if (vect_print_dump_info (REPORT_DETAILS)) - fprintf (vect_dump, "value used after loop."); - return false; - } - /* Is vectorizable store? */ if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT) @@ -5458,14 +5395,6 @@ vectorizable_load (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt, if (STMT_VINFO_DEF_TYPE (stmt_info) != vect_loop_def) return false; - /* FORNOW: not yet supported. */ - if (STMT_VINFO_LIVE_P (stmt_info)) - { - if (vect_print_dump_info (REPORT_DETAILS)) - fprintf (vect_dump, "value used after loop."); - return false; - } - /* Is vectorizable load? */ if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT) return false; @@ -5893,7 +5822,7 @@ vectorizable_live_operation (tree stmt, for (i = 0; i < op_type; i++) { op = TREE_OPERAND (operation, i); - if (!vect_is_simple_use (op, loop_vinfo, &def_stmt, &def, &dt)) + if (op && !vect_is_simple_use (op, loop_vinfo, &def_stmt, &def, &dt)) { if (vect_print_dump_info (REPORT_DETAILS)) fprintf (vect_dump, "use not simple."); |