Inline Analysis Beyond Selection Heuristics

Research on procedure inlining has mainly focused on heuristics that decide whether inlining a particular call-site maximizes application performance. However, other equally important aspects of inline analysis such as call-site analysis order, indirect effects of inlining, and selection of the most...

Full description

Saved in:
Bibliographic Details
Published in:Fourth IEEE/ACM International Symposium on Code Generation and Optimization (CGO 2006): 26-29 March 2006/New York, New York pp. 221 - 232
Main Authors: Chakrabarti, Dhruva R., Liu, Shin-Ming
Format: Conference Proceeding
Language:English
Published: Washington, DC, USA IEEE Computer Society 26.03.2006
IEEE
Series:ACM Conferences
Subjects:
ISBN:0769524990, 9780769524993
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract Research on procedure inlining has mainly focused on heuristics that decide whether inlining a particular call-site maximizes application performance. However, other equally important aspects of inline analysis such as call-site analysis order, indirect effects of inlining, and selection of the most profitable version of a procedure warrant more attention. This paper evaluates a number of different sequences in which call-sites are examined for inlining and shows that choosing the correct order is crucial to obtaining the best run-time performance. We then present a novel, work-list-based, and updated sequence that achieves the best results. While applying cross-module inline analysis on large applications with thousands of files and millions of lines of code, we separate the analysis from the transformation phase and allow the former to work solely on summary information in order to reduce compile-time and memory consumption. A focus of this paper is to enumerate the summaries that our compiler maintains, present a technique to compute the goodness factor on which the work-list sequence is based, and describe methods to continuously update the summaries as and when a call-site is accepted for inlining. We then introduce inline specialization, a new technique that facilitates inlining into call chains selectively. The power of inline specialization lies in its ability to choose the most profitable version of the called procedure without having to maintain multiple versions at any point of time. We discuss implementation of these techniques in the HPUX Itanium production compiler and present experimental results showing that a dynamic work-list based analysis order, comprehensive summary updates, and inline specialization significantly improve performance of applications.
AbstractList Research on procedure inlining has mainly focused on heuristics that decide whether inlining a particular call-site maximizes application performance. However, other equally important aspects of inline analysis such as call-site analysis order, indirect effects of inlining, and selection of the most profitable version of a procedure warrant more attention. This paper evaluates a number of different sequences in which call-sites are examined for inlining and shows that choosing the correct order is crucial to obtaining the best run-time performance. We then present a novel, work-list-based, and updated sequence that achieves the best results. While applying cross-module inline analysis on large applications with thousands of files and millions of lines of code, we separate the analysis from the transformation phase and allow the former to work solely on summary information in order to reduce compile-time and memory consumption. A focus of this paper is to enumerate the summaries that our compiler maintains, present a technique to compute the goodness factor on which the work-list sequence is based, and describe methods to continuously update the summaries as and when a call-site is accepted for inlining. We then introduce inline specialization, a new technique that facilitates inlining into call chains selectively. The power of inline specialization lies in its ability to choose the most profitable version of the called procedure without having to maintain multiple versions at any point of time. We discuss implementation of these techniques in the HPUX Itanium production compiler and present experimental results showing that a dynamic work-list based analysis order, comprehensive summary updates, and inline specialization significantly improve performance of applications.
Research on procedure inlining has mainly focused on heuristics that decide whether inlining a particular call-site maximizes application performance. However, other equally important aspects of inline analysis such as call-site analysis order, indirect effects of inlining, and selection of the most profitable version of a procedure warrant more attention. This paper evaluates a number of different sequences in which call-sites are examined for inlining and shows that choosing the correct order is crucial to obtaining the best run-time performance. We then present a novel, work-list-based, and updated sequence that achieves the best results. While applying cross-module inline analysis on large applications with thousands of files and millions of lines of code, we separate the analysis from the transformation phase and allow the former to work solely on summary information in order to reduce compile-time and memory consumption. A focus of this paper is to enumerate the summaries that our compiler maintains, present a technique to compute the goodness factor on which the work-list sequence is based, and describe methods to continuously update the summaries as and when a call-site is accepted for inlining. We then introduce inline specialization, a new technique that facilitates inlining into call chains selectively. The power of inline specialization lies in its ability to choose the most profitable version of the called procedure without having to maintain multiple versions at any point of time. We discuss implementation of these techniques in the HPUX Itanium/spl reg/ production compiler and present experimental results showing that a dynamic work-list based analysis order, comprehensive summary updates, and inline specialization significantly improve performance of applications.
Author Liu, Shin-Ming
Chakrabarti, Dhruva R.
Author_xml – sequence: 1
  givenname: Dhruva R.
  surname: Chakrabarti
  fullname: Chakrabarti, Dhruva R.
  organization: Hewlett-Packard Company
