Systems, methods, and apparatuses including computer program products for
speculative throughput computing are disclosed. Speculative throughput
computing is used to execute program segments in parallel. In one aspect,
a method includes generating precise ranges of locations that speculative
read or write instructions have accessed; determining that a speculative
write instruction from a first program segment has accessed a first
precise range of locations; comparing the first precise range of
locations with a second precise range of locations accessed by a
speculative read or write instruction from a second program segment;
determining that the first precise range of locations overlaps with the
second precise range of locations; and identifying a miss-speculation and
restoring memory content of locations speculative write instructions have
accessed in the first precise range of locations and the second precise
range of locations, when the first precise range of locations overlaps
with the second precise range of locations.