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]

[lno] [patch] vectorizer with unknown loop bound


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]