Enabling Fine-Grained Incremental Builds by Making Compiler Stateful

Incremental builds are commonly employed in software development, involving minor changes to existing source code that is then frequently recompiled. Speeding up incremental builds not only enhances the software development workflow but also improves CI/CD systems by enabling faster verification ste...

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:Proceedings / International Symposium on Code Generation and Optimization s. 221 - 232
Hlavní autori: Han, Ruobing, Zhao, Jisheng, Kim, Hyesoon
Médium: Konferenčný príspevok..
Jazyk:English
Vydavateľské údaje: IEEE 02.03.2024
Predmet:
ISSN:2643-2838
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
Abstract Incremental builds are commonly employed in software development, involving minor changes to existing source code that is then frequently recompiled. Speeding up incremental builds not only enhances the software development workflow but also improves CI/CD systems by enabling faster verification steps. Current solutions for incremental builds primarily rely on build systems that analyze file dependencies to avoid unnecessary recompilation of unchanged files. However, for the files that do undergo changes, these build systems simply invoke compilers to recompile them from scratch. This approach reveals a fundamental asymmetry in the system: while build systems operate in a stateful manner, compilers are stateless. As a result, incremental builds are applied only at a coarse-grained level, focusing on entire source files, rather than at a more fine-grained level that considers individual code sections. In this paper, we propose an innovative approach for enabling the fine-grained incremental build by introducing statefulness into compilers. Under this paradigm, the compiler leverages its profiling history to expedite the compilation process of modified source files, thereby reducing overall build time. Specifically, the stateful compiler retains dormant information of compiler passes executed in previous builds and uses this data to bypass dormant passes during subsequent incremental compilations. We also outline the essential changes needed to transform conventional stateless compilers into stateful ones. For practical evaluation, we modify the Clang compiler to adopt a stateful architecture and evaluate its performance on real-world C++ projects. Our comparative study indicates that the stateful version outperforms the standard Clang compiler in incremental builds, accelerating the end-to-end build process by an average of 6.72%.
AbstractList Incremental builds are commonly employed in software development, involving minor changes to existing source code that is then frequently recompiled. Speeding up incremental builds not only enhances the software development workflow but also improves CI/CD systems by enabling faster verification steps. Current solutions for incremental builds primarily rely on build systems that analyze file dependencies to avoid unnecessary recompilation of unchanged files. However, for the files that do undergo changes, these build systems simply invoke compilers to recompile them from scratch. This approach reveals a fundamental asymmetry in the system: while build systems operate in a stateful manner, compilers are stateless. As a result, incremental builds are applied only at a coarse-grained level, focusing on entire source files, rather than at a more fine-grained level that considers individual code sections. In this paper, we propose an innovative approach for enabling the fine-grained incremental build by introducing statefulness into compilers. Under this paradigm, the compiler leverages its profiling history to expedite the compilation process of modified source files, thereby reducing overall build time. Specifically, the stateful compiler retains dormant information of compiler passes executed in previous builds and uses this data to bypass dormant passes during subsequent incremental compilations. We also outline the essential changes needed to transform conventional stateless compilers into stateful ones. For practical evaluation, we modify the Clang compiler to adopt a stateful architecture and evaluate its performance on real-world C++ projects. Our comparative study indicates that the stateful version outperforms the standard Clang compiler in incremental builds, accelerating the end-to-end build process by an average of 6.72%.
Author Zhao, Jisheng
Han, Ruobing
Kim, Hyesoon
Author_xml – sequence: 1
  givenname: Ruobing
  surname: Han
  fullname: Han, Ruobing
  email: hanruobing@gatech.edu
  organization: Georgia Institute of Technology,Atlanta,USA
– sequence: 2
  givenname: Jisheng
  surname: Zhao
  fullname: Zhao, Jisheng
  email: jisheng.zhao@cc.gatech.edu
  organization: Georgia Institute of Technology,Atlanta,USA
– sequence: 3
  givenname: Hyesoon
  surname: Kim
  fullname: Kim, Hyesoon
  email: hyesoon@cc.gatech.edu
  organization: Georgia Institute of Technology,Atlanta,USA
BookMark eNo1j0tOwzAUAA0Cibb0Bgj5Agn-xvYSQhsqFXUBrKvn-AUZErdK0kVv3yJgNZvRSDMlV2mXkJB7znLOmXsoq402hWS5YELlnCmlbKEvyNwZZ6Vm0mnm3CWZiELJTFhpb8h0GL4YE0ZxOSHPiwS-jemTLmPCrOrhjEBXqe6xwzRCS58OsQ0D9Uf6Ct8_Zrnr9rHFnr6NMGJzaG_JdQPtgPM_zsjHcvFevmTrTbUqH9cZCMfGDAXW3BujkYO02iGa4DXY4NE3TDuogwMjjORolbWaN84x6-35AISsg5yRu99uRMTtvo8d9Mft_7U8AUjxTcU
ContentType Conference Proceeding
DBID 6IE
6IL
CBEJK
RIE
RIL
DOI 10.1109/CGO57630.2024.10444865
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume
IEEE Xplore All Conference Proceedings
IEEE Electronic Library (IEL)
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList
Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 9798350395099
EISSN 2643-2838
EndPage 232
ExternalDocumentID 10444865
Genre orig-research
GroupedDBID 29O
6IE
6IF
6IK
6IL
6IN
AAJGR
ABLEC
ADZIZ
ALMA_UNASSIGNED_HOLDINGS
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
CHZPO
IEGSK
IPLJI
OCL
RIE
RIL
ID FETCH-LOGICAL-a290t-e2ec1b775e1a3859ee7db5a8dbebf059acd9a72731e848851f9908b8099a23cd3
IEDL.DBID RIE
ISICitedReferencesCount 0
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001179185400018&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
IngestDate Wed Aug 27 02:18:31 EDT 2025
IsPeerReviewed false
IsScholarly true
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-a290t-e2ec1b775e1a3859ee7db5a8dbebf059acd9a72731e848851f9908b8099a23cd3
PageCount 12
ParticipantIDs ieee_primary_10444865
PublicationCentury 2000
PublicationDate 2024-March-2
PublicationDateYYYYMMDD 2024-03-02
PublicationDate_xml – month: 03
  year: 2024
  text: 2024-March-2
  day: 02
PublicationDecade 2020
PublicationTitle Proceedings / International Symposium on Code Generation and Optimization
PublicationTitleAbbrev CGO
PublicationYear 2024
Publisher IEEE
Publisher_xml – name: IEEE
SSID ssj0027413
ssib057256076
Score 2.2555661
Snippet Incremental builds are commonly employed in software development, involving minor changes to existing source code that is then frequently recompiled. Speeding...
SourceID ieee
SourceType Publisher
StartPage 221
SubjectTerms C++ languages
Codes
Optimization
Software
Source coding
Transforms
Title Enabling Fine-Grained Incremental Builds by Making Compiler Stateful
URI https://ieeexplore.ieee.org/document/10444865
WOSCitedRecordID wos001179185400018&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/eLvHCXMwlV07T8MwELZoxcBUHkW85YE1pXac2F4pbVkoHUDqVvlxlpCqFvWB1H_P2U2KGBjYIis6WZecv-8cf_kIubey9Dp4l1klDTYowmQKcTUT2nubB8GZcMlsQo5GajLR40qsnrQwAJAOn0EnXqZv-X7hNnGrDCtcYDdRFg3SkLLcibXql6eQEbwjtu67LZZXkmDW1Q-94StS67yLLSEXnTrSL0-VBCmD1j8nc0zaP-I8Ot7Dzgk5gPkpadXuDLQq1jPy1I-yKLyFDpBJZsPoBQGe4oKw2xI0M_oYPbFX1G7pSzKlojEKLhMYJXLQsJm1yfug_9Z7zirPhMxw3V1nwMExK2UBzOSq0ADS28Iob8EGpFLGeW0iZ2GgsHYLFhCOlFVIFA3Pnc_PSXO-mMMFoTz3jEnDBNMgHFIJVUBphQgBQ3MIl6QdszL93P0WY1on5OqP8WtyFHOfDnDxG9JcLzdwSw7d1_pjtbxLD_Mb2JWeSA
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3JTsMwELWgIMGpLEXs-MA1JXbsxrlSuiDa0kORequ8TCSkqkVdkPh7xm5SxIEDt8iKRpHt8Xtj--URcm_ShstyZyOjUo0FitCRQlyNROacSXLBmbDBbCIdDNR4nA0LsXrQwgBAuHwGdf8YzvLd3K79VhlmuMBqoiF3yZ4UgscbuVY5fWTq4duj67beYkkhCmZx9tDsvCK5TmIsCrmol7F-uaoEUGlX__k5R6T2I8-jwy3wHJMdmJ2QaunPQIt0PSVPLS-MwldoG7lk1PFuEOAoLgmbTUE9pY_eFXtJzRftB1sq6qPgQoFRPAvN19MaeWu3Rs1uVLgmRJpn8SoCDpaZNJXAdKJkBpA6I7VyBkyOZEpbl2nPWhgozF7JcgQkZRRSRc0T65IzUpnNZ3BOKE8cY6lmgmUgLJIJJaFhhMhzDM0hvyA13yuTj82PMSZlh1z-0X5HDrqjfm_Sex68XJFDPw7hOhe_JpXVYg03ZN9-rt6Xi9swsN9G9aGP
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+%2F+International+Symposium+on+Code+Generation+and+Optimization&rft.atitle=Enabling+Fine-Grained+Incremental+Builds+by+Making+Compiler+Stateful&rft.au=Han%2C+Ruobing&rft.au=Zhao%2C+Jisheng&rft.au=Kim%2C+Hyesoon&rft.date=2024-03-02&rft.pub=IEEE&rft.eissn=2643-2838&rft.spage=221&rft.epage=232&rft_id=info:doi/10.1109%2FCGO57630.2024.10444865&rft.externalDocID=10444865