Check out the new USENIX Web site. next up previous
Next: Experimental results. Up: Case Study: System Call Previous: Applying compiler optimizations

Looped multi-calls.

The looped multi-call is a variant of the basic multi-call mechanism that repeats the multi-call sequence a specific number of times. It is applicable in the situation where, after other transformations have been applied, the entire body of a loop consists of a single multi-call. In this case, the number of boundary crossings can be reduced to one rather than one per iteration by moving the loop into the kernel. For example, in the copy program, the entire loop can be moved into the kernel using the looped multi-call construct once the write-read sequence is replaced by a multi-call. This optimization is actually a simple extension of traditional loop invariant motion [1] applied across address spaces.

Mohan Rajagopalan 2003-06-16