This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] Vectorizer reorganization
- From: Ira Rosen <IRAR at il dot ibm dot com>
- To: Ira Rosen <IRAR at il dot ibm dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 30 Mar 2009 10:21:20 +0300
- Subject: 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]