On 08/11/2010 11:20, Andi Kleen wrote: > An asm with live inputs and outputs should never be optimized > way. If 4.5.1 started doing that it's seriously broken.
I don't see that. Consider: void foo (void) { int x, y, z; x = 23; y = x + 1; z = y + 1; } So far, you'd agree the compiler may optimise the entire function away? So why not this: void foo (void) { int x, y, z; x = 23; asm ("do something" : "=r" (y) : "r" (x) ); z = y + 1; } ? cheers, DaveK