On Sun, 2005-07-17 at 08:18 +0300, Michael Veksler wrote: > > > > Gabriel Dos Reis wrote on 17/07/2005 06:07:29: > > > Daniel Berlin <[EMAIL PROTECTED]> writes: > > > > | Anything it sees anything in a statement with volatile, it marks the > > | statement as volatile, which should stop things from touching it > > | (anything that *does* optimize something marked volatile is buggy). > > great! > > > > I can't agree with that as is. I would refine it to: > Anything that *does* optimizes away visible reads or writes of > something marked volatile is buggy.
Fine. But the tree optimizers currently make no distinction between reads and writes of volatile operands, or even which operands of a statement are volatile and which are not. So from the perspective of what we do *now*, what i said is completely correct, because the optimizers do not (not "can not") distinguish to the level you want. I'd also guess it's probably not worth doing so, but i may be wrong.