http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25829
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |burnus at gcc dot gnu.org
--- Comment #19 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-03-04
18:08:14 UTC ---
(In reply to comment #16)
> subroutine finish(var, wait)
> asynchronous :: var
> wait(wait)
> var = 7
> end subroutine finish
>
> Here, the ME might be tempted to change the order of WAIT and "var = 7"; thus
> in this case we probably need to tell the ME about the ASYNCHRONOUS attribute.
A brute-force method would be to add a __sync_synchronize
(BUILT_IN_SYNCHRONIZE) call after the WAIT. But maybe one finds a better way
which restricts the barrier to only "var" (and other asynchronous variables)
without influencing unrelated variables.