A1 Vertaisarvioitu alkuperäisartikkeli tieteellisessä lehdessä
Summary-Based Data-Flow Analysis that Understands Regular Composite Objects and Iterators
Tekijät: Tang XL, Järvi J
Kustantaja: ASSOC COMPUTING MACHINERY
Julkaisuvuosi: 2012
Journal: Applied Computing Review
Tietokannassa oleva lehden nimi: APPLIED COMPUTING REVIEW
Lehden akronyymi: APPL COMPUT REV
Vuosikerta: 12
Aloitussivu: 36
Lopetussivu: 47
Sivujen määrä: 12
ISSN: 1559-6915
DOI: https://doi.org/10.1145/2432546.2432549
Tiivistelmä
Today's industrial-strength compilers do not take advantage of the semantics of user-defined types and operations when analyzing code involving objects 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, however, be analyzed efficiently and effectively. The notion of regularity comes from generic programming and C + +. Programmers routinely rely on regularity when reasoning about generic code and manually performing (optimizing) code transformations and rewrites. Stepanov suggests that compilers, too, should take advantage of regularity to expand the opportunities for applying optimizing transformations. This paper exploits the properties of regular composite objects to produce concise procedure summaries for summarybased analyses, thus taking a step towards Stepanov's goal. In addition to regularity and compositeness, we also make our analysis aware of the prevalent "iterator" abstraction, which expands the applicability of our approach. We target the C + + language, and use the LLVM framework to implement the analysis1.
Today's industrial-strength compilers do not take advantage of the semantics of user-defined types and operations when analyzing code involving objects 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, however, be analyzed efficiently and effectively. The notion of regularity comes from generic programming and C + +. Programmers routinely rely on regularity when reasoning about generic code and manually performing (optimizing) code transformations and rewrites. Stepanov suggests that compilers, too, should take advantage of regularity to expand the opportunities for applying optimizing transformations. This paper exploits the properties of regular composite objects to produce concise procedure summaries for summarybased analyses, thus taking a step towards Stepanov's goal. In addition to regularity and compositeness, we also make our analysis aware of the prevalent "iterator" abstraction, which expands the applicability of our approach. We target the C + + language, and use the LLVM framework to implement the analysis1.