Compiler optimization transforms programs to equivalent programs that use fewer resources by applying techniques like:
1) Combining multiple simple operations like increments into a single optimized operation
2) Evaluating constant expressions at compile-time rather than run-time
3) Eliminating redundant computations and storing values in registers rather than memory when possible
4) Optimizing loops, conditionals, and expressions to minimize computations
Compiler optimization aims to minimize program execution time, memory usage, and power consumption by transforming programs in various ways before producing executable code. Some key techniques include instruction combining, constant folding, common subexpression elimination, strength reduction, dead code elimination, and loop optimizations. This improves program efficiency and performance.