Translating ETC to LLVM Assembly

The LLVM compiler infrastructure project provides a machine independent virtual instruction set, along with tools for its optimisation and compilation to a wide range of machine architectures. Compiler writers can use the LLVM’s tools and instruction set to simplify the task of supporting multiple hardware/software platforms. In this paper we present an exploration of translation from stack-based Extended Transputer Code (ETC) to SSA-based LLVM assembly language. This work is intended to be a stepping stone towards direct compilation of occam-π and similar languages to LLVM’s instruction set.

[1]  Michel Schinz,et al.  Compiling scala for the Java virtual machine , 2005 .

[2]  Adam T. Sampson,et al.  Multicore scheduling for lightweight communicating processes , 2009, Sci. Comput. Program..

[3]  Kenneth R. Anderson,et al.  Performing Lisp analysis of the FANNKUCH benchmark , 1994, LIPO.

[4]  Chris Lattner,et al.  LLVM: AN INFRASTRUCTURE FOR MULTI-STAGE OPTIMIZATION , 2000 .

[5]  Matthew C. Jadud,et al.  The Transterpreter: A Transputer Interpreter , 2004 .

[6]  David C. M. Wood KRoC-Calling C Functions from occam , 1998 .

[7]  Rich Hickey,et al.  The Clojure programming language , 2008, DLS '08.

[8]  David May,et al.  Communicating process architecture for multicores , 2010, Concurr. Comput. Pract. Exp..

[9]  Peter H. Welch,et al.  The Kent retargetable occam compiler , 1996 .

[10]  Graham R. Brookes,et al.  Inside the Transputer , 1990 .

[11]  Damian J. Dimmich,et al.  A Foreign-Function Interface Generator for occam-pi , 2005, CPA.

[12]  Susan Stepney,et al.  Investigating Patterns for the Process-Oriented Modelling and Simulation of Space in Complex Systems , 2008, ALIFE.

[13]  The T9000 transputer instruction set manual , 1993 .

[14]  F. Barnes tranx 86 – an Optimising ETC to IA 32 Translator , 2001 .

[15]  Frederick R. M. Barnes tranx86 - an Optimising ETC to IA32 Translator , 2001 .

[16]  Michael D. Poole Extended Transputer Code - a Target-Independent Representation of Parallel Programs , 1998 .

[17]  John C. Reynolds,et al.  The discoveries of continuations , 1993, LISP Symb. Comput..