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


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).

(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.

I could take care of these next week (unless you get to it before then...)

dorit

> Thanks,
> Richard.


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