Important terms
- control hazard
 - Hazard caused by the need to wait until a branch target is computed and resolved.
 - compiler
 - Software that translates high-level code into assembly or machine code. Can (and usually does) perform many optimizations in the process.
 - loop
 - Section of code that will be iterated more than one time through. Implies linear execution; that is, many times through that section of code without executing other instructions.
 - optimization
 - Any of a number of methods used to improve performance by eliminating stalls, eliminating unnecessary instructions, etc.
 - partial ordering
 - Series of instructions where the later are dependant on the earlier completing.
 - rescheduling
 - Optimization with the goal of eliminating stalls.
 - stall
 - That which keeps a pipelined machine from having a full pipe. Hazards can cause stalls.
 - unrolling
 - Another optimization, this one done by putting multiple iterations of a high-level loop into the loop body in assembly and machine code.