Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems

Report on the Workshop ICOOOLPS 2007 at ECOOP 2007
  • Olivier Zendra
  • Eric Jul
  • Roland Ducournau
  • Etienne Gagnon
  • Richard Jones
  • Chandra Krintz
  • Philippe Mulet
  • Jan Vitek
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4906)

Abstract

ICOOOLPS’2007 was the second edition of the ECOOP-ICOOOLPS workshop. ICOOOLPS intends to bring researchers and practitioners both from academia and industry together, with a spirit of openness, to try and identify and begin to address the numerous and very varied issues of optimization. After a first successful edition, this second one put a stronger emphasis on exchanges and discussions amongst the participants, progressing on the bases set last year in Nantes.

The workshop attendance was a success, since the 30-people limit we had set was reached about 2 weeks before the workshop itself. Some of the discussions (e.g .annotations) were so successful that they would required even more time than we were able to dedicate to them. That’s one area we plan to further improve for the next edition.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Absar, M.J., Catthoor, F.: Compiler-based approach for exploiting scratch-pad in presence of irregular array access. In: DATE, pp. 1162–1167 (2005)Google Scholar
  2. 2.
    Amme, W., Dalton, N., Franz, M., von Ronne, J.: Safetsa: A type safe and referentially secure mobile-code representation based on static single assignment form. In: PLDI, pp. 137–147 (2001)Google Scholar
  3. 3.
    Angiolini, E., Benini, L., Caprara, A.: Polynomial-time algorithm for on-chip scratchpad memory partitioning. In: CASES (2003)Google Scholar
  4. 4.
    Arnold, M., Fink, S., Grove, D., Hind, M., Sweeney, P.F.: Adaptive optimization in the jalapeno jvm. In: OOPSLA, pp. 47–65 (2000)Google Scholar
  5. 5.
    Arnold, M., Fink, S.J., Grove, D., Hind, M., Sweeney, P.F.: A survey of adaptive optimization in virtual machines. Proceedings of the IEEE 93(2), 449–466 (2005)CrossRefGoogle Scholar
  6. 6.
    Athavale, R., Vijaykrishnan, N., Kandemir, M.T., Irwin, M.J.: Influence of array allocation mechanisms on memory system energy. In: IPDPS, p. 3 (2001)Google Scholar
  7. 7.
    Avissar, O., Barua, R., Stewart, D.: An optimal memory allocation scheme for scratch-pad-based embedded systems. Transaction on Embedded Computing Systems 1(1), 6–26 (2002)CrossRefGoogle Scholar
  8. 8.
    Bacon, D.F., Cheng, P., Rajan, V.T.: A real-time garbage collector with low overhead and consistent utilization. In: POPL, pp. 285–298 (2003)Google Scholar
  9. 9.
    Bacon, D.F., Konuru, R.B., Murthy, C., Serrano, M.J.: Thin locks: Featherweight synchronization for java. In: PLDI, pp. 258–268 (1998)Google Scholar
  10. 10.
    Banakar, R., Steinke, S., Lee, B.-S., Balakrishnan, M., Marwedel, P.: Scratchpad memory: design alternative for cache on-chip memory in embedded systems. In: CODES, pp. 73–78. ACM Press, New York (2002)CrossRefGoogle Scholar
  11. 11.
    Baynes, K., Collins, C., Fiterman, E., Ganesh, B., Kohout, P., Smit, C., Zhang, T., Jacob, B.: The performance and energy consumption of three embedded real-time operating systems. In: CASES 2001. 4th Workshop on Compiler and Architecture Support for Embedded Systems, pp. 203–210 (2001)Google Scholar
  12. 12.
    Beers, M.Q., Stork, C., Franz, M.: Efficiently verifiable escape analysis. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, Springer, Heidelberg (2004)Google Scholar
  13. 13.
    Benini, L., Macii, A., Macii, E., Poncino, M.: Increasing Energy Efficiency of Embedded Systems by Application Specific Memory Hierarchy Generation. IEEE Design and Test 17(2), 74–85 (2000)CrossRefGoogle Scholar
  14. 14.
    Benini, L., De Micheli, G.: System-level power optimization: techniques and tools. IEEE Design and Test 17(2), 74–85 (2000)CrossRefGoogle Scholar
  15. 15.
    Blackburn, S., Jones, R., McKinley, K.S., Moss, J.E.B.: Beltway: Getting around garbage collection gridlock. In: PLDI, pp. 153–164 (2002)Google Scholar
  16. 16.
    Blackburn, S.M., Cheng, P., McKinley, K.S.: Oil and water? high performance garbage collection in java with mmtk. In: ICSE, pp. 137–146 (2004)Google Scholar
  17. 17.
    Blanchet, B.: Escape analysis for javatm: Theory and practice. ACM Trans. Program. Lang. Syst. 25(6), 713–775 (2003)CrossRefMathSciNetGoogle Scholar
  18. 18.
    Bollella, G., Gosling, J.: The real-time specification for java. IEEE Computer 33(6), 47–54 (2000)Google Scholar
  19. 19.
    Bruggeman, C., Waddell, O., Dybvig, R.K.: Representing control in the presence of one-shot continuations. In: PLDI, pp. 99–107 (1996)Google Scholar
  20. 20.
    Chambers, C., Ungar, D., Lee, E.: An efficient implementation of self a dynamically-typed object-oriented language based on prototypes. In: OOPSLA, pp. 49–70 (1989)Google Scholar
  21. 21.
    Cherem, S., Rugina, R.: Region analysis and transformation for java programs. In: ISMM, pp. 85–96 (2004)Google Scholar
  22. 22.
    Cofer, D.D., Rangarajan, M.: Formal modeling and analysis of advanced scheduling features in an avionics rtos. In: Sangiovanni-Vincentelli, A.L., Sifakis, J. (eds.) EMSOFT 2002. LNCS, vol. 2491, pp. 138–152. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  23. 23.
    Colnet, D., Coucaud, P., Zendra, O.: Compiler support to customize the mark and sweep algorithm. In: ISMM, pp. 154–165 (1998)Google Scholar
  24. 24.
    Delaluz, V., Kandemir, M., Vijaykrishnan, N., Irwin, M.J., Sivasubramaniam, A., Kolcu, I.: Compiler-directed array interleaving for reducing energy in multi-bank memories. In: ASP-DAC 2002. 2002 conference on Asia South Pacific design automation/VLSI Design, p. 288. IEEE Computer Society Press, Los Alamitos (2002)Google Scholar
  25. 25.
    Deters, M., Cytron, R.: Automated discovery of scoped memory regions for real-time java. In: MSP/ISMM, pp. 132–142 (2002)Google Scholar
  26. 26.
    Detlefs, D.: A hard look at hard real-time garbage collection. In: ISORC, pp. 23–32 (2004)Google Scholar
  27. 27.
    Dezani-Ciancaglini, M., Mostrous, D., Yoshida, N., Drossopoulou, S.: Session types for object-oriented languages. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 328–352. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  28. 28.
    Dominguez, A., Udayakumaran, S., Barua, R.: Heap data allocation to scratch-pad memory in embedded systems. Journal of Embedded Computing (JEC) 1(4) (2005)Google Scholar
  29. 29.
    Dwyer, M.B., Hatcliff, J.R., Ranganath, V.P.: Exploiting object escape and locking information in partial-order reductions for concurrent object-oriented programs. Formal Methods in System Design 25(2–3), 199–240 (2004)MATHCrossRefGoogle Scholar
  30. 30.
    Egger, B., Lee, J., Shin, H.: Scratchpad Memory Management for Portable Systems with a Memory Management Unit. In: EMSOFT (2006)Google Scholar
  31. 31.
    Ernst, E.: Family polymorphism. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 303–326. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  32. 32.
    Fitzgerald, R.P., Tarditi, D.: The case for profile-directed selection of garbage collectors. In: ISMM, pp. 111–120 (2000)Google Scholar
  33. 33.
    Ben Fradj, H., El Ouardighi, A., Belleudy, C., Auguin, M.: Energy aware memory architecture configuration.  33(3), 3–9 (2005)Google Scholar
  34. 34.
    Gagnon, E.M., Hendren, L.J.: Sablevm: A research framework for the efficient execution of java bytecode. In: Java Virtual Machine Research and Technology Symposium, pp. 27–40 (2001)Google Scholar
  35. 35.
    Graybill, R., Melhem, R.: Power aware computing. Kluwer Academic Publishers, Norwell (2002)Google Scholar
  36. 36.
    Grove, D., Chambers, C.: A framework for call graph construction algorithms. ACM Trans. Program. Lang. Syst. 23(6), 685–746 (2001)CrossRefGoogle Scholar
  37. 37.
    Hall, R.S.: A policy-driven class loader to support deployment in extensible frameworks. In: Component Deployment, pp. 81–96 (2004)Google Scholar
  38. 38.
    Hallnor, G., Reinhardt, S.K.: A fully associative software-managed cache design. In: ISCA (2000)Google Scholar
  39. 39.
    Harris, T.L.: Dynamic adaptive pre-tenuring. In: ISMM, pp. 127–136 (2000)Google Scholar
  40. 40.
    Higuera-Toledano, M.T., Issarny, V., Banâtre, M., Cabillic, G., Lesot, J.-P., Parain, F.: Region-based memory management for real-time java. In: ISORC, pp. 387–394 (2001)Google Scholar
  41. 41.
    Hirzel, M., Diwan, A., Hertz, M.: Connectivity-based garbage collection. In: OOPSLA, pp. 359–373 (2003)Google Scholar
  42. 42.
    Hiser, J.D., Davidson, J.W.: EMBARC: An Efficient Memory Bank Assignment Algorithm for Retargetable Compilers. In: LCTES, pp. 182–191. ACM Press, New York (2004)Google Scholar
  43. 43.
    Hölzle, U., Ungar, D.: Optimizing dynamically-dispatched calls with run-time type feedback. In: PLDI, pp. 326–336 (1994)Google Scholar
  44. 44.
    Hom, J., Kremer, U.: Inter-program optimizations for conserving disk energy. In: ISLPED, pp. 335–338. ACM Press, New York (2005)CrossRefGoogle Scholar
  45. 45.
    Jones, R., Lins, R.: Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, Chichester (1996)MATHGoogle Scholar
  46. 46.
    Kandemir, M., Vijaykrishnan, N., Irwin, M.J., Ye, W., Demirkiran, I.: Register relabeling: A post compilation technique for energy reduction. In: COLP (October 2000)Google Scholar
  47. 47.
    Krintz, C., Calder, B.: Using annotation to reduce dynamic optimization time. In: PLDI, pp. 156–167 (2001)Google Scholar
  48. 48.
    LCTES. Compilation Challenges for Network Processors. In: Compilers and Tools for Embedded Systems. Industrial Panel, ACM Conference on Languages (June 2003)Google Scholar
  49. 49.
    Lee, M., Tiwari, V., Malik, S., Fujita, M.: Power analysis and minimization techniques for embedded dsp software. IEEE Transactions on Very Large Scale Integration, 5 (March 1997)Google Scholar
  50. 50.
    Moreau, P.-E., Zendra, O.: GC2: a generational conservative garbage collector for the ATterm library. J. Log. Algebr. Program. 59(1–2), 5–34 (2004)MATHCrossRefGoogle Scholar
  51. 51.
    Muchnick., S.S. (ed.): Advanced compiler design and implementation. Morgan Kaufmann Publishers Inc., San Francisco (1997)Google Scholar
  52. 52.
    Nagpurkar, P., Krintz, C., Hind, M., Sweeney, P.F., Rajan, V.T.: Online phase detection algorithms. In: CGO, pp. 111–123 (2006)Google Scholar
  53. 53.
    Necula., G.C.: Proof-carrying code. In: POPL, pp. 106–119 (1997)Google Scholar
  54. 54.
    Nguyen, N., Dominguez, A., Barua, R.: Memory allocation for embedded systems with a compile-time-unknown scratch-pad size. In: CASES (2005)Google Scholar
  55. 55.
    Nystrom, N., Clarkson, M.R., Myers, A.C.: Polyglot: An extensible compiler framework for java. In: CC (2003)Google Scholar
  56. 56.
    Palacz, K., Vitek, J.: Java subtype tests in real-time. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 378–404. Springer, Heidelberg (2003)Google Scholar
  57. 57.
    Panda, P.R., Dutt, N., Nicolau, A.: Efficient utilization of scratch-pad memory in embedded processor applications. In: DATE (1997)Google Scholar
  58. 58.
    Pizlo, F., Fox, J.M., Holmes, D., Vitek, J.: Real-time java scoped memory: Design patterns and semantics. In: ISORC, pp. 101–110 (2004)Google Scholar
  59. 59.
    Poletti, F., Marchal, P., Atienza, D., Benini, L., Catthoor, F., Mendias, J.M.: An integrated hardware/software approach for run-time scratchpad management. In: DAC, pp. 238–243 (2004)Google Scholar
  60. 60.
    Privat, J., Ducournau, R.: Link-time static analysis for efficient separate compilation of object-oriented languages. In: PASTE, pp. 20–27 (2005)Google Scholar
  61. 61.
    Ravindran, R.A., Senger, R.M., Marsman, E.D., Dasika, G.S., Guthaus, M.R., Mahlke, S.A., Brown, R.B.: Partitioning variables across register windows to reduce spill code in a low-power processor. IEEE Transaction on Computers 54(8), 998–1012 (2005)CrossRefGoogle Scholar
  62. 62.
    Reynolds, J.C.: The discoveries of continuations. Lisp Symb. Comput. 6(3–4), 233–248 (1993)CrossRefGoogle Scholar
  63. 63.
    Siebert., F.: Hard real-time garbage-collection in the jamaica virtual machine. In: RTCSA, pp. 96–102 (1999)Google Scholar
  64. 64.
    Soman, S., Krintz, C., Bacon, D.F.: Dynamic selection of application-specific garbage collectors. In: ISMM, pp. 49–60 (2004)Google Scholar
  65. 65.
    Steinke, S., Grunwald, N., Wehmeyer, L., Banakar, R., Balakrishnan, M., Marwedel, P.: Reducing Energy Consumption by Dynamic Copying of Instructions onto Onchip Memory. In: ISSS (2002)Google Scholar
  66. 66.
    Steinke, S., Knauer, M., Wehmeyer, L., Marwedel, P.: An accurate and fine grain instruction-level energy model supporting software optimizations. In: Proc. of PATMOS (2001)Google Scholar
  67. 67.
    Suganuma, T., Yasue, T., Nakatani, T.: A region-based compilation technique for a java just-in-time compiler. In: PLDI, pp. 312–323. ACM Press, New York (2003)Google Scholar
  68. 68.
    Tallam, S., Gupta, R.: Bitwidth aware global register allocation. In: POPL, pp. 85–96 (2003)Google Scholar
  69. 69.
    Tofte, M., Talpin, J.-P.: Region-based memory management. Inf. Comput. 132(2), 109–176 (1997)MATHCrossRefMathSciNetGoogle Scholar
  70. 70.
    Udayakumaran, S., Dominguez, A., Barua, R.: Dynamic allocation for scratch-pad memory using compile-time decisions. Embedded Comput. Syst. 5(2), 472–511 (2006)CrossRefGoogle Scholar
  71. 71.
    Verma, M., Wehmeyer, L., Pyka, R., Marwedel, P., Benini, L.: Compilation and Simulation Tool Chain for Memory Aware Energy Optimizations. In: Vassiliadis, S., Wong, S., Hämäläinen, T.D. (eds.) SAMOS 2006. LNCS, vol. 4017, pp. 279–288. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  72. 72.
    Whaley, J., Rinard, M.C.: Compositional pointer and escape analysis for java programs. In: OOPSLA, pp. 187–206 (1999)Google Scholar
  73. 73.
    Woo, S., Yoon, J., Kim, J.: Low-power instruction encoding techniques. In: SOC Design Conference (2001)Google Scholar
  74. 74.
    Xie, F., Martonosi, M., Malik, S.: Intraprogram dynamic voltage scaling: Bounding opportunities with analytic modeling. ACM Transactions on Architure and Code Optimization (TACO) 1(3), 323–367 (2004)CrossRefGoogle Scholar
  75. 75.
    Zendra, O., Driesen, K.: Stress-testing control structures for dynamic dispatch in java. In: Java Virtual Machine Research and Technology Symposium, pp. 105–118 (2002)Google Scholar
  76. 76.
    Zhang, Y., Gupta, R.: Data compression transformations for dynamically allocated data structures. In: Horspool, R.N. (ed.) CC 2002 at ETAPS 2002. LNCS, vol. 2304, pp. 14–28. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  77. 77.
    Zhuang, X., Lau, C., Pande, S.: Storage assignment optimizations through variable coalescence for embedded processors. In: LCTES, pp. 220–231. ACM Press, New York (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Olivier Zendra
    • 1
  • Eric Jul
    • 2
  • Roland Ducournau
    • 3
  • Etienne Gagnon
    • 4
  • Richard Jones
    • 5
  • Chandra Krintz
    • 6
  • Philippe Mulet
    • 7
  • Jan Vitek
    • 8
  1. 1.INRIA-LORIAFrance
  2. 2.DIKUDenmark
  3. 3.LIRMMFrance
  4. 4.UQAMCanada
  5. 5.Univ. of KentUK
  6. 6.UCSBUSA
  7. 7.IBMFrance
  8. 8.Purdue UniversityUSA

Personalised recommendations