• DocumentCode
    3234383
  • Title

    Function outlining and partial inlining

  • Author

    Zhao, Peng ; Amaral, José Nelson

  • Author_Institution
    IBM Toronto Lab., Markham, Ont., Canada
  • fYear
    2005
  • fDate
    24-27 Oct. 2005
  • Firstpage
    101
  • Lastpage
    108
  • Abstract
    Frequently invoked large functions are common in non-numeric applications. These large functions present challenges to modern compilers not only because they require more time and resources at compilation time, but also because they may prevent optimizations such as function inlining. However, usually it is the case that large portions of the code in a hot function fhost are executed much less frequently than fhost itself. Partial inlining is a natural solution to the problems caused by including cold code segments that are seldom executed into hot functions that are frequently invoked. When applying partial inlining, a compiler outlines cold statements from a hot function fhost. After outlining, fhost becomes smaller and thus can be easily inlined. This paper presents a framework for function outlining and partial inlining that includes several innovations: (1) an abstract-syntax-tree-based analysis and transformation to form cold regions for outlining; (2) a set of flexible heuristics to control the aggressiveness of function outlining; (3) several possible function outlining strategies; (4) alias agent, a new technique that overcomes negative side-effects of function outlining. With the proper strategy, partial inlining improves performance by up to 5.75%. A performance study also suggests that partial inlining is not effective on enabling more aggressive in-lining. The performance improvement from partial in-lining actually comes from better code placement and better code generation.
  • Keywords
    program compilers; abstract syntax tree; code generation; code placement; cold code segment; function inlining; function outlining; partial inlining; program compiler; Computer architecture; Costs; Councils; High performance computing; Laboratories; Optimizing compilers; Performance analysis; Protocols; Technological innovation;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Computer Architecture and High Performance Computing, 2005. SBAC-PAD 2005. 17th International Symposium on
  • ISSN
    1550-6533
  • Print_ISBN
    0-7695-2446-X
  • Type

    conf

  • DOI
    10.1109/CAHPC.2005.26
  • Filename
    1592562