Code Generation for Reconfigurable Explicit Datapath Architectures with LLVM

Good tool support is essential for computing platforms because they increase the programmability of the platform. This is especially the case for reconfigurable architectures because an application needs to be mapped on the architecture for each configuration individually. This paper investigates how the LLVM framework can be used to generate code for a Coarse Grained Reconfigurable Array (CGRA). A CGRA compiler must be retargetable to support all possible architecture configurations. The explicit bypassing capabilities of the hardware should be utilized. Utilizing the hardware features requires the compiler to support software pipelining, multiple register files and operation based scheduling. This paper evaluates the potential of the LLVM framework and identifies missing features for the support of reconfigurable explicit datapath architectures.

[1]  Henk Corporaal,et al.  Energy efficient code generation for processors with exposed datapath , 2011 .

[2]  Johan Janssen,et al.  Compiler Strategies for Transport Triggered Architectures , 2001 .

[3]  Pekka Jääskeläinen,et al.  Code Density and Energy Efficiency of Exposed Datapath Architectures , 2014, Journal of Signal Processing Systems.

[4]  Mats Carlsson,et al.  Register allocation and instruction scheduling in Unison , 2016, CC.

[5]  Gerhard Fettweis,et al.  Code Generation for STA Architecture , 2006, Euro-Par.

[6]  Josep Llosa,et al.  Swing module scheduling: a lifetime-sensitive approach , 1996, Proceedings of the 1996 Conference on Parallel Architectures and Compilation Technique.

[7]  Henk Corporaal,et al.  Energy Efficient Code Generation for Streaming Applications , 2009 .

[8]  Gerhard Fettweis,et al.  Synchronous Transfer Architecture (STA) , 2004, SAMOS.

[9]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[10]  Henk Corporaal,et al.  Code generation for transport triggered architectures , 1994, Code Generation for Embedded Processors.

[11]  Christoforos E. Kozyrakis,et al.  Understanding sources of inefficiency in general-purpose chips , 2010, ISCA.

[12]  Yifan He,et al.  A Co-Design Framework with OpenCL Support for Low-Energy Wide SIMD Processor , 2015, J. Signal Process. Syst..

[13]  Henk Corporaal,et al.  MOVE: a framework for high-performance processor design , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[14]  Henk Corporaal,et al.  High-level software-pipelining in LLVM , 2015, SCOPES.

[15]  Yifan He,et al.  A Low-Energy Wide SIMD Architecture with Explicit Datapath , 2015, J. Signal Process. Syst..

[16]  C.H. van Berkel,et al.  Multi-core for mobile phones , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[17]  Lucian Codrescu Qualcomm Hexagon DSP: An architecture optimized for mobile multimedia and communications , 2013, 2013 IEEE Hot Chips 25 Symposium (HCS).