寄存器分配和指令调度的挑战

João F. N. Carvalho, B. L. Sousa, Marcus R. Araújo, Mariza Bigonha
{"title":"寄存器分配和指令调度的挑战","authors":"João F. N. Carvalho, B. L. Sousa, Marcus R. Araújo, Mariza Bigonha","doi":"10.1145/3125374.3125380","DOIUrl":null,"url":null,"abstract":"Both register allocation and instruction scheduling are old and open issues in Computer Science, despite the efforts already made to address them separate or jointly. Register allocation may be seen as having two parts: allocation, which decides which values should be in registers, and assignment, which assigns a specific register to each value. Instruction scheduling aims at identifying and moving the instructions in the code, changing their original execution sequence, so that they may run in parallel. Register allocation and instruction scheduling attempt to minimize the execution time of the program, however, they are interdependent and are involved in a prioritization problem. This paper presents a Systematic Literature Review (SLR) related to this problem. From a total of 542 primary studies initially obtained on six databases, 25 studies closely related to this research theme were identified, 12 of them published between 2000 and October 2016. These studies were analyzed to answer the research questions proposed in this SLR, producing useful informations about this theme and about the approaches that, traditionally, have been used to solving this problem. An important finding of this research is the confirmation that this problem still has no definitive solution, and continues to be a relevant challenge for developers, since its solution is closely linked to the quality of the code generated by the compilers in general.","PeriodicalId":430395,"journal":{"name":"Proceedings of the 21st Brazilian Symposium on Programming Languages","volume":"90 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"The Register Allocation and Instruction Scheduling Challenge\",\"authors\":\"João F. N. Carvalho, B. L. Sousa, Marcus R. Araújo, Mariza Bigonha\",\"doi\":\"10.1145/3125374.3125380\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Both register allocation and instruction scheduling are old and open issues in Computer Science, despite the efforts already made to address them separate or jointly. Register allocation may be seen as having two parts: allocation, which decides which values should be in registers, and assignment, which assigns a specific register to each value. Instruction scheduling aims at identifying and moving the instructions in the code, changing their original execution sequence, so that they may run in parallel. Register allocation and instruction scheduling attempt to minimize the execution time of the program, however, they are interdependent and are involved in a prioritization problem. This paper presents a Systematic Literature Review (SLR) related to this problem. From a total of 542 primary studies initially obtained on six databases, 25 studies closely related to this research theme were identified, 12 of them published between 2000 and October 2016. These studies were analyzed to answer the research questions proposed in this SLR, producing useful informations about this theme and about the approaches that, traditionally, have been used to solving this problem. An important finding of this research is the confirmation that this problem still has no definitive solution, and continues to be a relevant challenge for developers, since its solution is closely linked to the quality of the code generated by the compilers in general.\",\"PeriodicalId\":430395,\"journal\":{\"name\":\"Proceedings of the 21st Brazilian Symposium on Programming Languages\",\"volume\":\"90 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2017-09-21\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 21st Brazilian Symposium on Programming Languages\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3125374.3125380\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 21st Brazilian Symposium on Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3125374.3125380","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

摘要

寄存器分配和指令调度都是计算机科学中古老而开放的问题,尽管人们已经努力单独或联合解决它们。寄存器分配可以被看作有两个部分:分配(allocation)和赋值(assignment),前者决定哪些值应该放在寄存器中,后者为每个值分配一个特定的寄存器。指令调度的目的是识别和移动代码中的指令,改变它们原来的执行顺序,使它们可以并行运行。寄存器分配和指令调度试图最小化程序的执行时间,然而,它们是相互依赖的,并且涉及优先级问题。本文就这一问题进行了系统的文献综述。从最初从六个数据库中获得的542项主要研究中,确定了25项与该研究主题密切相关的研究,其中12项发表于2000年至2016年10月之间。对这些研究进行了分析,以回答本单反中提出的研究问题,产生关于这一主题的有用信息,以及传统上用于解决这一问题的方法。这项研究的一个重要发现是确认了这个问题仍然没有明确的解决方案,并且仍然是开发人员面临的一个相关挑战,因为它的解决方案与编译器生成的代码质量密切相关。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
The Register Allocation and Instruction Scheduling Challenge
Both register allocation and instruction scheduling are old and open issues in Computer Science, despite the efforts already made to address them separate or jointly. Register allocation may be seen as having two parts: allocation, which decides which values should be in registers, and assignment, which assigns a specific register to each value. Instruction scheduling aims at identifying and moving the instructions in the code, changing their original execution sequence, so that they may run in parallel. Register allocation and instruction scheduling attempt to minimize the execution time of the program, however, they are interdependent and are involved in a prioritization problem. This paper presents a Systematic Literature Review (SLR) related to this problem. From a total of 542 primary studies initially obtained on six databases, 25 studies closely related to this research theme were identified, 12 of them published between 2000 and October 2016. These studies were analyzed to answer the research questions proposed in this SLR, producing useful informations about this theme and about the approaches that, traditionally, have been used to solving this problem. An important finding of this research is the confirmation that this problem still has no definitive solution, and continues to be a relevant challenge for developers, since its solution is closely linked to the quality of the code generated by the compilers in general.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信