In a model that allows loads to be reordered, such as
RMO, no speculation occurs and the value of a load cannot be affected by any store after it passes the execution
stage. Therefore a load is considered to perform after the
execution stage in these models, and replay strictly
serves the purpose of verifying Uniprocessor Ordering.
Since load ordering does not have to be enforced, load
values can reside in the VC after execution and be used
during replay as long as they are correctly updated by
local stores. This optimization, which has been used in
dynamic verification of single-threaded execution [7],prevents cache misses during verification and reduces
the pressure on the L1 cache.