I’m a grad student trying to put together an independent study to follow up my Compilers class and would like to explore the material in chapter 11 of the “Dragon book” which covers optimizations for parallelism and locality. I find that I learn best when I implement something in code, and so would like to have a project for this independent study. For this project, I was thinking of using an existing compiler that I could write some analyses for and then use those to implement one or more optimizations that employ the affine transform theory developed in that chapter. The ultimate goal would be to output vectorized code given some (relatively simple) array-intensive sequential program. To that end, I have a few questions for the Swift compiler experts.
- Would the Swift compiler be an appropriate choice for this endeavor, or should I go straight to Clang/LLVM?
- Is there currently work in progress (or completed) for vectorizing loops by emitting SIMD instructions?
- Does this seem like a reasonable goal for a 1 semester course?
I’m sure I’ll have some followup questions based on the responses to the above questions, but that’s it for now. Thank you for taking the time to read this post!