Title :
Formal verification of dead code elimination in Isabelle/HOL
Author :
Blech, Jan Olaf ; Gesellensetter, Lars ; Glesner, Sabine
Author_Institution :
Inst. for Program Struct. & Data Organ., Karlsruhe Univ., Germany
Abstract :
Correct compilers are a vital precondition to ensure software correctness. Optimizations are the most error-prone phases in compilers. In this paper, we formally verify dead code elimination (DCE) within the theorem prover Isabelle/HOL. DCE is a popular optimization in compilers which is typically performed on the intermediate representation. In our work, we reformulate the algorithm for DCE so that it is applicable to static single assignment (SSA) form which is a state of the art intermediate representation in modern compilers, thereby showing that DCE is significantly simpler on SSA form than on classical intermediate representations. Moreover, we formally prove our algorithm correct within the theorem prover Isabelle/HOL. Our program equivalence criterion used in this proof is based on bisimulation and, hence, captures also the case of non-termination adequately. Finally we report on our implementation of this verified DCE algorithm in the industrial-strength scale compiler system.
Keywords :
bisimulation equivalence; formal specification; optimising compilers; program verification; theorem proving; Isabelle/HOL; dead code elimination; error-prone phase; formal verification; industrial-strength scale compiler system; program equivalence criterion; software correctness; static single assignment; theorem prover; Algorithm design and analysis; Computer languages; Data analysis; Formal verification; Information analysis; Optimizing compilers; Performance analysis; Program processors; Software design; Software engineering;
Conference_Titel :
Software Engineering and Formal Methods, 2005. SEFM 2005. Third IEEE International Conference on
Print_ISBN :
0-7695-2435-4
DOI :
10.1109/SEFM.2005.20