TACAI: An Intermediate Representation Based on Abstract Interpretation
Abstract: Most Java static analysis frameworks provide an intermedi- ate presentation (IR) of Java Bytecode to facilitate the development of static analyses. While such IRs are often based on three-address code, the transformation itself is a great opportunity to apply optimizations to the transformed code, such as constant propagation. In this paper, we propose TACAI, a refinable IR that is based on abstract interpretation results of a method’s bytecode. Exchanging the underlying abstract interpretation domains enables the creation of various IRs of different precision levels. Our evaluation shows that TACAI can be efficiently computed and provides slightly more precise receiver- type information than Soot’s Shimple representation. Furthermore, we show how exchanging the underlying abstract domains directly impacts the generated IR.
Resources
BibTeX
@inproceedings {RKH+, title = {{TACAI: An Intermediate Representation Based on Abstract Interpretation}}, author = {Reif, Michael and Kübler, Florian and Helm, Dominik and , and Eichberg, Michael and Mezini, Mira}, booktitle = {{Proceedings of the 9th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis}}, series = {SOAP}, year = {2020}, doi = {10.1145/3394451.3397204}, url = {http://dx.doi.org/10.1145/3394451.3397204}, }