
5.5 Program Optimization 247
case,the lowest-cost covering uses the multiply-add instruction to cover both nodes.
If we first tried to cover the bottom node with the multiply instruction, we would
find ourselves blocked from using the multiply-add instruction. Dynamic program-
ming can be used to efficiently find the lowest-cost covering of trees, and heuristics
can extend the technique to DAGs.
5.5.8 Understanding and Using Your Compiler
Clearly, the compiler can vastly transform your program during the creation of
assembly language. But compilers are also substantially different in terms of the
optimizations they perform. Understanding your compiler