Graphs and Gating Functions

Many compilers represent the input program as some form of graph in order to support analysis and transformation. Over time, a cornucopia of program graphs have been presented in the literature and subsequently implemented in real compilers. Many of these graphs use SSA concepts as the core principl...

Full description

Saved in:
Bibliographic Details
Published inSSA-based Compiler Design pp. 185 - 199
Main Authors Stanier, James, Rastello, Fabrice
Format Book Chapter
LanguageEnglish
Published Cham Springer International Publishing 2022
Subjects
Online AccessGet full text
ISBN303080514X
9783030805142
DOI10.1007/978-3-030-80515-9_14

Cover

Abstract Many compilers represent the input program as some form of graph in order to support analysis and transformation. Over time, a cornucopia of program graphs have been presented in the literature and subsequently implemented in real compilers. Many of these graphs use SSA concepts as the core principle of their representation, ranging from literal translations of SSA into graph form to more abstract graphs that are implicitly in SSA form. We aim to introduce a selection of program graphs that use these SSA concepts, and examine how they may be useful to a compiler writer. A well-known graph representation is the control-flow graph (CFG) that we encountered at the beginning of the book in the introduction to the core concept of SSA. The CFG models control flow in a program, but the graphs that we will study instead model data flow. This is useful as a large number of compiler optimizations are based on data-flow analysis. In fact, all graphs that we consider in this chapter are data-flow graphs. In this chapter, we will look at a number of SSA-based graph representations. An introduction to each graph will be given, along with diagrams to show how sample programs look when translated into that particular graph. Additionally, we will describe the techniques that each graph was created to solve, with references to the literature for further research.
AbstractList Many compilers represent the input program as some form of graph in order to support analysis and transformation. Over time, a cornucopia of program graphs have been presented in the literature and subsequently implemented in real compilers. Many of these graphs use SSA concepts as the core principle of their representation, ranging from literal translations of SSA into graph form to more abstract graphs that are implicitly in SSA form. We aim to introduce a selection of program graphs that use these SSA concepts, and examine how they may be useful to a compiler writer. A well-known graph representation is the control-flow graph (CFG) that we encountered at the beginning of the book in the introduction to the core concept of SSA. The CFG models control flow in a program, but the graphs that we will study instead model data flow. This is useful as a large number of compiler optimizations are based on data-flow analysis. In fact, all graphs that we consider in this chapter are data-flow graphs. In this chapter, we will look at a number of SSA-based graph representations. An introduction to each graph will be given, along with diagrams to show how sample programs look when translated into that particular graph. Additionally, we will describe the techniques that each graph was created to solve, with references to the literature for further research.
Author Rastello, Fabrice
Stanier, James
Author_xml – sequence: 1
  givenname: James
  surname: Stanier
  fullname: Stanier, James
  email: jamiestanier@gmail.com
– sequence: 2
  givenname: Fabrice
  surname: Rastello
  fullname: Rastello, Fabrice
BookMark eNp9j0FOwzAQRY0ACVpyAljkAgY7Yyf2ElU0RarEBiR21sSx20BwqrgV6u1xW9iyGs3T_zN6E3IRhuAIuePsnjNWPehKUaAMGFVMckm14eKMZAlDgkemz8nkbxHvVySL8YMxVigAJfk1ua1H3KxjjqHNa9x2YZXPd8FuuyHEG3LpsY8u-51T8jZ_ep0t6PKlfp49LumaaxC0KK0VioOwqqy8d9K13oNXhQcoJZYO0zfU0ELjEThHV-nGF6JpLVbKWZgSebq7Cxvcf2Pfm83YfeG4N5yZg6lJSgZM8jBHK3MwTb3i1IspHlZuNM0wfMb_Sz9eQFYz
ContentType Book Chapter
Copyright The Author(s), under exclusive license to Springer Nature Switzerland AG 2022
Copyright_xml – notice: The Author(s), under exclusive license to Springer Nature Switzerland AG 2022
DBID ABOKW
UNPAY
DOI 10.1007/978-3-030-80515-9_14
DatabaseName Unpaywall for CDI: Monographs and Miscellaneous Content
Unpaywall
DatabaseTitleList
Database_xml – sequence: 1
  dbid: UNPAY
  name: Unpaywall
  url: https://proxy.k.utb.cz/login?url=https://unpaywall.org/
  sourceTypes: Open Access Repository
DeliveryMethod fulltext_linktorsrc
Discipline Engineering
EISBN 9783030805159
3030805158
Editor Rastello, Fabrice
Bouchez Tichadou, Florent
Editor_xml – sequence: 1
  givenname: Fabrice
  surname: Rastello
  fullname: Rastello, Fabrice
  email: fabrice.rastello@inria.fr
– sequence: 2
  givenname: Florent
  surname: Bouchez Tichadou
  fullname: Bouchez Tichadou, Florent
  email: florent.bouchez-tichadou@imag.fr
