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] |
I'm going to commit the following patch to tree-ssa-lno. It implements a basic loop vectorization pass (disabled by default), as described in: http://gcc.gnu.org/ml/gcc/2003-12/msg00908.html. There are a lot of FIXME's and CHECKME's that yet need to be addressed, including the issues discussed in http://gcc.gnu.org/ml/gcc/2004-01/msg00007.html and http://gcc.gnu.org/ml/gcc/2003-12/msg01433.html. Test cases will follow shortly; The attached test file, if compiled with "-O2 -ftree-vectorize -fno-inline -maltivec", should emit: " vectorized 0 loops in function. vectorized 0 loops in function. vectorized 0 loops in function. vectorized 5 loops in function. vectorized 0 loops in function. vectorized 0 loops in function. vectorized 0 loops in function. " and it should run correctly, at least on powerpc-apple-darwin6.4 (where it's bootstrapping now). Many thanks to Sebastian Pop for his help with interfacing the monev analyzer, and to everyone who offered their comments. dorit. * tree-vectorizer.c: new file. Implements loop vectorization pass. * tree-vectorizer.h: new file. * Makefile.in: new files tree-vectorizer.c,h * tree-dump.c: (dump_files): new dump file for the new vectorization pass. * tree.h: (TDI_vect): Same. * timevar.def (TV_TREE_VECTORIZATION): support new vectorization pass. * opts.c: (flag_tree_vetorize): new flag to enable/disable the new vectorization pass. * flags.h: Same. * toplev.c: Same. * common.opt: (ftree-vectorize): Same. * docs/invoke.texi: Document above new options. * tree-optimize.c: (optimize_function_tree): Invoke the new vetorization pass. * tree-flow.h: (struct stmt_ann_d): New field (aux) to allow recording information per stmt. * tree-data-ref.c (vec_analyze_array): New function, exposing API to the vectorizer. (vec_array_base_name_differ_p): New function, exposing API to the vectorizer. * tree-data-ref.h: Same. * defaults.h: (UNITS_PER_SIMD_WORD): Define. * config/rs6000/rs6000.h: Same. * target-def.h (TARGET_VECTYPE_FOR_SCALAR_TYPE): Declare a new target hook for vectorization. * target.h (vectype_for_scalar_type): Same. * config/rs6000/rs6000.c: (rs6000_vectype_for_scalar_type): implement the above new target hook. (See attached file: vec_diff)(See attached file: tree-vectorizer_h)(See attached file: tree-vectorizer_c) (See attached file: vect_tests_SF_c)
Attachment:
vec_diff
Description: Binary data
Attachment:
tree-vectorizer_h
Description: Binary data
Attachment:
tree-vectorizer_c
Description: Binary data
Attachment:
vect_tests_SF_c
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |