Duff's device

Duff's device n.  The most dramatic use yet seen of {fall
   through} in C, invented by Tom Duff when he was at Lucasfilm.
   Trying to {bum} all the instructions he could out of an inner
   loop that copied data serially onto an output port, he decided to
   unroll it.  He then realized that the unrolled version could be
   implemented by *interlacing* the structures of a switch and a
   loop:

        register n = (count + 7) / 8;      /* count > 0 assumed */

        switch (count % 8)
        {
        case 0:        do {  *to = *from++;
        case 7:              *to = *from++;
        case 6:              *to = *from++;
        case 5:              *to = *from++;
        case 4:              *to = *from++;
        case 3:              *to = *from++;
        case 2:              *to = *from++;
        case 1:              *to = *from++;
                           } while (--n > 0);
        }

   Shocking though it appears to all who encounter it for the first
   time, the device is actually perfectly valid, legal C.  C's default
   {fall through} in case statements has long been its most
   controversial single feature; Duff observed that "This code forms
   some sort of argument in that debate, but I'm not sure whether it's
   for or against."

   [For maximal obscurity, the outermost pair of braces above could be
   actually be removed -- GLS]



HTML Conversion by AG2HTML.pl V2.94618 & witbrock@cs.cmu.edu