[llvm] r193853 - LoopVectorizer: If dependency checks fail try runtime checks

Arnold Schwaighofer aschwaighofer at apple.com
Thu Oct 31 21:05:25 PDT 2013


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.

Best,
Arnold



More information about the llvm-commits mailing list