– sequence: 2
  givenname: Shin-Ming
  surname: Liu
  fullname: Liu, Shin-Ming
  organization: Hewlett-Packard Company
BookMark eNqNkL1OwzAYRS0BErRUDIwsDIgBKeH7Ysc_YxWVUqlSF5gtO7YlQ35K3A59e1KFB-Aud7hHdzgzctn1nSfkHiFHBPVarXd5AcBzFBdkBoKrsmBKwTVZpPQFY1iJwPCG3G26Jnb-cdmZ5pRiuiVXwTTJL_56Tj7fVh_Ve7bdrTfVcpuZQsAhUy5wy8AWMgB1xrjSBKkU5YI74GCsYSAcGI9OYR2YcgVKpAqF5HVtPZ2T5-l3P_Q_R58Ouo2p9k1jOt8fk6ZIBZVcjuDDBEbvvd4PsTXDSSNHLBkd16dpNXWrbd9_J42gzw706ECfHWgUI_byD0zbIfpAfwFbGVr3
ContentType Conference Proceeding
DBID 6IE
6IL
CBEJK
RIE
RIL
7SC
8FD
JQ2
L7M
L~C
L~D
DOI 10.1109/CGO.2006.17
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Xplore POP ALL
IEEE Xplore All Conference Proceedings
IEEE/IET Electronic Library
IEEE Proceedings Order Plans (POP All) 1998-Present
Computer and Information Systems Abstracts
Technology Research Database
ProQuest Computer Science Collection
Advanced Technologies Database with Aerospace
Computer and Information Systems Abstracts – Academic
Computer and Information Systems Abstracts Professional
DatabaseTitle Computer and Information Systems Abstracts
Technology Research Database
Computer and Information Systems Abstracts – Academic
Advanced Technologies Database with Aerospace
ProQuest Computer Science Collection
Computer and Information Systems Abstracts Professional
DatabaseTitleList Computer and Information Systems Abstracts


Database_xml – sequence: 1
  dbid: RIE
  name: IEEE/IET Electronic Library (IEL) (UW System Shared)
  url: https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
EndPage 232
ExternalDocumentID 1611543
Genre orig-research
Conference Paper
GroupedDBID 6IE
6IF
6IK
6IL
6IN
AAJGR
AARBI
ACM
ADPZR
ALMA_UNASSIGNED_HOLDINGS
APO
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
GUFHI
OCL
RIB
RIC
RIE
RIL
AAWTH
LHSKQ
7SC
8FD
JQ2
L7M
L~C
L~D
ID FETCH-LOGICAL-a270t-9df6b40b28f03daad5af8993676d060aba407d0ae1d91cf49d2181391786ccbe3
IEDL.DBID RIE
ISBN 0769524990
9780769524993
ISICitedReferencesCount 3
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000237247000018&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
IngestDate Fri Jul 11 01:24:49 EDT 2025
Wed Aug 27 02:28:20 EDT 2025
Wed Jan 31 06:44:48 EST 2024
IsPeerReviewed false
IsScholarly true
Language English
LinkModel DirectLink
MeetingName CGO06: 4th Annual IEEE / ACM International Symposium on Code Generation and Optimization
MergedId FETCHMERGED-LOGICAL-a270t-9df6b40b28f03daad5af8993676d060aba407d0ae1d91cf49d2181391786ccbe3
Notes SourceType-Conference Papers & Proceedings-1
ObjectType-Conference Paper-1
content type line 25
PQID 31373868
PQPubID 23500
PageCount 12
ParticipantIDs acm_books_10_1109_CGO_2006_17
ieee_primary_1611543
proquest_miscellaneous_31373868
acm_books_10_1109_CGO_2006_17_brief
PublicationCentury 2000
PublicationDate 20060326
20060000
PublicationDateYYYYMMDD 2006-03-26
2006-01-01
PublicationDate_xml – month: 03
  year: 2006
  text: 20060326
  day: 26
