Messages in this thread | ![/](/images/icornerl.gif) | | Date | Wed, 14 Aug 2002 13:58:41 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [patch 4/21] fix ARCH_HAS_PREFETCH |
| |
Willy Tarreau wrote: > > There would be a solution to tell gcc not to optimize things, which may > not require too much work from gcc people. Basically, we would need to > implement a __builtin_nop() function that would respect dependencies but > not generate any code. This way, we could have : > > for (i=0; i<N, i++); > > optimized as i=N > and > for (i=0; i<N; i++) > __builtin_nop(); > or even > for (i=0; i<N; __builtin_nop(i++)); > do the real work. > > This way, some loops could be optimized, and the developpers could explicitely > tell the compiler when they need to prevent any optimization. >
#define __nop() asm volatile("")
Since some processors now have "busy wait delay" instructions, this would also make it possible to do:
#if defined(__i386__) || defined(__x86_64__)
#define __busy_wait() asm volatile("rep;nop")
#else
#define __busy_wait() asm volatile("")
#endif
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |