On the correctness of a branch displacement algorithm
Boender, Jaap and Sacerdoti Coen, Claudio (2014) On the correctness of a branch displacement algorithm. In: Tools and Algorithms for the Construction and Analysis of Systems : 20th International Conference, TACAS 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Grenoble, France, April 5-13, 2014. Proceedings. Ábrahám, Erika and Havelund, Klaus, eds. Lecture Notes in Computer Science (8413) . Springer, pp. 605-619. ISBN 9783642548611. [Book Section] (doi:10.1007/978-3-642-54862-8_53)
|
PDF
- Final accepted version (with author's formatting)
Download (371kB) | Preview |
Abstract
The branch displacement problem is a well-known problem in assembler design. It revolves around the feature, present in several processor families, of having different instructions, of different sizes, for jumps of different displacements. The problem, which is provably NP-hard, is then to select the instructions such that one ends up with the smallest possible program.
During our research with the CerCo project on formally verifying a C compiler, we have implemented and proven correct an algorithm for this problem. In this paper, we discuss the problem, possible solutions, our specific solutions and the proofs.
Item Type: | Book Section |
---|---|
Keywords (uncontrolled): | formal verification; interactive theorem proving; assembler; branch displacement optimisation |
Research Areas: | A. > School of Science and Technology > Computer Science A. > School of Science and Technology > Computer Science > Artificial Intelligence group A. > School of Science and Technology > Computer Science > Foundations of Computing group |
Item ID: | 13750 |
Notes on copyright: | Archiving permitted by publisher but embargoed for 12 months from date of publication. |
Useful Links: | |
Depositing User: | Jaap Boender |
Date Deposited: | 05 Sep 2014 09:06 |
Last Modified: | 29 Nov 2022 23:46 |
URI: | https://eprints.mdx.ac.uk/id/eprint/13750 |
Actions (login required)
![]() |
View Item |
Statistics
Additional statistics are available via IRStats2.