Static and Dynamic scheduling, Exploit instruction level parallelism, Basic block, Data dependencies, Control dependency, Strip Mining, Loop Unrolling