An Interactive Compiler Development System

AbstractAn interactive compilation environment has beendeveloped to facilitate the rapid prototyping of machinedependent code optimization strategies for the DecoupledProcessor Design project under development at Universityof California, Davis.This paper describes an interactivegraphical optimizer based on the Tcl and Tk libraries. Anoverviewofthe optimizer is presented along with somemotivation for the unique features it provides.1. IntroductionThe development of high performance architecturesrequires considerable interaction between the architecturalspecification and the machine specific optimizations per-formed to exploit the capabilities of the architecture.Theseoptimizations often expand on more general techniquesfound in current compilers [Stal].However, few tools existto aid in the integration of newand existing optimizationtechniques. Wehav e de ve loped anInteractive GraphicalOptimizer (IaGO)to facilitate the construction of a highperformance code optimizer for newtarget architectures.This system allows for much greater control of the applica-tion of optimization techniques by incorporating a Tcl basedscript language into the code optimizer.Inaddition, the useof Tk to generate an interactive interface between the com-piler developer and the internals of the optimizer allows fornewcode optimization strategies to be applied on the fly .2. MotivationNewhigh performance architectures are currentlybeing developed at numerous university and corporateresearch centers. At UC Davis, we are investigating newarchitectural approaches that exploit the implicitInstruc-tion-Level Parallelism (ILP)found in conventional sequen-tial programs(in our case,Csource programs).Theincreased capacity found in these newarchitectures requiresmore sophistication on the part of the compiler to realize animprovement in performance.Generally,the more complexthe architecture, the less applicable current compiler tech-nology becomes in the generation of efficient code.Wehave dev e loped a set of tools to facilitate the design andanalysis of theMultiple Instruction Stream Computer(MISC)[TyFP92] architecture and simplify the constructionof newoptimization strategies suited to the uniquecapabilities of this architecture. This paper briefly discussesone of these tools, IaGO, which provides an interactivecompilation environment used to develop prototype codeoptimization strategies for MISC and other newarchitec-tures.The MISC architecture uses multiple asynchronousprocessing elements to separate a program into instructionstreams that can be executed in parallel.UnlikeotherMIMD