Home
Scholarly Works
Code graph transformations for verifiable...
Conference

Code graph transformations for verifiable generation of SIMD-parallel assembly code

Abstract

The Coconut code generator produces highly efficient assembly code, targeting signal processing applications such as Magnetic Resonance Imaging. It takes advantage of SIMD-parallelism, and captures as patterns assembly language "tricks" that produce very efficient, but highly convoluted code - the motivation is to beat the expert assembly tuner, while producing reliable output and maintainable input. On a growing set of benchmarks, it produces code with peak or near-peak efficiency. To facilitate formal verification of the resulting code, the intermediate languages used in compilation are all variations on term hypergraphs (jungles) that we call "code graphs". To verify the results of compilation, schedulable code graphs containing hyperedges labelled by instructions operating on vectors of components are transformed by replacing SIMD instructions with non-vector instructions, applying simplification rules, and comparing the result to specifications. © 2008 Springer Berlin Heidelberg.

Authors

Anand CK; Kahl W

Volume

5088 LNCS

Pagination

pp. 217-232

Publication Date

December 1, 2008

DOI

10.1007/978-3-540-89020-1-16

Conference proceedings

Lecture Notes in Computer Science Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics

ISSN

0302-9743

Labels

View published work (Non-McMaster Users)

Contact the Experts team