DLX compiler duo C compiler for the dual core DLX microprocessor - Jabat, Shiela Marie U.
Multicore technology ideally, makes a program run faster because there are more engines running it. However, this is limited by the capability of the software application or compiler running in the processor. In order to exploit the potential of the parallel processing, software and compilers must be explicitly written to utilize the available cores in the multicore architecture to automatically parallelize the program codes. To realize the potential of parallel processing both hardware and software support must be established. The Intel Microprocessor's Laboratory has completed a dual core capable DLX microprocessor (DCCDLX). To be able to further improve the microprocessor's design, an efficient compiler is needed. In response to this, the lab developed a compiler which mainly focused on the back end. So an existing compiler, lcc, was used for the front end. Lcc's design basically translates the source code per basic block which limited the optimization and parallelization that can be done. The compiler was able to perform local optimizations; however its design did not allow global optimization and loop analysis which has the most potential for parallelization. Therefore the project's aim was to develop a complete compiler which has an optimized and efficient front end that allows global analysis for further optimization and parallelization. The project focused in developing a new front end for the DCCDLX microprocessor. Control and data flow analyses were used in order to perform global code optimizations. Different algorithms to analyze each basic block and loops were done which helped to further improve the parallelization of the previously developed back end for DCCDLX.