Verified Code Generation for Embedded Systems

Abstract Digital signal processors provide specialized SIMD (single instruction multiple data) operations designed to dramatically increase performance in embedded systems. While these operations are simple to understand, their unusual functions and their parallelism make it difficult for automatic code generation algorithms to use them effectively. In this paper, we present a new optimizing code generation method that can deploy these operations successfully while also verifying that the generated code is a correct translation of the input program.

[1]  Rainer Leupers,et al.  Generation of interpretive and compiled instruction set simulators , 1999, Proceedings of the ASP-DAC '99 Asia and South Pacific Design Automation Conference 1999 (Cat. No.99EX198).

[2]  Amir Pnueli,et al.  Translation Validation , 1998, TACAS.

[3]  Amir Pnueli,et al.  The Code Validation Tool (CVT) , 1998, International Journal on Software Tools for Technology Transfer (STTT).

[4]  Eduardo Pelegri-Llopart,et al.  Rewrite systems, pattern matching, and code generation , 1988 .

[5]  Manuel Blum,et al.  Software reliability via run-time result-checking , 1997, JACM.

[6]  Gerhard Goos,et al.  Verifying Compilers and ASMs , 2000, Abstract State Machines.

[7]  Helmut Emmelmann Code Selection by Regularly Controlled Term Rewriting , 1991, Code Generation.

[8]  Rainer Leupers,et al.  Software synthesis and code generation for signal processing systems , 2000 .

[9]  Rainer Leupers,et al.  Phase-Coupled Mapping of Data Flow Graphs to Irregular Data Paths , 1999, Des. Autom. Embed. Syst..

[10]  Ron K. Cytron,et al.  Efficiently computing φ-nodes on-the-fly , 1993 .

[11]  Thomas Müller Effiziente Verfahren zur Befehlsanordnung , 1995 .

[12]  Thilo S. Gaul,et al.  AJACS: Applying Java to Automotive Control Systems , 2001 .

[13]  Wolf Zimmermann,et al.  Mechanized Veri cation of Compiler , 1998 .

[14]  Daniel Kästner Retargetable postpass optimisation by integer linear programming , 2000 .

[15]  Manuel Blum,et al.  Designing programs that check their work , 1989, STOC '89.

[16]  Wolf Zimmermann,et al.  Construction of Veriied Software Systems with Program-checking: an Application to Compiler Back-ends , 1999 .

[17]  Joost-Pieter Katoen,et al.  Code generation based on formal BURS theory and heuristic search , 1997, Acta Informatica.

[18]  Birger Landwehr A genetic algorithm based approach for multi-objective data-flow graph optimization , 1999, Proceedings of the ASP-DAC '99 Asia and South Pacific Design Automation Conference 1999 (Cat. No.99EX198).

[19]  Gerhard Goos,et al.  Verification of Compilers , 1999, Correct System Design.

[20]  George C. Necula,et al.  The design and implementation of a certifying compiler , 1998, PLDI.

[21]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[22]  Daniel Kästner PROPAN: A Retargetable System for Postpass Optimisations and Analyses , 2000, LCTES.

[23]  Wolf Zimmermann,et al.  On the Construction of Correct Compiler Back-Ends: An ASM-Approach , 1997, J. Univers. Comput. Sci..

[24]  George C. Necula,et al.  A certifying compiler for Java , 2000, PLDI '00.

[25]  Peter Fritzson,et al.  Java and CoSy Technology for Embedded Systems : the JOSES Project , 1999 .

[26]  Manuel Blum,et al.  Self-testing/correcting with applications to numerical problems , 1990, STOC '90.

[27]  Mark N. Wegman,et al.  An efficient method of computing static single assignment form , 1989, POPL '89.

[28]  Helmut Emmelmann,et al.  BEG: a generator for efficient back ends , 1989, PLDI '89.

[29]  Amir Pnueli,et al.  Validation of Optimizing Compilers , 2001 .

[30]  Helmut Emmelmann,et al.  Codeselektion mit regulär gesteuerter Termersetzung , 1994 .

[31]  George C. Necula,et al.  Translation validation for an optimizing compiler , 2000, PLDI '00.

[32]  Martin Trapp,et al.  Optimierung objektorientierter Programme , 2001 .

[33]  Rainer Leupers,et al.  Constraint driven code selection for fixed-point DSPs , 1999, DAC '99.