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]

Re: [patch] Vectorizer reorganization



Ira Rosen/Haifa/IBM wrote on 12/02/2009 11:33:37:

> Hi,
>
> Following the RFC that Dorit and I sent some time ago (http://gcc.
> gnu.org/ml/gcc-patches/2008-11/msg00351.html), here is the proposed
> vectorizer reorganization:
>
> - files tree-vect-analyze.c and tree-vect-transform.c no longer exist
> - tree-vectorizer.c  contains drivers for the three vectorizers:
> (1) loop vectorizer (inter-iteration parallelism);  (2) loop-aware
> SLP (intra-iteration parallelism) (invoked by the loop  vectorizer);
> (3) basic block vectorizer (out-of-loops), aka SLP (to be added)
> - tree-vect-loop.c - loop specific parts such as reductions, etc.
> These are used by drivers (1) and (2).
> - tree-vect-loop-manip.c - vectorizer's loop control-flow utilities,
> used by drivers (1) and (2).
> - tree-vect-slp.c - SLP specific analysis and transformation, used
> by drivers (2) and (3).
> - tree-vect-stmts.c - statements analysis and transformation (used by
all).
> - tree-vect-data-refs.c - vectorizer specific data-refs analysis and
> manipulations (used by all).
> - tree-vect-patterns.c - vectorizable code patterns detector (used
> by all) (not changed).
>
> Bootstrapped on powerpc64-suse-linux (with vectorization enabled)
> and x86_64-suse-linux, and tested on powerpc64-suse-linux and
> x86_64-suse-linux.
> O.K. for 4.5?
>

Committed revision 145280.

Ira


> Thanks,
> Ira
>
> ChangeLog:
>
>  * tree-vect-loop-manip.c: New file.
>  * tree-vectorizer.c: Update documentation and included files.
>  (vect_loop_location): Make extern.
>  (rename_use_op): Move to tree-vect-loop-manip.c
>  (rename_variables_in_bb, rename_variables_in_loop,
>  slpeel_update_phis_for_duplicate_loop,
slpeel_update_phi_nodes_for_guard1,
>  slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
>  slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
>  slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,,
>  set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
find_loop_location):
>  Likewise.
>  (new_stmt_vec_info): Move to tree-vect-stmts.c.
>  (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
>  get_vectype_for_scalar_type, vect_is_simple_use,
>             supportable_widening_operation,
supportable_narrowing_operation):
>  Likewise.
>  (bb_in_loop_p): Move to tree-vect-loop.c.,
>  (new_loop_vec_info, destroy_loop_vec_info,
>  reduction_code_for_scalar_code, report_vect_op,
vect_is_simple_reduction,
>  vect_is_simple_iv_evolution): Likewise.
>  (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
>  (vect_supportable_dr_alignment): Likewise.
>  * tree-vectorizer.h (tree-data-ref.h): Include.
>  (vect_loop_location): Declare.
>  Reorganize function declarations according to the new file structure.
>  * tree-vect-loop.c: New file.
>  * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
>  tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
>  * tree-vect-data-refs.c: New file.,
>  * tree-vect-patterns.c (timevar.h): Don't include..
>  * tree-vect-stmts.c: New file.
>  * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
>  tree-vect-slp.c, tree-vect-loop.c.
>  * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
>  tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
>  tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
>  (tree-vect-analyze.o): Remove.
>  (tree-vect-transform.o): Likewise.
>  (tree-vect-data-refs.o): Add rule.
>  (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, tree-
> vect-slp.o):
>  Likewise.
>  (tree-vect-patterns.o): Remove redundant dependencies.
>  (tree-vectorizer.o): Likewise.
>  * tree-vect-slp.c: New file.
>
> [attachment "vect-reorg.tgz" deleted by Ira Rosen/Haifa/IBM]


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]