Electronic Proceedings in Theoretical Computer Science (Jan 2017)

Towards a Semantics-Aware Code Transformation Toolchain for Heterogeneous Systems

  • Salvador Tamarit,
  • Julio Mariño,
  • Guillermo Vigueras,
  • Manuel Carro

DOI
https://doi.org/10.4204/EPTCS.237.3
Journal volume & issue
Vol. 237, no. Proc. PROLE 2016
pp. 34 – 51

Abstract

Read online

Obtaining good performance when programming heterogeneous computing platforms poses significant challenges. We present a program transformation environment, implemented in Haskell, where architecture-agnostic scientific C code with semantic annotations is transformed into functionally equivalent code better suited for a given platform. The transformation steps are represented as rules that can be fired when certain syntactic and semantic conditions are fulfilled. These rules are not hard-wired into the rewriting engine: they are written in a C-like language and are automatically processed and incorporated into the rewriting engine. That makes it possible for end-users to add their own rules or to provide sets of rules that are adapted to certain specific domains or purposes.