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]

tree-vectorizer.c splitup





Looks like it's time to split up the tree-vectorizer.c file (I hear it's
been a subject of discussion on IRC...). I was thinking to split it as
follows:

tree-simple-loop-utils.c: loop-peeling utilities (non vectorizer specific)
tree-vectorizer.c: main driver and general vectorization utilities
tree-vect-analyze.c: analysis functions
tree-vect-transform.c: transformation functions

Would this be acceptable for 4.0?

Here's a more detailed breakdown of the funnctions into the proposed files:

tree-simple-loop-utils.c
========================
- slpeel_tree_peel_loop_to_edge
  - slpeel_tree_duplicate_loop_to_edge_cfg
  - slpeel_update_phis_for_duplictae_loop
  - slpeel_update_phi_nodes_for_guard
  - slpeel_make_loop_iterate_ntimes
  - slpeel_add_loop_guard
  - slpeel_can_duplicate_loop_p
  - slpeel_verify_cfg_after_peeling
  - allocate_nre_names
  - rename_use_op
  - rename_def_op
  - rename_variables_in_bb
  - free_new_names
  - rename_variables_in_loop

tree-vectorizer.c
=================
- vectorize_loops

- get_vectype_for_scalar_type
- new_stmt_vec_info
- new_loop_vec_info
- destroy_loop_vec_info
- debug_loop_stats
- debug_loop_details
- vect_strip_conversions
- vect_force_dr_alignment_p
- need_imm_uses_for
- vect_is_simple_iv_evolution
- vect_is_simple_use
- vect_supportable_dr_alignment
- vect_force_dr_alignment_p

tree-vect-transform.c
=====================
- vect_transform_loop
- vect_do_peeling_for_alignment
- vect_do_peeling_for_loop_bound
  - vect_build_loop_niters
  - vect_generate_tmps_on_preheader
  - vect_update_ivs_after_vectorizer
  - vect_gen_niters_for_prolog_loop
  - vect_update_inits_of_drs
- vect_transform_stmt
- vectorizable_operation
- vectorizable_store
- vectorizable_load
- vectorizable_assignment
  - vect_get_new_vect_var
  - vect_create_index_for_vector_ref
  - vect_create_addr_base_for_vector_ref
  - vect_align_data_ref
  - vect_create_data_ref_ptr
  - vect_create_destination_var
  - vect_init_vector
  - vect_get_vec_def_for_operand
  - vect_finish_stmt_generation

tree-vect-analyze.c
===================
- vect_analyze_loop
- vect_analyze_loop_form
    - vect_get_loop_niters
    - vect_can_advance_ivs_p
- vect_mark_stmts_to_be_vectorized
   - vect_stmt_relevant_p
   - vect_mark_relevant
   - exist_non_indexing_operands_for_use_p
- vect_analyze_scalar_cycles
- vect_analyze_data_refs.
   - vect_analyze_pointer_ref_access.
   - vect_get_memtag_and_dr.
   - vect_analyze_offset_expr
   - vect_get_base_and_offset
- vect_analyze_data_ref_dependences.
- vect_analyze_data_refs_alignment
   - vect_compute_data_refs_alignment
      - vect_get_ptr_offset
   - vect_enhance_data_refs_alignment
- vect_analyze_data_ref_accesses.
- vect_analyze_operations

thanks,
dorit


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