{"title":"一种去除感应变量的新技术","authors":"Haigeng Wang, A. Nicolau, R. Potasman","doi":"10.1145/123465.123501","DOIUrl":null,"url":null,"abstract":"Removing redundant loop induction variables(IV’s) in a sequential program can improve the code performance by making effective use of registers and reducing the dynamic instruction count in the loop. At the microcode level and in high-performance, fine-grain parallel architectures, it is even more important that a parallelizing compiler is able to remove redundant IV’s generated as a by-product of parallelizing transformations. Conventional IV detection algorithm fails in finding an IV family with no basic IV. Copy propagation in general cannot transform an IV family with no basic IV into a family with a basic IV. As a result, conventional IV removal method would not work for more general types of IV families, which often result from loop parallelizing transformations and also exist in sequential programs. Furthermore, IV removal by copy propagation with loop unrolling cannot preserve the semantic of the original code in addition to its space-inefficiency. We present in this paper a new technique for redundant IV removal. It can remove redundant IV’s from more general types of IV families without an overhead of code size increase, which is inevitably incurred by other methods such aa loop unwinding and copy propagation with node splitting . It can also be used to determine whether redundant IV’s should be removed(i.e., benefits the overall performance). We then demonstrate the effectiveness of this technique using some benchmarks. Pcrmisston to copy without fee all or part of this material is granted pro. vlded that the copies are not made or distributed for direct commerc]a 1 advantage, the ACM copyrtght notms and the tMe of the pubhcation and m date appear, and notice is given that copying is by permission of the Association for Computing Machinety. To copy othetwise, or to repubhsh,requm?s a fee andlor specl!ic permission. O 1991 ACM 0-89791-460-0/91/0011/0172 $1.50 *This work is supported h part by NSF grant CCRS704367 and ONR graut NOO014S6K0215 .","PeriodicalId":118572,"journal":{"name":"MICRO 24","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1991-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"A new technique for induction variable removal\",\"authors\":\"Haigeng Wang, A. Nicolau, R. Potasman\",\"doi\":\"10.1145/123465.123501\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Removing redundant loop induction variables(IV’s) in a sequential program can improve the code performance by making effective use of registers and reducing the dynamic instruction count in the loop. At the microcode level and in high-performance, fine-grain parallel architectures, it is even more important that a parallelizing compiler is able to remove redundant IV’s generated as a by-product of parallelizing transformations. Conventional IV detection algorithm fails in finding an IV family with no basic IV. Copy propagation in general cannot transform an IV family with no basic IV into a family with a basic IV. As a result, conventional IV removal method would not work for more general types of IV families, which often result from loop parallelizing transformations and also exist in sequential programs. Furthermore, IV removal by copy propagation with loop unrolling cannot preserve the semantic of the original code in addition to its space-inefficiency. We present in this paper a new technique for redundant IV removal. It can remove redundant IV’s from more general types of IV families without an overhead of code size increase, which is inevitably incurred by other methods such aa loop unwinding and copy propagation with node splitting . It can also be used to determine whether redundant IV’s should be removed(i.e., benefits the overall performance). We then demonstrate the effectiveness of this technique using some benchmarks. Pcrmisston to copy without fee all or part of this material is granted pro. vlded that the copies are not made or distributed for direct commerc]a 1 advantage, the ACM copyrtght notms and the tMe of the pubhcation and m date appear, and notice is given that copying is by permission of the Association for Computing Machinety. To copy othetwise, or to repubhsh,requm?s a fee andlor specl!ic permission. O 1991 ACM 0-89791-460-0/91/0011/0172 $1.50 *This work is supported h part by NSF grant CCRS704367 and ONR graut NOO014S6K0215 .\",\"PeriodicalId\":118572,\"journal\":{\"name\":\"MICRO 24\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1991-09-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"MICRO 24\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/123465.123501\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"MICRO 24","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/123465.123501","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Removing redundant loop induction variables(IV’s) in a sequential program can improve the code performance by making effective use of registers and reducing the dynamic instruction count in the loop. At the microcode level and in high-performance, fine-grain parallel architectures, it is even more important that a parallelizing compiler is able to remove redundant IV’s generated as a by-product of parallelizing transformations. Conventional IV detection algorithm fails in finding an IV family with no basic IV. Copy propagation in general cannot transform an IV family with no basic IV into a family with a basic IV. As a result, conventional IV removal method would not work for more general types of IV families, which often result from loop parallelizing transformations and also exist in sequential programs. Furthermore, IV removal by copy propagation with loop unrolling cannot preserve the semantic of the original code in addition to its space-inefficiency. We present in this paper a new technique for redundant IV removal. It can remove redundant IV’s from more general types of IV families without an overhead of code size increase, which is inevitably incurred by other methods such aa loop unwinding and copy propagation with node splitting . It can also be used to determine whether redundant IV’s should be removed(i.e., benefits the overall performance). We then demonstrate the effectiveness of this technique using some benchmarks. Pcrmisston to copy without fee all or part of this material is granted pro. vlded that the copies are not made or distributed for direct commerc]a 1 advantage, the ACM copyrtght notms and the tMe of the pubhcation and m date appear, and notice is given that copying is by permission of the Association for Computing Machinety. To copy othetwise, or to repubhsh,requm?s a fee andlor specl!ic permission. O 1991 ACM 0-89791-460-0/91/0011/0172 $1.50 *This work is supported h part by NSF grant CCRS704367 and ONR graut NOO014S6K0215 .