Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for #6903 - enable vectorization of loops with non-constant lower bound. #6926

Merged
merged 1 commit into from
May 22, 2014

Conversation

ArchRobison
Copy link
Contributor

This improvements enables vectorization of the #6903. It also improves performance of some of my other @simd benchmarks.

I timed 5 different variations of loop lowering, including the normal one that Julia uses, and this is one of three variations that came out the fastest (within measurement noise) for aforementioned benchmarks, and did significantly better than using Julia's normal loop-lowering scheme.

When we get to LLVM 3.5, let's try using Julia's usual loop lowering. LLVM 3.4's vectorizer seemed to do much better than LLVM 3.3 with the usual lowering.

The change avoids creating multiple induction variables, which
seem to thwart LLVM 3.3's vectorizer (but not LLVM 3.4).
JeffBezanson added a commit that referenced this pull request May 22, 2014
Fix for #6903 - enable vectorization of loops with non-constant lower bound.
@JeffBezanson JeffBezanson merged commit 8ec8346 into JuliaLang:master May 22, 2014
@ArchRobison ArchRobison deleted the adr/simdvar branch December 9, 2014 22:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants