skip to main content
10.1145/258915.258918acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free Access

Automatic inline allocation of objects

Authors Info & Claims
Published:01 May 1997Publication History

ABSTRACT

Object-oriented languages like Java and Smalltalk provide a uniform object model that simplifies programming by providing a consistent, abstract model of object behavior. But direct implementations introduce overhead, removal of which requires aggressive implementation techniques (e.g. type inference, function specialization); in this paper, we introduce object inlining, an optimization that automatically inline allocates objects within containers (as is done by hand in C++) within a uniform model. We present our technique, which includes novel program analyses that track how inlinable objects are used throughout the program. We evaluated object inlining on several object-oriented benchmarks. It produces performance up to three times as fast as a dynamic model without inlining and roughly equal to that of manually-inlined codes.

References

  1. 1.O. Agesen, J. Palsberg, and M. Schwartzbach. Type inference of SELF' Analysis of objects with dynamic and multiple inheritance. In Proceedings of ECOOP '93, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.Jennifer M. Anderson, Saman P. Amarasinghe, and Monica S. Lam. Data and computation transformations for multiprocessors. In Proceedings of Fifth Symposium on Principles and Practice of Parallel Programming, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.Apple Computer inc. The NewtonScript Program. ruing Language, December 1995. Available online from ftp://ftpdev.info.apple.com/Developer_Services/ Newton.Development/DOCS_PDF/NSCRIPTR.ZIP.Google ScholarGoogle Scholar
  4. 4.A. Black, N. Hutchinson, E. Jul, and H. Levy. Object structure in the emerald system. In Proceedings of OOPSLA '86, pag~ 78-86. ACM, September 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.Brad Calder, Dirk Grunwald, and Benjamin Zorn. Quantifying differences between C and C++ programs. Technical Report CU-CS-698-94, University of Colorado, Boulder, January 1994.Google ScholarGoogle Scholar
  6. 6.C. Chambers and D. Ungar. Iterative type analysis and extended message splitting. In Proceedings of the SIG- PLAN Conference on Programming Language Design and Implementation, pages 150-60, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.Craig Chambers. The Cecil language: Specification and rationale, version 2.0. Technical report, Department of Computer Science and Engineering, University of Washington, Seattle, Washington, March 1995.Google ScholarGoogle Scholar
  8. 8.Andrew Chien, Julian Dolby, Bishwaroop Ganguly, Vijay Karamcheti, and Xingbin Zhang. Supporting high level programming with high performance: The illinois concert system. In Proceedings of the Second Inter. national Workshop on High-level Parallel Programming Models and Supportive Environments, April 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.Andrew A. Chien, Uday S. Reddy, John Plevyak, and Julian Dolby. ICC++ - a C++ dialect for highperformance parallel computation. In Proceedings of the ~nd International Symposium on Object Technologies for Advanced Software, March 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.Jeffrey Dean, Craig Chambers, and David Grove. Selective specialization for object-oriented languages. In Proceedings of the A CM SIGPLAN '95 Conference on Progrararnin g Language Design and Implementation, pages 93-102, La Jolla, CA, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.Margaret A. Ellis and Bjarne Stroustrup. The Annotated C-t-4- Reference Manual Addison-Wesley, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.Tim Freeman and Frank Pfenning. Refinement types for ml. In Proceedings of the 1991 A CM SIGPLAN Conference on Programming Language Design and Implementation, June 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.Adele Goldberg and David Robson. Smalltalk-80: The language and its implementation. Addison-Wesley, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.H. Mossenbock.Object-Oriented Programming in Oberon-2. Springer-Verlag, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.Cordelia Hall, Simon L. Peyton-Jones, and Patrick M. Sansom. Functional Programming, Glasgow 1994, chapter Unboxing Using Specialization. Workshops in Computing Science. Springer-Verlag, 1995.Google ScholarGoogle Scholar
  16. 16.Urs HSlzle, Craig Chambers, and David Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In ECOOP'91 Conference Proceedings. Springer-Verlag, 1991. Lecture Notes in Computer Science 512. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.Urs HSlzle and David Ungar. Optimizing dynamicallydispatched calls with run-time type feedback. In Proceedings of the 199j ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 326-336, June 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.Norman C. Hutchinson. Emerald: An Object-Based Language for Distributed Programming. PhD thesis, University of Washington, Department of Computer Science, Seattle, Washington, 1987. TR-87-01-01. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.Xavier Leroy. Unboxed objects and polymorphic typing. In Proceedings of the 19th Symposium on the Principles of Programming Languages, pages 177-188, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.N. Wirth and J. Gutknecht. Project Oberon: The Design of an Operating System and Compiler. Addison Wesley, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.J. Palsberg and M. Schwartzbach. Object-oriented type inference. In Proceedings of OOPSLA '91, pages 146- 61, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.John Plevyak. Optimization of Object-Orzented and Concurrent Programs. PhD thesis, University of Illinois at Urbana-Champaign, Urbana, Illinois, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.John Plevyak and Andrew A. Chien. Precise concrete type inference of object-oriented programs. In Proceedings of OOPSLA '9d, Object-Oriented Programming Systems, Languages and Architectures, pages 324-340, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.John Plevyak and Andrew A. Chien. Type directed cloning for object-oriented programs. In Proceedings of the Workshop for Languages and Compilers for Parallel Computing, pages 566-580, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.Zhong Shao, John Ill. Reppy, and Andrew W. Appel. Unrolling lists. In A CM Conference on Lisp and Functional Programming, June 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26.Olin Shivers. Topics in Advanced Language Imp&men. tation~ chapter Data-Flow Analysis and Type Recovery in Scheme, pages 47-88. MIT Press, Cambridge, MA, 1991.Google ScholarGoogle Scholar
  27. 27.Sun Microsystems Computer Corporation. The Java Language Specification, March 1995. Available at ht tp://j ava. sun. corn/1.0alp ha2/doc }java-whitepaper. ps.Google ScholarGoogle Scholar
  28. 28.Gregory V. Wilson and Paul Lu, editors. Parallel Programming Using C-t-4-. MIT Press, 1995.Google ScholarGoogle Scholar
  29. 29.Micheal E. Wolf and Monica S. Lam. A data locality optimizing algorithm. In Proceedings of the 1991 A CM SIGPLAN Conference on Programming Language Design and Implementation, June 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Automatic inline allocation of objects

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
              May 1997
              365 pages
              ISBN:0897919076
              DOI:10.1145/258915

              Copyright © 1997 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 May 1997

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              PLDI '97 Paper Acceptance Rate31of158submissions,20%Overall Acceptance Rate406of2,067submissions,20%

              Upcoming Conference

              PLDI '24

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader