GURU : A retargetable cfg-based program reorganizer
Mazin Ramadan and Devidas Gupta
Department of Computer Science
Clemson, SC 29634
We present a program reorganization framework that permits the design, development, implementation and evaluation of cache optimizations for program reorganization. The framework is supported by Guru, a program reorganization tool. Reorganization techniques can be implemented and interfaced to Guru in a high-level programming language or a script language. The framework is language independent and can be ported to different architectures. We also present results from experimentation using Guru.
In recent years, caches have begun to play an increasingly important role in program performance. As processor speed increases at a faster pace than memory speed, software (compiler) driven cache optimizations provide an opportunity to improve program performance. New techniques are being developed for providing better cache performance and the evaluation of these techniques has become increasingly important. To evaluate the techniques a researcher must build a set of tools. We present Guru1 - a retargetable cfg-based program reorganizer that obviates the need for the researcher to develop tools for cache optimizations. Guru provides the researcher with a flexible tool that can be used to profile and reorganize programs, allowing the researcher to focus on the optimizations rather than the means to optimize.
There are tools available to instrument and profile programs[8, 11, 14, 15, 16], and obtain information that might aid cache optimizations. But the tools lack a supporting environment that facilitates the design, implementation and evaluation of optimization techniques using the profiled information. Cache optimizations are often architecture dependent. A particular optimization may provide good performance improvements on a specific architecture but may degrade performance on a different architecture. The optimizations may 1Guru: pronounced - goo-roo; meaning - from darkness to light. Guru leads the researcher toward better optimizations.