Proceedings of the third international conference on Genetic algorithms

The traveling saleman and sequence scheduling quality solution using genetic edge recombination. A study of permutation crossover operators on the traveling salesman problem. example of using pseudooelds to eliminate version shuuing in horizontal code compaction. race scheduling optimization in a retargetable microcode compiler.cessing: A smart compiler and a dumb machine.man. A vliw architecture for a trace scheduling compiler. IEEE Trans-117 considered during instruction scheduling. Using methods suggested here, this complexity m a y be reduced or bounded by a c hosen amount of time. 3. The search capabilities of genetic algorithms could be used to generate better weightings on the list scheduling algorithm. As these will vary on a per-architecture basis, a suite of typical" programs could be compiled while changing the weights in the discriminating polynomial selection function. Those weights found to produce good results for the current machineeprogram combination could then be used for any program on that machine. This would also provide feedback to the machine designers as to which features have a direct bearing upon performance and which do not. Closing the loop that exists between hardware and software design will increase the speed of both. 6.4 Summary In summary, previous methods of local instruction scheduling were examined and found lacking. Several new approaches were discovered and developed to address speciic deeciencies uncovered. A wholly new method, applying genetic algorithms, was explored and found beneecial. The increasing complexity of machines mandate the strengthing of instruction scheduling; genetic algorithms are a method of achieving this. 116 6.3 Directions With the framework provided by this work, many i n teresting directions for future work exist. Three follow. 1. Software pipelining was not considered. Its ability to improve repetitive c o d e structure is impressive. Loops are important structures to optimize as more execution time will be spent in them compared to straight line code. Previous methods have used an unrolling technique combined with local compaction SDX86, MSDP86. Because of the power of the scheduling methods developed here, their use on critical portions of code could create enhanced run-time performance for a wide variety of code. Given a choice, critical sections" of code should be emphasized in the optimization process at the expense of less critical sections of code. The range of scheduling mechanisms presented herein allows this type of exibility during code generation. For example, another parameter used to decide the type of scheduling performed on a …