Memory Hierarchies
 caches etc
 static/dynamic program observation
 Fancy new instructions
 predicated instructions
 branch delay slots
Register-based execution
Control-flow analysis
Program re-writing