Junio Cezar R. da Silva, Fernando Magno Quintão Pereira
{"title":"Demand-driven less-than analysis","authors":"Junio Cezar R. da Silva, Fernando Magno Quintão Pereira","doi":"10.1145/3125374.3125379","DOIUrl":null,"url":null,"abstract":"A less-than analysis is a technique used by compilers to build a partial ordering between the integer variables in a program. Recently, researchers have shown how to use less-than information to improve the precision of alias analyses. The literature describes two techniques to build less-than relations. Both are asymptotically equivalent to computing a transitive closure in a graph. In this paper, we depart from this approach, and introduce an algorithm that builds less-than relations on demand. We claim that such algorithm is more adequate than the current state-of-the-art approaches, as it performs only the necessary work to satisfy the needs of its clients, i.e., alias analyses and optimizations that require less-than information. To validate our idea, we have implemented it onto the LLVM compilation infrastructure. Depending on the client analysis, our implementation may lead to runtime savings of up to 68% on large benchmarks, when compared to the more traditional approach based on the construction of the transitive closure.","PeriodicalId":430395,"journal":{"name":"Proceedings of the 21st Brazilian Symposium on Programming Languages","volume":"38 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","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.3125379","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
A less-than analysis is a technique used by compilers to build a partial ordering between the integer variables in a program. Recently, researchers have shown how to use less-than information to improve the precision of alias analyses. The literature describes two techniques to build less-than relations. Both are asymptotically equivalent to computing a transitive closure in a graph. In this paper, we depart from this approach, and introduce an algorithm that builds less-than relations on demand. We claim that such algorithm is more adequate than the current state-of-the-art approaches, as it performs only the necessary work to satisfy the needs of its clients, i.e., alias analyses and optimizations that require less-than information. To validate our idea, we have implemented it onto the LLVM compilation infrastructure. Depending on the client analysis, our implementation may lead to runtime savings of up to 68% on large benchmarks, when compared to the more traditional approach based on the construction of the transitive closure.