Skip to main content

Overview of Metaheuristics Methods in Compilation

  • Conference paper
  • 1450 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 3789))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aho, A.V., Ullman, J.D.: Principles of Compiler Design. Addison-Wesley, Reading (1978)

    MATH  Google Scholar 

  2. Hennessy, J.L., Patterson, D.A.: Computer Architecture a Quantitative Approach, 2nd edn. Morgan Kaufmann Publishers, San Francisco (1996)

    MATH  Google Scholar 

  3. Davis, L.: Handbook of Genetic Algorithms. Van Nostrand Reinhold, New York (1991)

    Google Scholar 

  4. Appel, A.W.: Modern Compiler Implementation in ML: Basic Techniques. Cambridge University Press, Cambridge (1997)

    Google Scholar 

  5. Praet, J.V., Goosens, G., Lanner, D., Man, H.D., Synthesis, H.: Instruction set definition and instruction selection for asip (1994)

    Google Scholar 

  6. 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)

    Article  Google Scholar 

  7. Garey, M., Johnson, D.: Computers and Intractability: A Guide to the Theory of NP-Completeness. W.H. Freman and Company, New York (1979)

    MATH  Google Scholar 

  8. Bernstein, D., Rodeh, M., Gertner, I.: On the complexity of scheduling problems for parallel/pipelined machines. IEEE Trans. Comput. 38, 1308–1313 (1989)

    Article  MathSciNet  Google Scholar 

  9. Landskov, D., Davidson, S., Shriver, B., Mallett, P.W.: Local microcode compaction techniques. ACM Comput. Surv. 12, 261–294 (1980)

    Article  Google Scholar 

  10. Beaty, S.J.: Genetic Algorithms Versus Tabu Search for Instruction Scheduling. In: International Conference on Neural Network and Genetic Algorithms, pp. 496–501 (1993)

    Google Scholar 

  11. Sweany, P., Beaty, S.: Instruction Scheduling Using Simulated Annealing. In: 3rd International Conference on Massively Parallel Computing Systems (1998)

    Google Scholar 

  12. Gong, W., Wang, R.K.G.: Instruction Scheduling Using MAX- MIN Ant Colony Optimization. In: Great Lakes Symposium on Very Large Scale Integration (2005)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. Poletto, M., Sarkar, V.: Linear Scan Register Allocation. ACM Transactions on Programming Languages and Systems (TOPLAS), 895–913 (1999)

    Google Scholar 

  15. 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)

    Chapter  Google Scholar 

  16. Stallman: GNU C User and Porting Guide. Technical report, MIT (1991)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. Nisbet, A.P.: GAPS: Genetic Algorithm Optimised Parallelisation. In: 7th Workshop on Compilers for Parallel Computing, pp. 172–183 (1998)

    Google Scholar 

  19. 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)

    Google Scholar 

  20. Beaty, S.J.: Genetic Algorithms and Instruction Scheduling. In: 24th Annual International Symposium on Microarchitecture, pp. 206–211 (1991)

    Google Scholar 

  21. Kri, F., Feeley, M.: Genetic Instruction Scheduling and Register Allocation. In: XXIV International Conference of the Chilean Computer Science Society, pp. 76–83 (2004)

    Google Scholar 

  22. 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)

    Chapter  Google Scholar 

  23. 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)

    Google Scholar 

  24. Baez, M., Kri, F.: Inlining de funciones con algoritmos genéticos. In: Workshop de Inteligencia Artificial, Jornadas Chilenas de Computación (2004)

    Google Scholar 

  25. 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)

    Chapter  Google Scholar 

  26. Ladd, S.R.: Acovea: Analysis of compiler options via evolutionary algorithm (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics