Coalescing conditional branches into efficient indirect jumps

Indirect jumps from tables are traditionally only generated by compilers as an intermediate code generation decision when translating multiway selection statements. However, making this decision during intermediate code generation poses problems. The research described in this paper resolves these p...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Uh, Gang-Ryung, Whalley, David B.
Format: Tagungsbericht
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 329
container_issue
container_start_page 315
container_title
container_volume
creator Uh, Gang-Ryung
Whalley, David B.
description Indirect jumps from tables are traditionally only generated by compilers as an intermediate code generation decision when translating multiway selection statements. However, making this decision during intermediate code generation poses problems. The research described in this paper resolves these problems by using several types of static analysis as a framework for a code improving transformation that exploits indirect jumps from tables. First, control-flow analysis is performed that provides opportunities for coalescing branches generated from other control statements besides multiway selection statements. Second, the optimizer uses various techniques to reduce the cost of indirect jump operations by statically analyzing the context of the surrounding code. Finally, path and branch prediction analysis is used to provide a more accurate estimation of the benefit of coalescing a detected set of branches into a single indirect jump. The results indicate that the coalescing transformation can be frequently applied with significant reductions in the number of instructions executed and total cache work. This paper shows that static analysis can be used to implement an effective improving transformation for exploiting indirect jumps.
doi_str_mv 10.1007/BFb0032750
format Conference Proceeding
fullrecord <record><control><sourceid>pascalfrancis_sprin</sourceid><recordid>TN_cdi_pascalfrancis_primary_2735236</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2735236</sourcerecordid><originalsourceid>FETCH-LOGICAL-p1300-e79aa525581875cbd5a48662393e16f027855ed7b662aa6bd53b39cb35b75aa43</originalsourceid><addsrcrecordid>eNpFkD9PwzAQxc0_iVK68AkyMLAEzr7YjgcGqCggVWKBOTo7TnFJnSgOA9-eVEVierr3ezo9PcauONxyAH33uLIAKLSEI7YwukRZgDJSK3PMZlxxniMW5uSfYaFKPGUzQBC50QWes4uUtgAgtBEzdr_sqPXJhbjJXBfrMIYuUpvZgaL79CkLcewy3zTBBR_H6azD4N2Ybb93fbpkZw21yS_-dM4-Vk_vy5d8_fb8unxY5z1HgNxrQySFlCUvtXS2llSUSgk06LlqpiqllL7WdvKI1MTRonEWpdWSqMA5uz787Sk5apt9uZCqfgg7Gn4qoVEKVFPs5hBLE4kbP1S2675SxaHar1f9r4e_q5Bbsw</addsrcrecordid><sourcetype>Index Database</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>Coalescing conditional branches into efficient indirect jumps</title><source>Springer Books</source><creator>Uh, Gang-Ryung ; Whalley, David B.</creator><contributor>Van Hentenryck, Pascal</contributor><creatorcontrib>Uh, Gang-Ryung ; Whalley, David B. ; Van Hentenryck, Pascal</creatorcontrib><description>Indirect jumps from tables are traditionally only generated by compilers as an intermediate code generation decision when translating multiway selection statements. However, making this decision during intermediate code generation poses problems. The research described in this paper resolves these problems by using several types of static analysis as a framework for a code improving transformation that exploits indirect jumps from tables. First, control-flow analysis is performed that provides opportunities for coalescing branches generated from other control statements besides multiway selection statements. Second, the optimizer uses various techniques to reduce the cost of indirect jump operations by statically analyzing the context of the surrounding code. Finally, path and branch prediction analysis is used to provide a more accurate estimation of the benefit of coalescing a detected set of branches into a single indirect jump. The results indicate that the coalescing transformation can be frequently applied with significant reductions in the number of instructions executed and total cache work. This paper shows that static analysis can be used to implement an effective improving transformation for exploiting indirect jumps.</description><identifier>ISSN: 0302-9743</identifier><identifier>ISBN: 9783540634683</identifier><identifier>ISBN: 3540634681</identifier><identifier>EISSN: 1611-3349</identifier><identifier>EISBN: 9783540695769</identifier><identifier>EISBN: 3540695761</identifier><identifier>DOI: 10.1007/BFb0032750</identifier><language>eng</language><publisher>Berlin, Heidelberg: Springer Berlin Heidelberg</publisher><subject>Applied sciences ; Code Segment ; Computer science; control theory; systems ; Conditional Branch ; Exact sciences and technology ; Programming languages ; Software ; Switch Statement ; Target Address ; Target Block</subject><ispartof>Lecture notes in computer science, 2005, p.315-329</ispartof><rights>Springer-Verlag Berlin Heidelberg 1997</rights><rights>1997 INIST-CNRS</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/BFb0032750$$EPDF$$P50$$Gspringer$$H</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/BFb0032750$$EHTML$$P50$$Gspringer$$H</linktohtml><link.rule.ids>309,310,777,778,782,787,788,791,4038,4039,27912,38242,41429,42498</link.rule.ids><backlink>$$Uhttp://pascal-francis.inist.fr/vibad/index.php?action=getRecordDetail&amp;idt=2735236$$DView record in Pascal Francis$$Hfree_for_read</backlink></links><search><contributor>Van Hentenryck, Pascal</contributor><creatorcontrib>Uh, Gang-Ryung</creatorcontrib><creatorcontrib>Whalley, David B.</creatorcontrib><title>Coalescing conditional branches into efficient indirect jumps</title><title>Lecture notes in computer science</title><description>Indirect jumps from tables are traditionally only generated by compilers as an intermediate code generation decision when translating multiway selection statements. However, making this decision during intermediate code generation poses problems. The research described in this paper resolves these problems by using several types of static analysis as a framework for a code improving transformation that exploits indirect jumps from tables. First, control-flow analysis is performed that provides opportunities for coalescing branches generated from other control statements besides multiway selection statements. Second, the optimizer uses various techniques to reduce the cost of indirect jump operations by statically analyzing the context of the surrounding code. Finally, path and branch prediction analysis is used to provide a more accurate estimation of the benefit of coalescing a detected set of branches into a single indirect jump. The results indicate that the coalescing transformation can be frequently applied with significant reductions in the number of instructions executed and total cache work. This paper shows that static analysis can be used to implement an effective improving transformation for exploiting indirect jumps.</description><subject>Applied sciences</subject><subject>Code Segment</subject><subject>Computer science; control theory; systems</subject><subject>Conditional Branch</subject><subject>Exact sciences and technology</subject><subject>Programming languages</subject><subject>Software</subject><subject>Switch Statement</subject><subject>Target Address</subject><subject>Target Block</subject><issn>0302-9743</issn><issn>1611-3349</issn><isbn>9783540634683</isbn><isbn>3540634681</isbn><isbn>9783540695769</isbn><isbn>3540695761</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2005</creationdate><recordtype>conference_proceeding</recordtype><recordid>eNpFkD9PwzAQxc0_iVK68AkyMLAEzr7YjgcGqCggVWKBOTo7TnFJnSgOA9-eVEVierr3ezo9PcauONxyAH33uLIAKLSEI7YwukRZgDJSK3PMZlxxniMW5uSfYaFKPGUzQBC50QWes4uUtgAgtBEzdr_sqPXJhbjJXBfrMIYuUpvZgaL79CkLcewy3zTBBR_H6azD4N2Ybb93fbpkZw21yS_-dM4-Vk_vy5d8_fb8unxY5z1HgNxrQySFlCUvtXS2llSUSgk06LlqpiqllL7WdvKI1MTRonEWpdWSqMA5uz787Sk5apt9uZCqfgg7Gn4qoVEKVFPs5hBLE4kbP1S2675SxaHar1f9r4e_q5Bbsw</recordid><startdate>20050615</startdate><enddate>20050615</enddate><creator>Uh, Gang-Ryung</creator><creator>Whalley, David B.</creator><general>Springer Berlin Heidelberg</general><general>Springer-Verlag</general><scope>IQODW</scope></search><sort><creationdate>20050615</creationdate><title>Coalescing conditional branches into efficient indirect jumps</title><author>Uh, Gang-Ryung ; Whalley, David B.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-p1300-e79aa525581875cbd5a48662393e16f027855ed7b662aa6bd53b39cb35b75aa43</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2005</creationdate><topic>Applied sciences</topic><topic>Code Segment</topic><topic>Computer science; control theory; systems</topic><topic>Conditional Branch</topic><topic>Exact sciences and technology</topic><topic>Programming languages</topic><topic>Software</topic><topic>Switch Statement</topic><topic>Target Address</topic><topic>Target Block</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Uh, Gang-Ryung</creatorcontrib><creatorcontrib>Whalley, David B.</creatorcontrib><collection>Pascal-Francis</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Uh, Gang-Ryung</au><au>Whalley, David B.</au><au>Van Hentenryck, Pascal</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Coalescing conditional branches into efficient indirect jumps</atitle><btitle>Lecture notes in computer science</btitle><date>2005-06-15</date><risdate>2005</risdate><spage>315</spage><epage>329</epage><pages>315-329</pages><issn>0302-9743</issn><eissn>1611-3349</eissn><isbn>9783540634683</isbn><isbn>3540634681</isbn><eisbn>9783540695769</eisbn><eisbn>3540695761</eisbn><abstract>Indirect jumps from tables are traditionally only generated by compilers as an intermediate code generation decision when translating multiway selection statements. However, making this decision during intermediate code generation poses problems. The research described in this paper resolves these problems by using several types of static analysis as a framework for a code improving transformation that exploits indirect jumps from tables. First, control-flow analysis is performed that provides opportunities for coalescing branches generated from other control statements besides multiway selection statements. Second, the optimizer uses various techniques to reduce the cost of indirect jump operations by statically analyzing the context of the surrounding code. Finally, path and branch prediction analysis is used to provide a more accurate estimation of the benefit of coalescing a detected set of branches into a single indirect jump. The results indicate that the coalescing transformation can be frequently applied with significant reductions in the number of instructions executed and total cache work. This paper shows that static analysis can be used to implement an effective improving transformation for exploiting indirect jumps.</abstract><cop>Berlin, Heidelberg</cop><pub>Springer Berlin Heidelberg</pub><doi>10.1007/BFb0032750</doi><tpages>15</tpages></addata></record>
fulltext fulltext
identifier ISSN: 0302-9743
ispartof Lecture notes in computer science, 2005, p.315-329
issn 0302-9743
1611-3349
language eng
recordid cdi_pascalfrancis_primary_2735236
source Springer Books
subjects Applied sciences
Code Segment
Computer science
control theory
systems
Conditional Branch
Exact sciences and technology
Programming languages
Software
Switch Statement
Target Address
Target Block
title Coalescing conditional branches into efficient indirect jumps
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-15T11%3A14%3A21IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-pascalfrancis_sprin&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Coalescing%20conditional%20branches%20into%20efficient%20indirect%20jumps&rft.btitle=Lecture%20notes%20in%20computer%20science&rft.au=Uh,%20Gang-Ryung&rft.date=2005-06-15&rft.spage=315&rft.epage=329&rft.pages=315-329&rft.issn=0302-9743&rft.eissn=1611-3349&rft.isbn=9783540634683&rft.isbn_list=3540634681&rft_id=info:doi/10.1007/BFb0032750&rft_dat=%3Cpascalfrancis_sprin%3E2735236%3C/pascalfrancis_sprin%3E%3Curl%3E%3C/url%3E&rft.eisbn=9783540695769&rft.eisbn_list=3540695761&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true