I used to think that, but when you’re dealing with a lot of low-level stuff you’ll eventually realize that Compilers are pretty bad at generating fast and reliable Assembly where it’s needed. Also, some Architectures have specific machine instructions that Compilers just don’t take advantage of, no matter what flags you enable.
Also, some Architectures have specific machine instructions that Compilers just don’t take advantage of, no matter what flags you enable.
Interesting. Do you have some examples?
Writing those frequently-called leaf functions in assembly has certainly far outlived it’s use in other places. But, the word on the street, or I guess the conventional wisdom, is that compilers have gradually caught up even there.
I used to think that, but when you’re dealing with a lot of low-level stuff you’ll eventually realize that Compilers are pretty bad at generating fast and reliable Assembly where it’s needed. Also, some Architectures have specific machine instructions that Compilers just don’t take advantage of, no matter what flags you enable.
Interesting. Do you have some examples?
Writing those frequently-called leaf functions in assembly has certainly far outlived it’s use in other places. But, the word on the street, or I guess the conventional wisdom, is that compilers have gradually caught up even there.