Optimizations we do
Fold constants
Reuse textures
Avoid redundant copies
Remove dead code
Use hardware features