LLVM Pass
- mem2reg
- Loop Invariant Code Motion
- Constant Propagation
- CSE
- Dead Code Elimination
- PRE
- GVN
Combine
命令の簡単化や合体
Add x, 0 -> x
Legalize
アーキテクチャ固有の変換のうちの一部
(Load (Add base, (Mul off, 4))) -> MOVrm32 [base + 4 * off]
Instruction Selection
Add x, 2 -> ADDrm32 x, 2