Overview: Optimization Levels

The table below shows the optimizations that the Intel® C++ Compiler applies when you invoke the -O1, -O2, or -O3 options.

Optimization
Constant propagation
Copy propagation
Dead-code elimination
Global register allocation
Instruction scheduling
Loop unrolling (-O2, -O3 only)
Loop-invariant code movement
Partial redundancy elimination
Strength reduction/induction
variable simplification
Variable renaming
Exception handling optimizations
Tail recursions
Peephole optimizations
Structure assignment lowering and optimizations
Dead store elimination