New backend for the y86 educational instruction set

Hi everyone,

I have recently started working on a new LLVM backend for the educational y86 architecture (inspired by, but not a strict subset of x86), which is introduced in the book Computer Systems (http://csapp.cs.cmu.edu/).

The authors of the book (which I have no affiliation to) have done an amazing work not only in the presentation of y86, but also providing processor implementation specifications and associated tooling like assemblers and simulators.

During my first look into LLVM a few weeks ago I got really impressed by its overall design and extensibility. It seemed therefore like the perfect framework for creating a compiler and contributing to the y86 ecosystem.

Although the y86 has no “official” hardware (yet?), it’s a good research and experimentation platform (using FPGAs for instance). The implementation, still incomplete but with most fundamental pieces in place, is at https://github.com/ltcmelo/llvm. If anyone would like to contribute…

Cheers,
Leandro