Systems and methods for determining dependencies between processor
instructions in multiple phases. In one embodiment, a partial comparison
is made between the addresses of a sequence of instructions. Younger
instructions having potential dependencies on older instructions are
suspended if the partial comparison yields a match. One or more
subsequent comparisons are made for suspended instructions based on
portions of the addresses referenced by the instructions that were not
previously compared. If subsequent comparisons determine that the
addresses of the instructions do not match, the suspended instructions
are reinstated and execution of the suspended instructions is resumed. In
one embodiment, data needed by suspended instructions is speculatively
requested in case the instructions are reinstated.