3 ms·
EDIT - nvm, the CS241 UWaterloo course doesn't cover SSA. In case anybody's interested in learning the basics, here's some course notes to a compilers class wh
by srcreigh 5y ago
EDIT - nvm, the CS241 UWaterloo course doesn't cover SSA.
In case anybody's interested in learning the basics, here's some course notes to a compilers class which I love!
http://anthony-zhang.me/University-Notes/CS241/CS241.html http://anthony-zhang.me/University-Notes/CS241/CS241.html
- CalChris 5y agoYour notes, while honestly very good, don't cover data flow analysis or Single Static Assignment (SSA) which is what LLVM IR [1] uses and which are the tools that the article's optimizations are based on. Hell, LLVM backend engineers rarely even look at IR. We mostly look at Generic Machine IR [2]. [1] https://llvm.org/docs/LangRef.html https://llvm.org/docs/LangRef.html [2] https://llvm.org/docs/GlobalISel/GMIR.html https://llvm.org/docs/GlobalISel/GMIR.html
- srcreigh 5y agoAh, my bad. When you said "backend" I thought you mean "HTTP backend" hence my over-simplification. You're right -- SSA isn't covered in that course. Cheers.
- dleslie 5y agoInteresting, in my day SFU kept this til 3rd year, as CMPT379 IIRC, and only as an option for Theoretical or Systems paths. Looks like it's still 379; not sure about the optional component. http://anoopsarkar.github.io/compilers-class/ http://anoopsarkar.github.io/compilers-class/
- macintux 5y agoDecades ago I participated in some group programming contest for universities (in person, not online). We did terribly, but mainly I remember being in awe of how quickly Waterloo was solving the challenges.