Comment by vkazanov
1 day ago
What is advanced then? Good coverage of dce, data flow, ssa, intruction selection and reg alloc is actually like 98% of the backend.
1 day ago
What is advanced then? Good coverage of dce, data flow, ssa, intruction selection and reg alloc is actually like 98% of the backend.
Perhaps polyhedral optimization, tiling, scalar evolution, vectorization...
I guess garbage collection is pretty advanced in the syllabus.
Some of these have been covered in student projects in this course. E.g. https://www.cs.cornell.edu/courses/cs6120/2023fa/blog/polyhe...
So, if you include the readings (proper research papers) and the course project, I'd say this course earns the "advanced" in its name.
Well there is advanced and there is advanced.
This course is just a second course on compilers for people who had an introduction. And a great one at that.
A good modern, practical and decently optimizing compiler can do just fine without all the things you've mentioned, including vectorization.
Besides, most programming language implementations never go beyond the basic SSA toolkit.