EndPage 199
ExternalDocumentID oai:HAL:hal-04814924v1
GroupedDBID 38.
AABBV
AAZWU
ABSVR
ABTHU
ABVND
ACBPT
ACHZO
ACPMC
ADNVS
AEJLV
AEKFX
AHVRR
AIYYB
ALMA_UNASSIGNED_HOLDINGS
BBABE
CZZ
IEZ
SBO
TPJZQ
Z83
ABOKW
UNPAY
ID FETCH-LOGICAL-h1934-26cc48134c867ffe5edff3f82f3365a6ea283a93d3bfa311ae79bf24bdca78ec3
IEDL.DBID UNPAY
ISBN 303080514X
9783030805142
IngestDate Sun Oct 26 03:15:39 EDT 2025
Tue Jul 29 20:27:17 EDT 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed false
IsScholarly false
Language English
License cc-by
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-h1934-26cc48134c867ffe5edff3f82f3365a6ea283a93d3bfa311ae79bf24bdca78ec3
OpenAccessLink https://proxy.k.utb.cz/login?url=https://inria.hal.science/hal-04814924
PageCount 15
ParticipantIDs unpaywall_primary_10_1007_978_3_030_80515_9_14
springer_books_10_1007_978_3_030_80515_9_14
PublicationCentury 2000
PublicationDate 2022
PublicationDateYYYYMMDD 2022-01-01
PublicationDate_xml – year: 2022
  text: 2022
PublicationDecade 2020
PublicationPlace Cham
PublicationPlace_xml – name: Cham
PublicationTitle SSA-based Compiler Design
PublicationYear 2022
Publisher Springer International Publishing
Publisher_xml – name: Springer International Publishing
SSID ssj0002833851
Score 1.6597259
Snippet Many compilers represent the input program as some form of graph in order to support analysis and transformation. Over time, a cornucopia of program graphs...
SourceID unpaywall
springer
SourceType Open Access Repository
Publisher
StartPage 185
SubjectTerms Code selection
Compiler design
Control dependence
Control-flow graph (CFG)
Data-flow graph (DFG)
Dead node elimination
Demand-driven analysis
Extended SSA forms
Gated single assignment (GSA)
Gating function
Parallelization
Phi-entry function
Phi-if function
Program dependence graph (PDG)
Program slicing
Rematerialization
Scalar evolution (SCEV)
Static single assignment form (SSA form)
Strength reduction
Symbolic analysis
Value state dependence graph (VSDG)
Title Graphs and Gating Functions
URI http://link.springer.com/10.1007/978-3-030-80515-9_14
https://inria.hal.science/hal-04814924
UnpaywallVersion submittedVersion
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3PT8IwGP2icDB6UKNG_EF28GY2Ye269UgMYIgSD2Lw1Hzrj5BIJhGI0b_erzAI8aDx1kvb5a3de0u_9wpwlZmUoTSOdlrOQp7QnpMW0zCRUluTxS5reHPyQ1_cDXhvmAzLAtmFF6Yg3KMR6c6SAW6oHfpQE05_CttQFQlp7gpUB_3H1suGF255zE9Llr65xNGhVN6Ysz7d3IWdeTHBzw8cjzcIpLMP3dXUy7qR12g-yyP99SOV8e9nO4A9b08IvG-AIDmELVscwXnX505PAyxM0EVfyRx0iLAWa-oYBp320-1dWF57EI5ITfEwFlrTmIzrTKTO2cQa55gj3BgTCQqLJAlQMsNyh6zZRJvK3MU8NxrTzGp2ApXirbCnEDiBTc3RCC5iLkSGGdqGdg3kqRM6ETW4XgGkvKifqlWKMcGpmCI41QJO5eGsQbTGUE2WYRi_djj7b4cLqMze5_aSeH6W16Haavfun-vly_4GoiOnaw
linkProvider Unpaywall
linkToUnpaywall http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3LSgMxFL1ouxBdqKhYX8zCnczYTh4zWYrYFsHiwkJdhTt5ULCMpQ9Ev96bdlqKC8VdNkmGM8mcM-SeE4Dr3GYMlfW00woWc0F7TjnMYqGUcTZPfd4M5uSnnuz2-eNADKoC2YUXpiTckyHpzooBbqkdh1ATTn8K21CXgjR3Der93vPd64YXbnnMT0uWvrnE0bHSwZizPt3chZ15OcbPDxyNNgikvQ-d1dTLupG3ZD4rEvP1I5Xx72c7gL1gT4iCb4AgOYQtVx7BeSfkTk8jLG3UwVDJHLWJsBZr6hj67YeX-25cXXsQD0lN8TiVxtCYjJtcZt474az3zBNujEmB0iFJAlTMssIja7XQZarwKS-swSx3hp1ArXwv3SlEXmLLcLSSy5RLmWOOrml8E3nmpRGyATcrgHQQ9VO9SjEmODXTBKdewKkDnA1I1hjq8TIM49cOZ__tcAG12WTuLonnZ8VV9ZK_AW7NpdY
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=bookitem&rft.title=SSA-based+Compiler+Design&rft.au=Stanier%2C+James&rft.au=Rastello%2C+Fabrice&rft.atitle=Graphs+and+Gating+Functions&rft.date=2022-01-01&rft.pub=Springer+International+Publishing&rft.isbn=9783030805142&rft.spage=185&rft.epage=199&rft_id=info:doi/10.1007%2F978-3-030-80515-9_14
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9783030805142/lc.gif&client=summon&freeimage=true
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9783030805142/mc.gif&client=summon&freeimage=true
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9783030805142/sc.gif&client=summon&freeimage=true