[llvm] r193853 - LoopVectorizer: If dependency checks fail try runtime checks
Hal Finkel
hfinkel at anl.gov
Fri Nov 1 03:26:21 PDT 2013
----- Original Message -----
>
> On Oct 31, 2013, at 10:36 PM, Hal Finkel <hfinkel at anl.gov> wrote:
>
> > Arnold,
> >
> > FWIW, this looks related to a question that I asked earlier today:
> > http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-October/067083.html
> >
>
> The array bounds check is only added when the dependency check fails.
> Once we extend SCEV for your example, in whatever way we decide to
> do that, we won’t emit these checks anymore.
>
> > If a guard already exists (as in the example from my post), and the
> > vectorizer also adds one, does anything after the vectorizer clean
> > that up?
> >
>
> The runtime checks we add are different from the guard you added in
> your example. Not as clever. The loop vectorizer’s runtime checks
> just test no-overlapping'ness of the accesses in the loop. We don’t
> take dependency information into account for building those checks.
Do the runtime checks account for the store-to-load forwarding issue?
-Hal
>
> Best,
> Arnold
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the llvm-commits
mailing list