https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102783
pthaugen at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pthaugen at gcc dot gnu.org --- Comment #2 from pthaugen at gcc dot gnu.org --- I’ll note that an inline asm stmt appears to be a barrier for the scheduler, but apparently not for other parts of the compiler. For example on the following code: double d; void foo(double *dp, double c) { double e; e = c + d; asm volatile (""); *dp = e + d; return; } The scheduling dumps show that the asm volatile has dependencies on all insns before and after it. But that doesn’t really help because the first addition stmt gets moved past the asm volatile at expand time.