We keep hearing about C++'s "as if" rule, but what does it really do? Fundamentally, it enables optimizations. A modern compiler never produces an executable that's identical to the program you actually wrote; it produces an equivalent program that's probably a lot better.
Hence Jim Hogg's nice new series on what optimizing compilers do, using Visual C++ as an example. The latest instalment:
Optimizing C++ Code : Dead Code Elimination
by Jim Hogg
From the article:
This post examines the optimization called Dead-Code-Elimination, which I’ll abbreviate to DCE. It does what it says: discards any calculations whose results are not actually used by the program.
Now, you will probably assert that your code calculates only results that are used, and never any results that are not used: only an idiot, after all, would gratuitously add useless code -- calculating the first 1000 digits of pi, for example, whilst also doing something useful. So when would the DCE optimization ever have an effect? ...
Add a Comment
Comments are closed.