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...
Gespeichert in:
Hauptverfasser: | , |
---|---|
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&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 |