DontBelieveMe / helix

"Compiler Optimisation Techniques" - BSc Computer Science Final Year Project (Sheffield Hallam University)
2 stars 0 forks source link
arm armv7 c clang compiler optimization

Helix Compiler

Overview

Compiler Optimization Techniques

An optimising compiler for a subset of the C programming language, targeting ARMv7-A 32 bit hardware. The project is specifically concerned with program optimisation and machine code generation. Clang is utilised as the C frontend, and the GCC ARM (Windows Cross) toolchain is utilised for assembling the output assembly, linking and as a runtime standard library (in whatever capacity it can be used).

Developed as the final year project for a BSc Computer Science degree at Sheffield Hallam University.

Technical

Requirements

External

Building

Compiling the full compiler is currently only possible under Windows, but it is possible to compile HelixCore and HelixCoreTests under linux (supported for generating code coverage information of the core libraries).

Visual Studio 2022

In a terminal, from the project root.

Linux

Pretty much identical to windows, but you don't need to compile LLVM/Clang.

Internal Details

Compiler Internals

Core
Tools

Submodules