{"title":"Computation of Alias Sets from Shape Graphs for Comparison of Shape Analysis Precision","authors":"Viktor Pavlu, M. Schordan, A. Krall","doi":"10.1109/SCAM.2011.11","DOIUrl":null,"url":null,"abstract":"Various shape analysis algorithms have been introduced but their relation in terms of precision often remains unclear as different analyses use different representations of analysis results. The aim of our work is to extract alias sets from shape analysis results to compute a relative precision factor that expresses for a given program how much more precise one analysis is than the other. We present a significant improvement over an existing algorithm based on 3-valued logic to compute alias sets from shape graphs. Instead of looking only at the final nodes in pointer access paths, our common tail algorithm takes sequences of selectors into account. The common tail algorithm is strictly more precise than the existing algorithm by Reps, Sagiv, and Wilhelm, for our benchmarks we can reduce the number of conservative results by a factor of up to 5 in the best case while incurring an additional analysis overhead that is below 10% even in the worst case of our benchmarks. We selected two well-known graph-based shape analyses that use different representations of analysis results to demonstrate the usefulness of our approach. The shape analysis proposed by Nielson, Nielson & Hankin (NNH) and the analysis by Sagiv, Reps & Wilhelm (SRW) were implemented for a subset of C++ in the SATIrE program analysis framework. We are thus able to determine that NNH is more precise than SRW by a factor of 1.62 on average for our set of benchmarks.","PeriodicalId":286433,"journal":{"name":"2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulation","volume":"36 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-09-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulation","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SCAM.2011.11","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Various shape analysis algorithms have been introduced but their relation in terms of precision often remains unclear as different analyses use different representations of analysis results. The aim of our work is to extract alias sets from shape analysis results to compute a relative precision factor that expresses for a given program how much more precise one analysis is than the other. We present a significant improvement over an existing algorithm based on 3-valued logic to compute alias sets from shape graphs. Instead of looking only at the final nodes in pointer access paths, our common tail algorithm takes sequences of selectors into account. The common tail algorithm is strictly more precise than the existing algorithm by Reps, Sagiv, and Wilhelm, for our benchmarks we can reduce the number of conservative results by a factor of up to 5 in the best case while incurring an additional analysis overhead that is below 10% even in the worst case of our benchmarks. We selected two well-known graph-based shape analyses that use different representations of analysis results to demonstrate the usefulness of our approach. The shape analysis proposed by Nielson, Nielson & Hankin (NNH) and the analysis by Sagiv, Reps & Wilhelm (SRW) were implemented for a subset of C++ in the SATIrE program analysis framework. We are thus able to determine that NNH is more precise than SRW by a factor of 1.62 on average for our set of benchmarks.