[patch] Re: tree-vectorizer.c splitup

Dorit Naishlos DORIT@il.ibm.com
Sun Feb 13 08:34:00 GMT 2005





Here is the splitup, as proposed.

Bootstrapped and tested on powerpc-darwin and i686-pc-linux-gnu

ok to commit?

thanks,

dorit

Changelog:

        * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
        (tree-vectorizer.o): Added missing dependencies.

        * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
        decleration.
        (slpeel_tree_peel_loop_to_edge): Function externalized (had a
static
        declaration in tree-vectorizer.c, now has an extern declaration in
        tree-vectorizer.h).
        (slpeel_make_loop_iterate_ntimes):
        (slpeel_can_duplicate_loop_p):
        (slpeel_verify_cfg_after_peeling):
        (vect_strip_conversion):
        (get_vectype_for_scalar_type):
        (vect_is_simple_use):
        (vect_is_simple_iv_evolution):
        (vect_can_force_dr_alignment_p):
        (vect_supportable_dr_alignment):
        (new_loop_vec_info):
        (destroy_loop_vec_info):
        (new_stmt_vec_info):
        (vect_analyze_loop):
        (vectorizable_load):
        (vectorizable_store):
        (vectorizable_operation):
        (vectorizable_assignment):
        (vect_transform_loop):
        (vect_print_dump_info):
        (vect_set_verbosity_level):
        (find_loop_location): Likewise.

        * tree-vectorizer.c (langhooks.h): #include removed.
        (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
        moved to tree-vectorized.h.
        (slpeel_make_loop_iterate_ntimes):
        (slpeel_can_duplicate_loop_p):
        (slpeel_verify_cfg_after_peeling):
        (vect_strip_conversion):
        (get_vectype_for_scalar_type):
        (vect_is_simple_use):
        (vect_is_simple_iv_evolution):
        (vect_can_force_dr_alignment_p):
        (vect_supportable_dr_alignment):
        (new_loop_vec_info):
        (destroy_loop_vec_info):
        (new_stmt_vec_info):
        (vect_print_dump_info):
        (vect_set_verbosity_level):
        (find_loop_location): Likewise.

        (vect_analyze_loop): Function externalized. Declaration moved to
        tree-vectorized.h. Function definition moved to
tree-vect-analyze.c.
        (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
        (vect_mark_stmts_to_be_vectorized):
        (vect_analyze_scalar_cycles):
        (vect_analyze_data_ref_accesses):
        (vect_analyze_data_ref_dependences):
        (vect_analyze_data_refs_alignment):
        (vect_compute_data_refs_alignment):
        (vect_enhance_data_refs_alignment):
        (vect_analyze_operations):
        (exist_non_indexing_operands_for_use_p):
        (vect_mark_relevant):
        (vect_stmt_relevant_p):
        (vect_get_loop_niters):
        (vect_analyze_data_ref_dependence):
        (vect_compute_data_ref_alignment):
        (vect_analyze_data_ref_access):
        (vect_analyze_pointer_ref_access):
        (vect_can_advance_ivs_p):
        (vect_get_ptr_offset):
        (vect_analyze_offset_expr):
        (vect_base_addr_differ_p):
        (vect_object_analysis):
        (vect_address_analysis):
        (vect_get_memtag): Likewise.

        (vectorizable_load): Function externalized. Declaration moved to
        tree-vectorized.h. Function definition moved to
tree-vect-transform.c.
        (vectorizable_store):
        (vectorizable_operation):
        (vectorizable_assignment):
        (vect_transform_loop): Likewise.
        (vect_transform_stmt): Moved to tree-vect-transform.c.
        (vect_align_data_ref):
        (vect_create_destination_var):
        (vect_create_data_ref_ptr):
        (vect_create_index_for_vector_ref):
        (vect_create_addr_base_for_vector_ref):
        (vect_get_new_vect_var):
        (vect_get_vec_def_for_operand):
        (vect_init_vector):
        (vect_finish_stmt_generation):
        (vect_generate_tmps_on_preheader):
        (vect_build_loop_niters):
        (vect_update_ivs_after_vectorizer):
        (vect_gen_niters_for_prolog_loop):
        (vect_update_inits_of_dr):
        (vect_update_inits_of_drs):
        (vect_do_peeling_for_alignment):
        (vect_do_peeling_for_loop_bound): Likewise.

        * tree-vect-analyze.c: New file.
        * tree-vect-transform.c: New file.

Patch:
(See attached file: vect_splitup.tar.gz)

Richard Henderson <rth@redhat.com> wrote on 02/02/2005 00:25:12:

> On Mon, Jan 31, 2005 at 07:27:36PM +0200, Dorit Naishlos wrote:
> > tree-simple-loop-utils.c: loop-peeling utilities (non vectorizer
specific)
>
> How does this relate to tree-ssa-loop-ch.c?  It looks like you've
> got duplicate code in here...
>
> > tree-vectorizer.c: main driver and general vectorization utilities
> > tree-vect-analyze.c: analysis functions
> > tree-vect-transform.c: transformation functions
>
> These seem ok.
>
> > Would this be acceptable for 4.0?
>
> Yeah.
>
>
>
> r~
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vect_splitup.tar.gz
Type: application/octet-stream
Size: 67254 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20050213/a9983a91/attachment.obj>


More information about the Gcc-patches mailing list