http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53190

--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-05-03 
07:59:40 UTC ---
(In reply to comment #3)
> (In reply to comment #2)
> >             (clobber (reg:QI 18 fpsr))
> >             (clobber (reg:QI 17 flags))
> > 
> > 
> > It might clobber those but that is not considered an use.  So CSE is doing 
> > the
> > correct thing as there is no use based on fpsr.
> 
> The asm that depends on some unknown-to-gcc global processor state should be
> marked as volatile.
> 
> This is a bug in glibc.
> 
> As a side note, mathinline.h really needs some serious TLC, there are many
> functions that are much better implemented with gcc builtin functions, not to
> mention that x87 asm in 32bit case interferes *badly* with -mfpmath=sse.
> 
> Fortunately, there is -D__NO_MATH_INLINES, used in my projects from day one.
> 
> Really, there is no justification for mathinline.h to live, as far as gcc is
> concerned.

So you say that it's correct for CSE to CSE asm()s if they have the same
asm string and the same asm operands in case the asm is not volatile?  I was
not aware we would do that ;)  (but yes, it sounds like a reasonable thing)

Reply via email to