Skip to main content

The Use of Traces for Inlining in Java Programs

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3602))

Abstract

We explore the effectiveness of using traces in optimization. We build a trace collection system for the Jikes Research Virtual Machine and create traces based on the execution of the SPECjvm98 and Java Grande benchmarks. We evaluate the use of traces for inlining in Jikes, and find that the use of traces leads to a decrease in execution time of 10%, when compared to providing similar information from Jikes’s adaptive system from a previous execution. This increase in performance is achieved at the expense of a code expansion of 47%. Further, this performance is slightly better than that achieved when using a greedy algorithm. We conclude that traces may be used effectively to perform inlining, although code expansion and trace collection overhead must be addressed.

This research was supported in part by NSERC.

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   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.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. Arnold, M., et al.: A comparative study of static and profile-based heuristics for inlining. In: Proceedings of SIGPLAN Workshop on Dynamic and Adaptive Compilation and Optimization, pp. 52–64 (2000)

    Google Scholar 

  2. Whaley, J.: Partial method compilation using dynamic profile information. In: Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), pp. 166–179 (2001)

    Google Scholar 

  3. Suganuma, T., Yasue, T., Nakatani, T.: An empirical study of method inlining for a Java Just-In-Time compiler. In: Proceedings of USENIX 2nd Java Virtual Machine Research and Technology Symposium (JVM 2002), pp. 91–104 (2002)

    Google Scholar 

  4. Bala, V., Duesterwald, E., Banerjia, S.: Transparent dynamic optimization: The design and implementation of dynamo. HP Laboratories Technical Report HPL1999 78 (1999)

    Google Scholar 

  5. Fisher, J.A.: Trace scheduling: A technique for global microcode compaction. IEEE Transactions on Computers C-30, 478–490 (1981)

    Article  Google Scholar 

  6. Lowney, P.G.: The multiflow trace scheduling compiler. The Journal of Supercomputing 7, 51–142 (1993)

    Article  Google Scholar 

  7. Bala, V., Duesterwald, E., Banerjia, S.: Dynamo: a transparent dynamic optimization system. ACM SIGPLAN Notices 35, 1–12 (2000)

    Article  Google Scholar 

  8. Arnold, M., Fink, S., Grove, D., Hind, M., Sweeney, P.F.: Adaptive optimization in the Jalapeño JVM. ACM SIGPLAN Notices 35, 47–65 (2000)

    Article  Google Scholar 

  9. Bradel, B.J.: The use of traces in optimization. Master’s thesis, University of Toronto (2004)

    Google Scholar 

  10. Hazelwood, K., Grove, D.: Adaptive online context-sensitive inlining. In: Proceedings of International Symposium on Code Generation and Optimization, pp. 253–264 (2003)

    Google Scholar 

  11. Doyle, P.: Jupiter: A modular and extensible Java virtual machine framework. Master’s thesis, University of Toronto (2002)

    Google Scholar 

  12. Ellis, J.R.: A Compiler for VLIW Architectures. PhD thesis, Yale University (1984)

    Google Scholar 

  13. Howland, M.A., Mueller, R.A., Sweany, P.H.: Trace scheduling optimization in a retargetable microcode compiler. In: Proceedings of the 20th Microprogramming Workshop (MICRO-20), pp. 106–114 (1987)

    Google Scholar 

  14. Chang, P.P., Hwu, W.-M.W.: Trace selection for compiling large c application programs to microcode. In: Proceedings of the 21st Annual Workshop on Microprogramming and Microarchitecture, pp. 21–29 (1988)

    Google Scholar 

  15. Wen-mei, W., Hwu, W.-M.W., et al.: The superblock: An effective technique for vliw and superscalar compilation. Journal of Supercomputing 7, 229–248 (1993)

    Article  Google Scholar 

  16. Bruening, D., Duesterwald, E., Amarasinghe, S.: Design and implementation of a dynamic optimization framework for windows. In: Proceedings of 4th ACM Workshop on Feedback-Directed and Dynamic Optimization, FDDO-4 (2001)

    Google Scholar 

  17. Bruening, D., Garnett, T., Amarasinghe, S.: An infrastructure for adaptive dynamic optimization. In: Proceedings of the international symposium on Code generation and optimization, pp. 265–275 (2003)

    Google Scholar 

  18. Chen, W.K., Lerner, S., Chaiken, R., Gillies, D.M.: Mojo: A dynamic optimization system. In: Proceedings of 3rd ACM Workshop on Feedback-Directed and Dynamic Optimization, FDDO-3 (2000)

    Google Scholar 

  19. Krintz, C.: Coupling on-line and off-line profile information to improve program performance. In: Proceedings of International Symposium on Code Generation and Optimization, pp. 69–78 (2003)

    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

Bradel, B.J., Abdelrahman, T.S. (2005). The Use of Traces for Inlining in Java Programs. In: Eigenmann, R., Li, Z., Midkiff, S.P. (eds) Languages and Compilers for High Performance Computing. LCPC 2004. Lecture Notes in Computer Science, vol 3602. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11532378_14

Download citation

  • DOI: https://doi.org/10.1007/11532378_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-28009-5

  • Online ISBN: 978-3-540-31813-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics