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...
Gespeichert in:
Veröffentlicht in: | Software, practice & experience practice & experience, 2011-05, Vol.41 (6), p.717-736 |
---|---|
Hauptverfasser: | , , , , , |
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 & 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 & 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 & experience, 2011-05, Vol.41 (6), p.717-736</ispartof><rights>Copyright © 2010 John Wiley & 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 & 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 & 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 & 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 & 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 & 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 & 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 & Sons, Ltd.</abstract><cop>Chichester, UK</cop><pub>John Wiley & 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 |