The LLVM compiler framework can be used as a compiler backend that supports generating machine code for multiple computer architectures. In this thesis we implemented an LLVM backend for the SIC/XE architecture, which is used for teaching system software. This enables generation of SIC/XE machine code from every language that can be compiled to LLVM’s intermediate representation. We also added SIC/XE support to the Clang compiler, which is used for compiling C-family programming languages. We demonstrated our work with compilation of three different C programs and compared the amount of instructions with different optimization levels.
|