On Thu, Mar 12, 2020 at 02:08:18PM +0100, Richard Biener wrote:
> > It wasn't clear from my message above, but: I was mostly worried about
> > requiring the asm to treat memory operands in a certain way when the
> > exception is thrown.  IMO it would be better to say that the values of
> > memory operands are undefined on the exception edge.
> 
> Rather unspecified.  So IMHO on the exception edge the asm() should
> still appear as a def for all outputs so the compiler cannot derive any
> actual values for them.  That of course also means that they must not
> appear to be must-defs since we may not DSE earlier stores for example.

So make all outputs of an asm that may throw (w/ -fnon-call-exceptions)
inout operands instead?  That works for registers exactly the same, too?

> If we manage to get the unspecified values correct in SSA then we don't
> need to say whether the asm may clobber them before or after throwing.

Yeah.  Which users will *never* get right, that is, it would be hard to
use any such interface correctly.


Segher

Reply via email to