Dominators
Reducible graphs
Depth first ordering
All of these
Quadruples
Syntax trees
Three address codes
Post fix notation
Faulty design specification
Faulty algorithm
Compilers themselves
None of these
Flexibility of the available instruction set
Complexity of the architecture of the target machine
Complexity of the source language
Reduction in strength
Loop-invariant computation
Code motion