[net.lang] Optimized Jumps in High-level Languages

lodman@ncr-sd.UUCP (Mike Lodman) (10/30/86)

 
        We are currently looking for a high level  language  that 
        contains  constructs  which optimize jumps at the machine 
        code level.  We are also interested in modifying  "C"  to 
        include such constructs.  
 
        As an example,
 
        if (A>B) /*mostly*/ {  }
        else {  }
 
        or 
 
        if (A>B) {  }
        else /*mostly*/ {  }
 
        with  the /*mostly*/ indicating which flow the programmer 
        thinks would occur more often.  
 
        We may then optimize the code to use the various  delayed 
        and  immediate  jumps  which the chip supports to get the 
        best results most of  the  time,  without  going  to  the 
        assembly level of programming.  
 
        I  would  appreciate  any  help  or  suggestions  on this 
        subject.  
 
        Michael Lodman
        Advanced Development and Systems Architecture
        NCR Corporation E&M San Diego
        (619) 485-3335
 
        ARPA : ncr-sd!lodman@sdcsvax.edu
        CompuServe : 76367,1745
 

segall@caip.RUTGERS.EDU (Ed Segall) (11/03/86)

This sounds like trace scheduling, where the compiler uses information
about the likelihood of the direction of branches to optimize use
of pipelines, parallelism (e.g. in a microcoded machine), and perhaps
other performance enhancers. John Fisher, who was at Yale until a 
couple years ago, wrote a trace scheduling compiler for VLIW machines
(Very Long Instruction Word - i.e. parallel machines controlled with 
lots of bits, such as horizontally microprogrammed machines). He wrote
a book on it called something like "Bulldog - a Trace Scheduling
Compiler for VLIW Machines," which is published by MIT Press. There
are also Yale technical reports on the work. I've also seen a
reference to trace scheduling in VLSI design. I don't remember the
book, but I'm almost certain that it is a Springer-Verlag monograph,
and that it has an introduction Edsger Dijkstra (sp?). Or maybe the
intro was by Hoare. Anyway, it was somebody famous for being very
insistant about formality. I think it was Dijkstra, and I think the
work was done in a Northern European country, which would fit. How's
that for free association? 

Have fun,

Ed Segall