diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2007-05-01 12:17:43 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2007-05-01 10:17:43 +0000 |
commit | 8b11009bad1b794283984fc806198e3cf29dbed3 (patch) | |
tree | af410434537ec713cf3e23d857c1ce808af279bf /gcc/tree-vect-transform.c | |
parent | f5052e291a2fdb6eb5c9a968b9a1a68a12aa5866 (diff) | |
download | gcc-8b11009bad1b794283984fc806198e3cf29dbed3.zip gcc-8b11009bad1b794283984fc806198e3cf29dbed3.tar.gz gcc-8b11009bad1b794283984fc806198e3cf29dbed3.tar.bz2 |
tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use bsi_after_labels.
* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
bsi_after_labels. Always insert statements before bsi.
* tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
* predict.c (apply_return_prediction): Check for empty blocks.
* cfgexpand.c (lab_rtx_for_bb): New variable.
(label_rtx_for_bb): Do not create new tree labels.
(expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
(tree_expand_cfg): Initialize lab_rtx_for_bb.
* tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
creating edges.
(label_for_bb): Add field used.
(update_eh_label, main_block_label): Mark the label used.
(cleanup_dead_labels): Remove unused labels.
From-SVN: r124322
Diffstat (limited to 'gcc/tree-vect-transform.c')
-rw-r--r-- | gcc/tree-vect-transform.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c index 4051cc6..161e82d 100644 --- a/gcc/tree-vect-transform.c +++ b/gcc/tree-vect-transform.c @@ -1174,7 +1174,7 @@ vect_create_epilog_for_reduction (tree vect_def, tree stmt, exit_bb = single_exit (loop)->dest; new_phi = create_phi_node (SSA_NAME_VAR (vect_def), exit_bb); SET_PHI_ARG_DEF (new_phi, single_exit (loop)->dest_idx, vect_def); - exit_bsi = bsi_start (exit_bb); + exit_bsi = bsi_after_labels (exit_bb); /* 2.2 Get the relevant tree-code to use in the epilog for schemes 2,3 (i.e. when reduc_code is not available) and in the final adjustment @@ -1223,7 +1223,7 @@ vect_create_epilog_for_reduction (tree vect_def, tree stmt, epilog_stmt = build_gimple_modify_stmt (vec_dest, tmp); new_temp = make_ssa_name (vec_dest, epilog_stmt); GIMPLE_STMT_OPERAND (epilog_stmt, 0) = new_temp; - bsi_insert_after (&exit_bsi, epilog_stmt, BSI_NEW_STMT); + bsi_insert_before (&exit_bsi, epilog_stmt, BSI_SAME_STMT); extract_scalar_result = true; } @@ -1280,13 +1280,13 @@ vect_create_epilog_for_reduction (tree vect_def, tree stmt, epilog_stmt = build_gimple_modify_stmt (vec_dest, tmp); new_name = make_ssa_name (vec_dest, epilog_stmt); GIMPLE_STMT_OPERAND (epilog_stmt, 0) = new_name; - bsi_insert_after (&exit_bsi, epilog_stmt, BSI_NEW_STMT); + bsi_insert_before (&exit_bsi, epilog_stmt, BSI_SAME_STMT); tmp = build2 (code, vectype, new_name, new_temp); epilog_stmt = build_gimple_modify_stmt (vec_dest, tmp); new_temp = make_ssa_name (vec_dest, epilog_stmt); GIMPLE_STMT_OPERAND (epilog_stmt, 0) = new_temp; - bsi_insert_after (&exit_bsi, epilog_stmt, BSI_NEW_STMT); + bsi_insert_before (&exit_bsi, epilog_stmt, BSI_SAME_STMT); } extract_scalar_result = true; @@ -1316,7 +1316,7 @@ vect_create_epilog_for_reduction (tree vect_def, tree stmt, epilog_stmt = build_gimple_modify_stmt (new_scalar_dest, rhs); new_temp = make_ssa_name (new_scalar_dest, epilog_stmt); GIMPLE_STMT_OPERAND (epilog_stmt, 0) = new_temp; - bsi_insert_after (&exit_bsi, epilog_stmt, BSI_NEW_STMT); + bsi_insert_before (&exit_bsi, epilog_stmt, BSI_SAME_STMT); for (bit_offset = element_bitsize; bit_offset < vec_size_in_bits; @@ -1331,13 +1331,13 @@ vect_create_epilog_for_reduction (tree vect_def, tree stmt, epilog_stmt = build_gimple_modify_stmt (new_scalar_dest, rhs); new_name = make_ssa_name (new_scalar_dest, epilog_stmt); GIMPLE_STMT_OPERAND (epilog_stmt, 0) = new_name; - bsi_insert_after (&exit_bsi, epilog_stmt, BSI_NEW_STMT); + bsi_insert_before (&exit_bsi, epilog_stmt, BSI_SAME_STMT); tmp = build2 (code, scalar_type, new_name, new_temp); epilog_stmt = build_gimple_modify_stmt (new_scalar_dest, tmp); new_temp = make_ssa_name (new_scalar_dest, epilog_stmt); GIMPLE_STMT_OPERAND (epilog_stmt, 0) = new_temp; - bsi_insert_after (&exit_bsi, epilog_stmt, BSI_NEW_STMT); + bsi_insert_before (&exit_bsi, epilog_stmt, BSI_SAME_STMT); } extract_scalar_result = false; @@ -1366,7 +1366,7 @@ vect_create_epilog_for_reduction (tree vect_def, tree stmt, epilog_stmt = build_gimple_modify_stmt (new_scalar_dest, rhs); new_temp = make_ssa_name (new_scalar_dest, epilog_stmt); GIMPLE_STMT_OPERAND (epilog_stmt, 0) = new_temp; - bsi_insert_after (&exit_bsi, epilog_stmt, BSI_NEW_STMT); + bsi_insert_before (&exit_bsi, epilog_stmt, BSI_SAME_STMT); } /* 2.4 Adjust the final result by the initial value of the reduction @@ -1382,7 +1382,7 @@ vect_create_epilog_for_reduction (tree vect_def, tree stmt, epilog_stmt = build_gimple_modify_stmt (new_scalar_dest, tmp); new_temp = make_ssa_name (new_scalar_dest, epilog_stmt); GIMPLE_STMT_OPERAND (epilog_stmt, 0) = new_temp; - bsi_insert_after (&exit_bsi, epilog_stmt, BSI_NEW_STMT); + bsi_insert_before (&exit_bsi, epilog_stmt, BSI_SAME_STMT); } /* 2.6 Replace uses of s_out0 with uses of s_out3 */ |