CoVaC: Compiler Validation by Program Analysis of the Cross-Product
Anna Zaks and Amir Pnueli
Abstract:
The paper presents a deductive framework for proving program equivalence
and its application to automatic verification of transformations performed
by optimizing compilers. To leverage existing program analysis techniques,
we reduce the equivalence checking problem to
analysis of one system - a cross-product of the two input programs. We
show how the approach can be effectively used for checking equivalence of
consonant (i.e., structurally similar) programs. Finally, we report on the
prototype tool that applies the developed methodology to verify that a
compiler optimization run preserves the program semantics. Unlike existing
frameworks, CoVaC accommodates absence of compiler annotations
and handles most of the classical intraprocedural optimizations such as
constant folding, reassociation, common subexpression elimination, code
motion, dead code elimination, branch optimizations, and others.
Bibtex:
@inproceedings{ZP2008,
Author = {Anna Zaks and Amir Pnueli},
Title = {{CoVaC}: Compiler Validation by Program Analysis of
the Cross-Product},
Booktitle = {International Symposium on Formal Methods (FM 2008)},
Address = {Turku, Finland},
Month = {May},
Year = 2008
}
Download: