LOSESep 26, 2012

On the correctness of a branch displacement algorithm

arXiv:1209.5920v14 citations
Originality Incremental advance
AI Analysis

This work provides a formally verified solution for compiler optimization, addressing a specific bottleneck in assembler design, though it is incremental as it builds on existing problem formulations.

The paper tackles the branch displacement problem in assembler design, which involves selecting instructions of varying sizes to minimize program size, and presents a formally verified algorithm proven correct for this NP-hard problem.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes