Ablego:: a function outlining and partial inlining framework

被引:9
|
作者
Zhao, Peng
Amaral, Jose Nelson [1 ]
机构
[1] Univ Alberta, Dept Comp Sci, Edmonton, AB, Canada
[2] IBM Corp, Toronto Lab, Markham, ON, Canada
来源
SOFTWARE-PRACTICE & EXPERIENCE | 2007年 / 37卷 / 05期
关键词
compiler optimization; inlining; partial inlining; outlining; function splitting; code locality; Itanium;
D O I
10.1002/spe.774
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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. Often large portions of the code in a hot function integral host are executed much less frequently than integral host 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 integral host. After outlining,integral host becomes smaller and thus can be easily inlined. This paper presents Ablego, 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) explicit variable spilling, 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's effect on enabling more aggressive inlining is limited. The performance improvement from partial inlining actually comes from better code placement and better code generation. Copyright (C) 2006 John Wiley & Sons, Ltd.
引用
收藏
页码:465 / 491
页数:27
相关论文
共 50 条
  • [1] Function inlining versus function cloning
    Das, D
    [J]. ACM SIGPLAN NOTICES, 2003, 38 (06) : 23 - 29
  • [2] Function inlining versus function cloning
    Das, D
    [J]. ACM SIGPLAN NOTICES, 2003, 38 (04) : 18 - 24
  • [3] Elimination of Square Roots and Divisions by Partial Inlining
    Neron, Pierre
    [J]. PPDP'14: PROCEEDINGS OF THE 16TH INTERNATIONAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING, 2014, : 81 - 92
  • [4] Outlining the limits of partial nephrectomy
    Chopra, Sameer
    Satkunasivam, Raj
    Kundavaram, Chandan
    Liang, Gangning
    Gill, Inderbir S.
    [J]. TRANSLATIONAL ANDROLOGY AND UROLOGY, 2015, 4 (03) : 294 - 300
  • [5] Understanding and Exploiting Optimal Function Inlining
    Theodoridis, Theodoros
    Grosser, Tobias
    Su, Zhendong
    [J]. ASPLOS '22: PROCEEDINGS OF THE 27TH ACM INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS, 2022, : 977 - 989
  • [6] XQuery function inlining for optimizing XQuery queries
    Grinev, M
    Lizorkin, D
    [J]. ADBIS' 04: EIGHTH EAST-EUROPEAN CONFERENCE ON ADVANCES IN DATABASES AND INFORMATION SYSTEMS, PROCEEDINGS, 2004, : 32 - 47
  • [7] Partial classification in the belief function framework
    Ma, Liyao
    Denoeux, Thierry
    [J]. KNOWLEDGE-BASED SYSTEMS, 2021, 214 (214)
  • [8] Government, statistics, subjectivity - Outlining an analytical framework
    Hammer, Svein
    [J]. TIDSSKRIFT FOR SAMFUNNSFORSKNING, 2008, 49 (01): : 73 - 105
  • [9] Function inlining in embedded systems with code size limitation
    Zhou, Xinrong
    Yan, Lu
    Lilius, Johan
    [J]. EMBEDDED SOFTWARE AND SYSTEMS, PROCEEDINGS, 2007, 4523 : 154 - +
  • [10] Interference-Aware Function Inlining for Code Size Reduction
    Chang, Hsuan
    You, Yi-Ping
    [J]. 53RD INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING, ICPP 2024, 2024, : 7 - 14