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]

Re: [lno] [patch] vectorization with unknown loop bound



On May 17, 2004, at 7:10 AM, Olga Golovanevsky wrote:


I used some static functions from tree-ssa-loop-manip.c and
cfgloopmanip.c, as well the function force_gimple_operand() from
tree-ssa-loop-ivopts.c, so I changed these functions to non-static.
Alternatively it was possible to make this loop transformation
generic, that is a question whether it is worth doing.

If tree_ssa_loop_version () is used then some of the code duplication can be avoided. But it can be done later.

+ /* If the loop has symbolic number of iterations 'n'
+ (i.e. it's not a compile time constant),
+ then an epilog loop need to be created. We therefore duplicate
+ the initial loop. The original loop will be vectorized, and will compute
+ (n/VF) iterations. The second copy will remain serial and compute
+ the remaining (n%VF) iterations. (VF is the vectorization factor). */

Any reason for not using nested loops approach here? e.g.


	for (i=0; i<N; i = i + VF)
		for (j=i; j < i + VF && j < N; j++)
			...

I am just curious.

--
Devang


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