A4 Vertaisarvioitu artikkeli konferenssijulkaisussa
Exploiting Regularity of User-Defined Types to Improve Precision of Program Analyses
Tekijät: Xiaolong Tang, Jaakko Järvi
Konferenssin vakiintunut nimi: ACM Symposium on Applied Computing
Kustantaja: Association for Computing Machinery
Kustannuspaikka: New York, NY
Julkaisuvuosi: 2012
Kokoomateoksen nimi: Proceedings of the 27th Annual ACM Symposium on Applied Computing
Sarjan nimi: SAC '12
ISBN: 9781450308571
DOI: https://doi.org/10.1145/2245276.2232059
Verkko-osoite: https://doi.org/10.1145/2245276.2232059
Tiivistelmä
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.
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.