------- Comment #24 from bonzini at gnu dot org 2009-02-25 18:43 ------- Andrew, your comments #6 #8 #9 clearly show that you haven't understood the issue and are just talking past others.
The other hand the transformation has been shown to be an optimization on single-thread cases; if it is bad for multiprocessors, it means it probably should be guarded by a flag (but what if the load is not necessary? should it use the same flag, a separate flag, or be always enabled?). But the IM code should be modified to use the flag as suggested by the C++ standard (and to avoid the load if it is not necessary, as it is in this case but not in the case explained by N2238). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31862