Exploiting Regularity of User-Defined Types to Improve Precision of Program Analyses
: Xiaolong Tang, Jaakko Järvi
: ACM Symposium on Applied Computing
Publisher: Association for Computing Machinery
: New York, NY
: 2012
: Proceedings of the 27th Annual ACM Symposium on Applied Computing
: SAC '12
: 9781450308571
DOI: https://doi.org/10.1145/2245276.2232059
: https://doi.org/10.1145/2245276.2232059
Traditional compilers do not effectively optimize code involving operations on values of user-defined types. We show that user-defined types that are both "regular" and "composite" (roughly corresponding to what is casually known as "value semantics") can be analyzed efficiently and effectively. The notion of regularity comes from generic programming and C++. Is routinely used by programmers for reasoning about generic code. Stepanov suggests that compilers too should take advantage of regularity for optimizations. This paper exploits the properties of regular composite objects to produce concise procedure summaries for summary-based analyses, thus taking a step towards Stepanov's goal. We use the LLVM framework to implement the analysis.