3 ms·
> Like I get that the post is trying to paint some beautiful picture about how compiler passes are abstract beautiful transformations of representations of prog
by slavapestov 3y ago
> Like I get that the post is trying to paint some beautiful picture about how compiler passes are abstract beautiful transformations of representations of programs but it's not a useful picture at all.
It is actually a very useful picture especially to a beginner.
PGO is an edge case and not used a whole lot in practice. Many compilers do not support it at all, even production compilers. Someone learning to write a compiler does not need to think about PGO. And besides, a compiler with PGO is still a pure function of source + flags + profile.
- mathisfun123 3y ago>PGO is an edge case and not used a whole lot in practice. Many compilers do not support it at all, even production compilers. Both clang and gcc support `-fprofile-generate`. Beyond that generic infrastructure, in my area (DL compilers) if you're not doing PGO/autotuning you're not serious. >Someone learning to write a compiler does not need to think about PGO. That's like saying someone learning to write a compiler doesn't need to think about optimization at all - sure maybe the first time. But then every time after that it should be at the forefront of your mind.
- slavapestov 3y ago> Both clang and gcc support `-fprofile-generate`. Beyond that generic infrastructure, in my area (DL compilers) if you're not doing PGO/autotuning you're not serious. How many binaries in a typical Linux distro are built with PGO for example? The answer is approximately zero.
- mathisfun123 3y agoYour point? Because your first goalpost was "most compilers don't even support PGO". And now the goalpost is Linux distros? How about this one - how many binaries at FB/G are built with PGO? Answer: a great deal (llvm/bolt is a FB project and MLGO is a G project).
- slavapestov 3y agoMy point is that the view of a compiler as a series of transformation passes from a source program to machine code, implemented as pure functions, is an entirely appropriate way to describe how they work in a random introductory blog post? Congratulations on your recent PhD in quantum machine learning or whatever -- I hope you find some way to speed up FB/G's ad serving algorithms by 1% and land that promotion. I'm sure you're very smart.
- mathisfun123 3y ago>My point is that the view of a compiler... Your point in bringing up Linux was to reiterate your original point? Interesting. > I hope you find some way to speed up FB/G's ad serving algorithms by 1% and land that promotion. I'm sure you're very smart. lol