suggestions for optimization pragmas

Mark G. Mendel x2778 mark at ns.UUCP
Sun Dec 11 06:59:51 AEST 1988


Recently, I have been hand-optimizing an interrupt handler starting with the
output of the Tektronix 68020 C compiler.  Here is a #pragma that I would
dearly love to see in a C compiler:

 #pragma critical (true|false)

This indicates the 'usual' result of the next condional statement.  The
compiler would attempt to arrange instructions along the critical-path
sequentially in memory to take advantage of instruct pre-fetch.  That is,
error conditions would branch off and cause prefetch misses, whereas the
critical, non-error execution path would zip along sequentially through memory.

In addition, local variables declared in a non-critical block would never
steal registers from critical-path variables.

Doing this by hand has resulted in a significant gain in speed. Since
instruction pre-fetching is pretty universal on state-of-the-art chips, such a
pragma would win on most compilers.



More information about the Comp.lang.c mailing list