Linux Tiger flow
Download mipsel-binutils at: http://www.emdebian.org/toolchains/search.php?package=binutils-mipsel-linux-gnu&distro=sid
(done with legup-prelto opt pass, however does not work with clang, since it does not always align properly) Previously, legup only supports int to int memcpy and memset. It should support other types of memcpy, memset and memmove.
(done with LegupLowerIntrinsics.cpp) Should not change LowerIntrinsics.cpp, but modify a copy of it in Transformations/Legup/PreLTO.cpp
(done with llvm-ld after opt pass) Also, we shouldn't need to include memcpy and memset in the code when they aren't called.
Struct with primitives and pointers with: getelementptr, load, store, global initialization, zero initialization.
Struct with 1-depth array with: global and zero initialization
Generic .mif generation
Generic GEP translation into Verilog
Generic typecast from struct (memcpy and memset)
Pointer comparison with NULL, 0
Currently working on
Use the same layout for MIPS, Verilog and native machine. This boils down to adding -m32, -malign-double and shrinking pointers to 32 bits.
Get Linux Tiger flow working. For now, get gxemul working.
Verify that bytecode variables equal Verilog output (legup-watch pass). Change all undef's to 0, get gsm working where the printing flows onto two lines, get the pass working with multiple functions.