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] |
Hi, This patch includes: 1) The vectorizer! including all it's functionality from lno-branch, except for the support for loop bounds that are unknown, which will be sent later as a separate patch. 2) Utilities from lno-branch that are used by the vectorizer but haven't been merged to mainline yet: create_iv, force_gimple_operand and bsi_insert_on_edge_immediate. These were written by Zdenek Dvorak. Coming up after this patch: - Support for unknown loop bound - Loop peeling to force alignment (yet to be ported from apple-ppc to lno-branch) - Support for misaligned accesses (yet to be ported from apple-ppc to lno-branch, replacing builtins with new tree-codes). The patch below was tested on powerpc-apple-darwin7.0.0 and i686-pc-linux-gnu. It passed bootstrap and 'make -k check' on both platforms. On powerpc-apple-darwin7.0.0 the vectorizer adds 148 passes, 38 expected failures, and 2 failures (due to a bug in altivec.md, not related to vectorization; a separate fix for that will follow). On i686-pc-linux-gnu the vectorizer adds 146 passes, 38 expected failures, and 4 failures (see PR16362). On powerpc-apple-darwin7.0.0 I tested in addition: - Bootstrap with vectorization enabled (passed succesflly). - SPEC with vectorization enabled (passed succesflly, vectorizing 29/16 loops in SPEC fp/int). Description of the vectorizer and it's current status can be found here: http://gcc.gnu.org/ml/gcc-patches/2004-07/msg02039.html. I'm waiting for approval to commit that too. The attached patch contains the new files and test-cases, and the diff against existing files. thanks, dorit Chengelog entry: 2004-07-22 Dorit Naishlos <dorit@il.ibm.com> * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE trees. * tree-vectorizer.h: New File: Same. * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files. * common.opt (ftree-vectorize): New flag to enable vectorization. * timevar.def (TV_TREE_VECTORIZATION): New dump file for vectorization pass. * tree-data-ref.h (init_data_ref): Additional argument. (array_base_name_differ_p): Moved to tree-data-ref.c. * tree-data-ref.c (array_base_name_differ_p): Revised. (initialize_data_dependence_relation): Call array_base_name_differ_p with an extra argument. (analyze_all_data_dependences): Same. (init_data_ref): Additional argument is_read to set DR_IS_READ. * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this file. * tree-flow.h (vectorize_loops, empty_block_p): Add declaration. * tree-optimize.c (pass_vectorize): Schedule the vectorization pass. * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new vectorization pass. * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize. (tree_ssa_loop_done): Call scev_finalize. (tree_vectorize): Define the new vectorization pass. * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the size of the vector they support (until support for multiple vector sizes is added to the vectorizer). * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define. * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define. * invoke.texi (fdump-tree-vect, ftree-vectorize): Add documentation. 2004-07-22 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> * tree-ssa-loop-manip.c: New File. (create_iv): New Function. * Makefile.in (tree-ssa-loop-manip.c): Add new files. * gimplify.c (idx_force_simple, update_addressable_flag): New functions. (force_gimple_operand): New function. * tree.h (force_gimple_operand): New declaration. * tree-cfg.c (tree_find_edge_insert_loc): Additional argument new_bb. (bsi_insert_on_edge_immediate): New function. * tree-flow.h (bsi_insert_on_edge_immediate, create_iv): Add declaration. (See attached file: vect_mainline_patch.tar.gz)
Attachment:
vect_mainline_patch.tar.gz
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |