Recompiling DSP applications to x86 using LLVM IR
Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesis
This thesis describes the design and implementation of a prototype LLVM compiler backend, x86-64p, that compiles code written for a DSP architecture, FADER, into executables for the x86-64 architecture. The prototype takes LLVM IR generated for the FADER architecture and compiles x86-64 executables that emulate the properties of the DSP architecture, e.g. the multiple address spaces, the big-endianness and the support for fixed-point arithmetics. The backend is compared to a previous solution, C-Emu, that converts the DSP code to normal C code that is compiled using a normal x86-64 compiler. The two solutions are compared in terms of their correctness, debuggability and performance. The created prototype handles code containing low-level architectural assumptions better than C-Emu. However, the added emulation reduces the debuggability and performance of the generated executables. We have measured a runtime overhead of up to a factor of two compared to C-Emu. We also present some possible solutions for these issues.
Place, publisher, year, edition, pages
2014. , 114 p.
DSP compiler, LLVM, LLVM IR translation, endian emulation, adress spaces
IdentifiersURN: urn:nbn:se:liu:diva-111829ISRN: LIU-IDA/LITH-EX-A--14/052—SEOAI: oai:DiVA.org:liu-111829DiVA: diva2:760858
Subject / course
Kessler, Christoph, Prof. Dr.
Hansson, Erik, Doktorand