This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
This patch provides a revised version of unknown loop bound support for vectorizer. Its functionality is now based on generic function, tree_duplicate_loop_to_edge, developed in cooperation with Mostafa Hagog, that allows peeling epilog/prolog loop from original one while preserving functional equivalence of the code. Peeling an epilog loop is now used for unknown loop bound support, while peeling a prolog loop - to be used by vectorized when dealing with unknown alignment (the patch to follow). Although having restrictions on the loop forms it can handle (documented in code), this transformation can potentially be used by other optimizations as well. In addition, it can serve as an example of incremental changes approach to SSA form in the investigation issue open by Diego (http://gcc.gnu.org/ml/gcc/2004-08/msg00329.html). ChangeLog: * tree-vectorizer.c (vect_tree_split_edge): Removed. (vect_update_initial_conditions_of_duplicated_loop): Replaced by vect_update_ivs_after_vectorizer. (vect_transform_for_unknown_loop_bound): New function. (tdlte_copy_phi_nodes): Renamed into copy_phi_nodes. (tdlte_rename_variables_in_loop): Renamed into rename_variables_in_loop. (update_phis_for_duplicate_loop): (make_loop_iterate_ntimes): (add_loop_guard_on_edge): New functions. (tree_duplicate_loop_to_exit_cfg): Replaced by tree_duplicate_loop_to_edge_cfg. (tree_duplicate_loop_to_exit): Replaced by tree_duplicate_loop_to_edge. (vect_transform_loop): Changed to use vect_transform_for_unknown_loop_bound function. (See attached file: ulb_new.txt) Olga
Attachment:
ulb_new.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |