On Wed, Nov 25, 2015 at 4:54 PM, Michael Matz <m...@suse.de> wrote: > Hi, > > On Wed, 25 Nov 2015, Bernd Schmidt wrote: > >> So here's a very basic version which I think is appropriate for the >> current stage, and can be extended later. Ok if it passes testing? > > When we're improving that place, we should really only consider ASMs that > change memory state to be problematic ("&& gimple_vdef (stmt)").
Ok with the change suggested by Micha for the asm()s. Note that I originally used gimple_vuse () instead of gimple_vdef () as even reading random memory is a barrier for the compiler to move stores across it (not reads, of course). Which is why I also considered pure (global memory reading) calls to be a barrier (for the stores). Of course as we don't consider regular assign statement reads (or stores) to be a "barrier" in the sense that matters here (we're not looking for memory optimization barriers!) this might be moot and then the middle-end will effectively require all synchronization barriers (which we are looking for(?)) to appear as clobbering memory. Thanks, Richard. > > Ciao, > Michael.