• DocumentCode
    3355109
  • Title

    Adaptive online context-sensitive inlining

  • Author

    Hazelwood, Kim ; Grove, David

  • Author_Institution
    Harvard Univ., Cambridge, MA, USA
  • fYear
    2003
  • fDate
    23-26 March 2003
  • Firstpage
    253
  • Lastpage
    264
  • Abstract
    As current trends in software development move toward more complex object-oriented programming, inlining has become a vital optimization that provides substantial performance improvements to C++ and Java programs. Yet, the aggressiveness of the inlining algorithm must be carefully monitored to effectively balance performance and code size. The state-of-the-art is to use profile information (associated with call edges) to guide inlining decisions. In the presence of virtual method calls, profile information for one call edge may not be sufficient for making effectual inlining decisions. Therefore, we explore the use of profiling data with additional levels of context sensitivity. In addition to exploring fixed levels of context sensitivity, we explore several adaptive schemes that attempt to find the ideal degree of context sensitivity for each call site. Our techniques are evaluated on the basis of runtime performance, code size and dynamic compilation time. On average, we found that with minimal impact on performance (+/-1%) context sensitivity can enable 10% reductions in compiled code space and compile time. Performance on individual programs varied from -4.2% to 5.3% while reductions in compile time and code space of up to 33.0% and 56.7% respectively were obtained.
  • Keywords
    object-oriented programming; optimising compilers; program diagnostics; C++; Java programs; adaptive online context-sensitive inlining; adaptive schemes; call edge; call edges; code size; compiled code space; complex object-oriented programming; context sensitivity; dynamic compilation time; inlining algorithm; inlining decisions; performance improvements; profile information; profiling data; runtime performance; software development; state-of-the-art; virtual method calls; Adaptive systems; Cost function; Decision making; Degradation; Dynamic compiler; History; Java; Object oriented programming; Runtime; Virtual machining;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Code Generation and Optimization, 2003. CGO 2003. International Symposium on
  • Print_ISBN
    0-7695-1913-X
  • Type

    conf

  • DOI
    10.1109/CGO.2003.1191550
  • Filename
    1191550