On 05/03/2012 12:11 PM, William J. Schmidt wrote:
However, from the wiki page I see: "A speculative load which has its
results thrown away are considered to not have changed the semantics of
the program, and are therefore allowed." That seems to cover the case
here: the load is hoisted, but if the path where it was originally
loaded is not executed, its result is discarded.
Ah, yes, I remember that discussion now. Ignore my concerns :-)
If needed, though, what flags/detection mechanisms are available for
determining that the load speculation should be disabled?
I think the flags are something like -fallow-load-data-races
-fallow-store-data-races and the like.
jeff