Dynamic scheduling
Hardware rearranges instructions to reduce the stalls.
To handle cases where the dependence is not known at the compile time.
Most of the existing techniques assume that if a pipeline is stalled because of an instruction, then all the others that come after it are stalled.
SUBD could go before ADDD. How can you determine this dynamically?