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: [PATCH][RFC] Make the function vectorizer capable of doing type transformations


On Thu, 1 Feb 2007, Dorit Nuzman wrote:

> I looked back at my "todo" notes and realized that there were a couple
> additional bits that need fixing in vectorizable_call:
> 
> (1) I think we're going to ICE (need to find the testcase) in
> vect_get_vec_def_for_copy, because we are deleting the scalar call stmt
> that we are vectorizing,  while we are going to need it, at least when
> ncopies>1, when we look for the vector-defs. I think the only reason we
> haven't bumped into this ICE yet is because the sqrt is currently
> vectorized as a "pattern_stmt" - in which case - we don't visit the scalar
> sqrt to look for the vector def, but rather we visit the original stmt
> (pow) - that is the stmt in the pattern that sqrt had replaced.  If sqrt
> was generated not as a result of a pattern-recognition in the vectorizer -
> we probably would have ICEd.  (I hope this is making any sense to you?).
> Anyhow - the point is that we should probably be deleting the scalar calls
> after we finished vectorizing all the stmts in the loop (just chain them
> somewhere until then).

It seems to work for me, maybe you can clarify under which circumstances
we still need the stmt after vectorization?

> (2) We should also check that the return value of the function call is not
> used after the loop (not "live") cause we simply don't handle that yet
> (it's not difficult, but we simply don't do it yet). So all vectorizable_*
> functions should check that.

They seem to do:

t.i:11: note: init: stmt relevant? tmp_7 = lrintf (D.1967_6)
t.i:11: note: vec_stmt_relevant_p: used out of loop.

Richard.

-- 
Richard Guenther <rguenther@suse.de>
Novell / SUSE Labs


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