Abstract
Compilers are nowadays fundamental tools for the development of any kind of application. However, their task gets increasingly difficult due to the constant increase in the complexity of modern computer architecture, as well as to the increased requirements imposed upon programming languages by the great diversity of applications handled at present. In the compilation process several optimization problems must be solved, some of them belonging to the NP-Hard class. The quality of the solution found for these problems has direct impact over the quality of the generated object code. To solve them, compilers do it locally through naive heuristics which might consequently lead to solutions that are far from optimal. Knowing that metaheuristics methods have recently been used massively and successfully to solve combinatorial optimization problems, similar performance in the problems found in the compilation process can be expected beforehand. Following this line of reasoning, such problems are presented in this paper and the potential use of metaheuristics techniques to find their solutions is analyzed. A review is also made of the work that has been done in this field, and finally a proposal is made of the road that this development should follow.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aho, A.V., Ullman, J.D.: Principles of Compiler Design. Addison-Wesley, Reading (1978)
Hennessy, J.L., Patterson, D.A.: Computer Architecture a Quantitative Approach, 2nd edn. Morgan Kaufmann Publishers, San Francisco (1996)
Davis, L.: Handbook of Genetic Algorithms. Van Nostrand Reinhold, New York (1991)
Appel, A.W.: Modern Compiler Implementation in ML: Basic Techniques. Cambridge University Press, Cambridge (1997)
Praet, J.V., Goosens, G., Lanner, D., Man, H.D., Synthesis, H.: Instruction set definition and instruction selection for asip (1994)
Aho, A.V., Ganapathi, M., Tjiang, S.W.K.: Code generation using tree matching and dynamic programming. ACM Trans. Program. Lang. Syst. 11(4), 491–516 (1989)
Garey, M., Johnson, D.: Computers and Intractability: A Guide to the Theory of NP-Completeness. W.H. Freman and Company, New York (1979)
Bernstein, D., Rodeh, M., Gertner, I.: On the complexity of scheduling problems for parallel/pipelined machines. IEEE Trans. Comput. 38, 1308–1313 (1989)
Landskov, D., Davidson, S., Shriver, B., Mallett, P.W.: Local microcode compaction techniques. ACM Comput. Surv. 12, 261–294 (1980)
Beaty, S.J.: Genetic Algorithms Versus Tabu Search for Instruction Scheduling. In: International Conference on Neural Network and Genetic Algorithms, pp. 496–501 (1993)
Sweany, P., Beaty, S.: Instruction Scheduling Using Simulated Annealing. In: 3rd International Conference on Massively Parallel Computing Systems (1998)
Gong, W., Wang, R.K.G.: Instruction Scheduling Using MAX- MIN Ant Colony Optimization. In: Great Lakes Symposium on Very Large Scale Integration (2005)
Chaitin, G.J., Auslander, M.A., Chandra, A.K., Cocke, J., Hopkins, M.E., Markstein, P.W.: Register Allocation Via Coloring. Computer Languages, 47–57 (1982)
Poletto, M., Sarkar, V.: Linear Scan Register Allocation. ACM Transactions on Programming Languages and Systems (TOPLAS), 895–913 (1999)
Johansson, E., Sagonas, K.F.: Linear scan register allocation in a high-performance erlang compiler. In: Krishnamurthi, S., Ramakrishnan, C.R. (eds.) PADL 2002. LNCS, vol. 2257, pp. 101–119. Springer, Heidelberg (2002)
Stallman: GNU C User and Porting Guide. Technical report, MIT (1991)
Williams, K., William, S.: Genetic Compilers: A New Technique for Automatic Parallelisation. In: 2nd European School of Parallel Programming Environments (ESPPE 1996), pp. 27–30 (1996)
Nisbet, A.P.: GAPS: Genetic Algorithm Optimised Parallelisation. In: 7th Workshop on Compilers for Parallel Computing, pp. 172–183 (1998)
Beaty, S.J.: Genetic Algorithms for Instruction Sequencing and Scheduling. In: Workshop on Computer Architecture Technology and Formalism for Computer Science Research and Applications (1992)
Beaty, S.J.: Genetic Algorithms and Instruction Scheduling. In: 24th Annual International Symposium on Microarchitecture, pp. 206–211 (1991)
Kri, F., Feeley, M.: Genetic Instruction Scheduling and Register Allocation. In: XXIV International Conference of the Chilean Computer Science Society, pp. 76–83 (2004)
Stephenson, M., O’Reilly, U.M., Martin, M.C., Amarasinghe, S.: Genetic programming applied to compiler heuristic optimization. In: Ryan, C., Soule, T., Keijzer, M., Tsang, E., Poli, R., Costa, E. (eds.) EuroGP 2003. LNCS, vol. 2610, pp. 238–253. Springer, Heidelberg (2003)
Cooper, K.D., Schielke, P.J., Subramanian, D.: Optimizing for reduced code space using genetic algorithms. In: Workshop on Languages, Compilers, and Tools for Embedded Systems, pp. 1–9 (1999)
Baez, M., Kri, F.: Inlining de funciones con algoritmos genéticos. In: Workshop de Inteligencia Artificial, Jornadas Chilenas de Computación (2004)
Demiroz, B., Topcuoglu, H., Kandemir, M.: A hybrid evolutionary algorithm for solving the register allocation problem. In: Gottlieb, J., Raidl, G.R. (eds.) EvoCOP 2004. LNCS, vol. 3004, pp. 62–71. Springer, Heidelberg (2004)
Ladd, S.R.: Acovea: Analysis of compiler options via evolutionary algorithm (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kri, F., Gómez, C., Caro, P. (2005). Overview of Metaheuristics Methods in Compilation. In: Gelbukh, A., de Albornoz, Á., Terashima-Marín, H. (eds) MICAI 2005: Advances in Artificial Intelligence. MICAI 2005. Lecture Notes in Computer Science(), vol 3789. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11579427_49
Download citation
DOI: https://doi.org/10.1007/11579427_49
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29896-0
Online ISBN: 978-3-540-31653-4
eBook Packages: Computer ScienceComputer Science (R0)