Fast graph-based instruction selection for multi-output instructions

A multi‐output instruction (MOI) is an instruction that produces multiple outputs to its destination locations. Such inherently parallel instructions are becoming more and more popular in embedded processors, due to the advances in application‐specific architectures. In order to provide high‐level p...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Software, practice & experience practice & experience, 2011-05, Vol.41 (6), p.717-736
Hauptverfasser: Youn, Jonghee M., Lee, Jongwon, Paek, Yunheung, Lee, Jongeun, Scharwaechter, Hanno, Leupers, Rainer
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 736
container_issue 6
container_start_page 717
container_title Software, practice & experience
container_volume 41
creator Youn, Jonghee M.
Lee, Jongwon
Paek, Yunheung
Lee, Jongeun
Scharwaechter, Hanno
Leupers, Rainer
description A multi‐output instruction (MOI) is an instruction that produces multiple outputs to its destination locations. Such inherently parallel instructions are becoming more and more popular in embedded processors, due to the advances in application‐specific architectures. In order to provide high‐level programmability and thus guarantee widespread acceptance, sophisticated compiler support for these programmable cores is necessary. However, traditional tree‐based approaches for instruction selection, although very fast, fail to exploit MOIs mainly because of the fundamental limitation of the tree representation. In fact, to generate optimal code with MOIs requires a more general graph‐based formulation of the instruction selection problem, which is at least NP‐complete. In this paper we present a new methodology to automatically generate from simple instruction set descriptions, graph‐based code selectors that can effectively utilize all provided instructions including MOIs. Our experimental results using a set of benchmarks on a target processor with various MOIs of up to two outputs demonstrate that our generated code selectors can quickly and effectively exploit many MOIs at the application level, and therefore are highly desirable both for architecture exploration and as code generators after architecture is fixed. Copyright © 2010 John Wiley & Sons, Ltd.
doi_str_mv 10.1002/spe.1034
format Article
fullrecord <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_miscellaneous_901669685</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>901669685</sourcerecordid><originalsourceid>FETCH-LOGICAL-c2964-fdb4e3bfadbe79fad93995accaaf2058896f0703cf541b6c00587be6645f58fd3</originalsourceid><addsrcrecordid>eNp10E9LwzAYBvAgCs4p-BF600v1TfOnzVHnNh2bCiobXkKaJVrt1pqk6L69lYrowdPz8PLjPTwIHWI4wQDJqa9NWwjdQj0MIo0hoYtt1AMgWQyc0l205_0LAMYs4T10MVI-RE9O1c9xrrxZRsXaB9foUFTryJvSdM1WLlo1ZSjiqgl1E34zv492rCq9OfjOPnoYDe8Hl_H0Znw1OJvGOhGcxnaZU0Nyq5a5SUUbggjBlNZK2QRYlgluIQWiLaM45xraW5obzimzLLNL0kdH3d_aVW-N8UGuCq9NWaq1qRovBWDOBc9YK487qV3lvTNW1q5YKbeRGOTXTrLdSX7t1NK4o-9FaTb_Onl3O_zrCx_Mx49X7lXylKRMzq_HcraAx_PZZCLn5BMy5Xpf</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>901669685</pqid></control><display><type>article</type><title>Fast graph-based instruction selection for multi-output instructions</title><source>Wiley Online Library Journals Frontfile Complete</source><creator>Youn, Jonghee M. ; Lee, Jongwon ; Paek, Yunheung ; Lee, Jongeun ; Scharwaechter, Hanno ; Leupers, Rainer</creator><creatorcontrib>Youn, Jonghee M. ; Lee, Jongwon ; Paek, Yunheung ; Lee, Jongeun ; Scharwaechter, Hanno ; Leupers, Rainer</creatorcontrib><description>A multi‐output instruction (MOI) is an instruction that produces multiple outputs to its destination locations. Such inherently parallel instructions are becoming more and more popular in embedded processors, due to the advances in application‐specific architectures. In order to provide high‐level programmability and thus guarantee widespread acceptance, sophisticated compiler support for these programmable cores is necessary. However, traditional tree‐based approaches for instruction selection, although very fast, fail to exploit MOIs mainly because of the fundamental limitation of the tree representation. In fact, to generate optimal code with MOIs requires a more general graph‐based formulation of the instruction selection problem, which is at least NP‐complete. In this paper we present a new methodology to automatically generate from simple instruction set descriptions, graph‐based code selectors that can effectively utilize all provided instructions including MOIs. Our experimental results using a set of benchmarks on a target processor with various MOIs of up to two outputs demonstrate that our generated code selectors can quickly and effectively exploit many MOIs at the application level, and therefore are highly desirable both for architecture exploration and as code generators after architecture is fixed. Copyright © 2010 John Wiley &amp; Sons, Ltd.</description><identifier>ISSN: 0038-0644</identifier><identifier>ISSN: 1097-024X</identifier><identifier>EISSN: 1097-024X</identifier><identifier>DOI: 10.1002/spe.1034</identifier><language>eng</language><publisher>Chichester, UK: John Wiley &amp; Sons, Ltd</publisher><subject>ASIP ; C (programming language) ; code generation ; compiler/architecture co-design ; Descriptions ; Embedded computer systems ; embedded system ; Exploration ; ISS ; Microprocessors ; Optimization ; Representations ; Selectors</subject><ispartof>Software, practice &amp; experience, 2011-05, Vol.41 (6), p.717-736</ispartof><rights>Copyright © 2010 John Wiley &amp; Sons, Ltd.</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-LOGICAL-c2964-fdb4e3bfadbe79fad93995accaaf2058896f0703cf541b6c00587be6645f58fd3</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://onlinelibrary.wiley.com/doi/pdf/10.1002%2Fspe.1034$$EPDF$$P50$$Gwiley$$H</linktopdf><linktohtml>$$Uhttps://onlinelibrary.wiley.com/doi/full/10.1002%2Fspe.1034$$EHTML$$P50$$Gwiley$$H</linktohtml><link.rule.ids>314,776,780,1411,27901,27902,45550,45551</link.rule.ids></links><search><creatorcontrib>Youn, Jonghee M.</creatorcontrib><creatorcontrib>Lee, Jongwon</creatorcontrib><creatorcontrib>Paek, Yunheung</creatorcontrib><creatorcontrib>Lee, Jongeun</creatorcontrib><creatorcontrib>Scharwaechter, Hanno</creatorcontrib><creatorcontrib>Leupers, Rainer</creatorcontrib><title>Fast graph-based instruction selection for multi-output instructions</title><title>Software, practice &amp; experience</title><addtitle>Softw: Pract. Exper</addtitle><description>A multi‐output instruction (MOI) is an instruction that produces multiple outputs to its destination locations. Such inherently parallel instructions are becoming more and more popular in embedded processors, due to the advances in application‐specific architectures. In order to provide high‐level programmability and thus guarantee widespread acceptance, sophisticated compiler support for these programmable cores is necessary. However, traditional tree‐based approaches for instruction selection, although very fast, fail to exploit MOIs mainly because of the fundamental limitation of the tree representation. In fact, to generate optimal code with MOIs requires a more general graph‐based formulation of the instruction selection problem, which is at least NP‐complete. In this paper we present a new methodology to automatically generate from simple instruction set descriptions, graph‐based code selectors that can effectively utilize all provided instructions including MOIs. Our experimental results using a set of benchmarks on a target processor with various MOIs of up to two outputs demonstrate that our generated code selectors can quickly and effectively exploit many MOIs at the application level, and therefore are highly desirable both for architecture exploration and as code generators after architecture is fixed. Copyright © 2010 John Wiley &amp; Sons, Ltd.</description><subject>ASIP</subject><subject>C (programming language)</subject><subject>code generation</subject><subject>compiler/architecture co-design</subject><subject>Descriptions</subject><subject>Embedded computer systems</subject><subject>embedded system</subject><subject>Exploration</subject><subject>ISS</subject><subject>Microprocessors</subject><subject>Optimization</subject><subject>Representations</subject><subject>Selectors</subject><issn>0038-0644</issn><issn>1097-024X</issn><issn>1097-024X</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2011</creationdate><recordtype>article</recordtype><recordid>eNp10E9LwzAYBvAgCs4p-BF600v1TfOnzVHnNh2bCiobXkKaJVrt1pqk6L69lYrowdPz8PLjPTwIHWI4wQDJqa9NWwjdQj0MIo0hoYtt1AMgWQyc0l205_0LAMYs4T10MVI-RE9O1c9xrrxZRsXaB9foUFTryJvSdM1WLlo1ZSjiqgl1E34zv492rCq9OfjOPnoYDe8Hl_H0Znw1OJvGOhGcxnaZU0Nyq5a5SUUbggjBlNZK2QRYlgluIQWiLaM45xraW5obzimzLLNL0kdH3d_aVW-N8UGuCq9NWaq1qRovBWDOBc9YK487qV3lvTNW1q5YKbeRGOTXTrLdSX7t1NK4o-9FaTb_Onl3O_zrCx_Mx49X7lXylKRMzq_HcraAx_PZZCLn5BMy5Xpf</recordid><startdate>201105</startdate><enddate>201105</enddate><creator>Youn, Jonghee M.</creator><creator>Lee, Jongwon</creator><creator>Paek, Yunheung</creator><creator>Lee, Jongeun</creator><creator>Scharwaechter, Hanno</creator><creator>Leupers, Rainer</creator><general>John Wiley &amp; Sons, Ltd</general><scope>BSCLL</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>F28</scope><scope>FR3</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>201105</creationdate><title>Fast graph-based instruction selection for multi-output instructions</title><author>Youn, Jonghee M. ; Lee, Jongwon ; Paek, Yunheung ; Lee, Jongeun ; Scharwaechter, Hanno ; Leupers, Rainer</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c2964-fdb4e3bfadbe79fad93995accaaf2058896f0703cf541b6c00587be6645f58fd3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2011</creationdate><topic>ASIP</topic><topic>C (programming language)</topic><topic>code generation</topic><topic>compiler/architecture co-design</topic><topic>Descriptions</topic><topic>Embedded computer systems</topic><topic>embedded system</topic><topic>Exploration</topic><topic>ISS</topic><topic>Microprocessors</topic><topic>Optimization</topic><topic>Representations</topic><topic>Selectors</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Youn, Jonghee M.</creatorcontrib><creatorcontrib>Lee, Jongwon</creatorcontrib><creatorcontrib>Paek, Yunheung</creatorcontrib><creatorcontrib>Lee, Jongeun</creatorcontrib><creatorcontrib>Scharwaechter, Hanno</creatorcontrib><creatorcontrib>Leupers, Rainer</creatorcontrib><collection>Istex</collection><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ANTE: Abstracts in New Technology &amp; Engineering</collection><collection>Engineering Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>Software, practice &amp; experience</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Youn, Jonghee M.</au><au>Lee, Jongwon</au><au>Paek, Yunheung</au><au>Lee, Jongeun</au><au>Scharwaechter, Hanno</au><au>Leupers, Rainer</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Fast graph-based instruction selection for multi-output instructions</atitle><jtitle>Software, practice &amp; experience</jtitle><addtitle>Softw: Pract. Exper</addtitle><date>2011-05</date><risdate>2011</risdate><volume>41</volume><issue>6</issue><spage>717</spage><epage>736</epage><pages>717-736</pages><issn>0038-0644</issn><issn>1097-024X</issn><eissn>1097-024X</eissn><abstract>A multi‐output instruction (MOI) is an instruction that produces multiple outputs to its destination locations. Such inherently parallel instructions are becoming more and more popular in embedded processors, due to the advances in application‐specific architectures. In order to provide high‐level programmability and thus guarantee widespread acceptance, sophisticated compiler support for these programmable cores is necessary. However, traditional tree‐based approaches for instruction selection, although very fast, fail to exploit MOIs mainly because of the fundamental limitation of the tree representation. In fact, to generate optimal code with MOIs requires a more general graph‐based formulation of the instruction selection problem, which is at least NP‐complete. In this paper we present a new methodology to automatically generate from simple instruction set descriptions, graph‐based code selectors that can effectively utilize all provided instructions including MOIs. Our experimental results using a set of benchmarks on a target processor with various MOIs of up to two outputs demonstrate that our generated code selectors can quickly and effectively exploit many MOIs at the application level, and therefore are highly desirable both for architecture exploration and as code generators after architecture is fixed. Copyright © 2010 John Wiley &amp; Sons, Ltd.</abstract><cop>Chichester, UK</cop><pub>John Wiley &amp; Sons, Ltd</pub><doi>10.1002/spe.1034</doi><tpages>20</tpages></addata></record>
fulltext fulltext
identifier ISSN: 0038-0644
ispartof Software, practice & experience, 2011-05, Vol.41 (6), p.717-736
issn 0038-0644
1097-024X
1097-024X
language eng
recordid cdi_proquest_miscellaneous_901669685
source Wiley Online Library Journals Frontfile Complete
subjects ASIP
C (programming language)
code generation
compiler/architecture co-design
Descriptions
Embedded computer systems
embedded system
Exploration
ISS
Microprocessors
Optimization
Representations
Selectors
title Fast graph-based instruction selection for multi-output instructions
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-07T09%3A38%3A40IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Fast%20graph-based%20instruction%20selection%20for%20multi-output%20instructions&rft.jtitle=Software,%20practice%20&%20experience&rft.au=Youn,%20Jonghee%20M.&rft.date=2011-05&rft.volume=41&rft.issue=6&rft.spage=717&rft.epage=736&rft.pages=717-736&rft.issn=0038-0644&rft.eissn=1097-024X&rft_id=info:doi/10.1002/spe.1034&rft_dat=%3Cproquest_cross%3E901669685%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=901669685&rft_id=info:pmid/&rfr_iscdi=true