PublicationDecade 2000
PublicationPlace Washington, DC, USA
PublicationPlace_xml – name: Washington, DC, USA
PublicationSeriesTitle ACM Conferences
PublicationTitle Fourth IEEE/ACM International Symposium on Code Generation and Optimization (CGO 2006): 26-29 March 2006/New York, New York
PublicationTitleAbbrev CGO
PublicationYear 2006
Publisher IEEE Computer Society
IEEE
Publisher_xml – name: IEEE Computer Society
– name: IEEE
SSID ssj0000451041
Score 1.6295826
Snippet Research on procedure inlining has mainly focused on heuristics that decide whether inlining a particular call-site maximizes application performance. However,...
SourceID proquest
ieee
acm
SourceType Aggregation Database
Publisher
StartPage 221
SubjectTerms Information analysis
Iron
Java
Laboratories
Optimizing compilers
Performance analysis
Production
Profitability
Runtime
Scalability
Software and its engineering -- Software creation and management -- Designing software -- Software implementation planning -- Software design techniques
Software and its engineering -- Software creation and management -- Software development process management
Software and its engineering -- Software notations and tools -- Compilers
Software and its engineering -- Software notations and tools -- General programming languages -- Language features -- Procedures, functions and subroutines
Subtitle Beyond Selection Heuristics
Title Inline Analysis
URI https://ieeexplore.ieee.org/document/1611543
https://www.proquest.com/docview/31373868
WOSCitedRecordID wos000237247000018&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV09T8MwED21FQMToBYRoBAJxobacRI7rBUFltIBpG6W4w_BQIqaht-P7YR0ACGxxYoiWS-nnN9d3juAa8EolUySKEVIRwkzOmKpjWVDE6VNQiQ2xg-boIsFW63yZQ8mnRZGa-1_PtM37tL38tVa1q5UNrWnE5vxSR_6lGaNVqurpzifFJTghpnnqWUVeWvp1K1Jq8_DKJ_O7p-aTgT2eUm-t9NVfnySfZ6ZH_xvh4cw2gn2wmWXio6gp8shTB69C0YoWt-R27DwcpWw8rNv7AsJX3XdOjWP4GV-9zx7iNrhCJGIKdpGuTJZkaAiZgYRJYRKhbHcyRmwKZQhUQhL1RQSGqscS5PkyiVzYtkZy6QsNDmGQbku9QmEyglQC5RqJnCiC8ZSJLHESBkqYiPiAMYWIO5O_RX3pAHl3ALoRlhmHNMArv68zwvL-k0AQ4cX_2hcNHgLVQCX34BzG9muXSFKva4rTrBzXcrY6e8PnsH-rhxyDoPtptZj2JOf27dqc-GD4wub17Oz
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1NS8NAEB1qFfSk0opVawN6bOxuNh8br0VtsdYeKvS2bPYDPZhK0_j73d3G9KAI3rKEwDIZMvtm8t4DuOY0SQQVxI8QUn5ItfJpZHJZJ6FUOiQCa-3MJpLplC4W6awB_ZoLo5RyP5-pG3vpZvlyKUrbKhuY04mp-GQHdq1zVsXWqjsqVikFhXiDzdPI4Iq0EnWq16Ri6GGUDoYPz5tZBHaVSbxX_io_Psqu0twf_m-PR9DeUva8WV2MjqGh8hb0x04Hw-OV8sitlznCilc49xvzSrxXVVZazW14ub-bD0d-ZY_g8yBBaz-VOs5ClAVUIyI5lxHXBj1ZCTaJYsQzbsCaRFxhmWKhw1Tack4MPqOxEJkiJ9DMl7k6BU9aCmqGIkU5DlVGaYQEFhhJnfBA86ADXRMgZs_9BXOwAaXMBNCaWMYMJx24-vM-ywzu1x1o2Xixj42OBqtC1YHed8CZyW07sOC5WpYFI9jqLsX07PcHe7A_mj9N2GQ8fTyHg21z5AKa61WpurAnPtdvxerSJcoXLJ22_A
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+of+the+International+Symposium+on+Code+Generation+and+Optimization&rft.atitle=Inline+Analysis&rft.au=Chakrabarti%2C+Dhruva+R.&rft.au=Liu%2C+Shin-Ming&rft.series=ACM+Conferences&rft.date=2006-03-26&rft.pub=IEEE+Computer+Society&rft.isbn=0769524990&rft.spage=221&rft.epage=232&rft_id=info:doi/10.1109%2FCGO.2006.17
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9780769524993/lc.gif&client=summon&freeimage=true
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9780769524993/mc.gif&client=summon&freeimage=true
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9780769524993/sc.gif&client=summon&freeimage=true