A joint project by Dan Motles and Nee Taylor
Build with make, run with MiniJavaC
the make.bat file was modified to compile on linux. you may need to modify it to run on windows.
To give the grader a better idea of what happened, I would like to explain the complete utter failing on my (Dan Motles) part to properly manage the partnership. Initially I thought it would be a good idea to solo this project. That was an incorrect assumption.
Since we ran into difficulty meeting the requirements last time because I had not delegated Nee any tasks, this time, i decided to split the project with nee working on mapping the IR to code generation and I doing most of the heavy work in register allocation land.
Unfortunately, come this weekend, we failed to produce code that would even work on the first milestones.
Basically, I am turning one of the early prototype-working versions of register allocation because that's what I focused a lot of time on, and you can see it working in simple cases which dont require coalescing.
Nee contributed by writing code in mips/code which is the package that was set to contain our mapping from IR to machine code.
I worked primarily in mips/allocator, and also heavily modified many many files.
The project will run liveness analysis and attempt to do simple register allocation. It will print the iterations and the final resulting mappings at the end of execution.
There's about 2-3k lines of changes in another git branch which contains the not-working version of allocation with spills, coalescing, and freezing. It was my dream to see this work, unffortunately I had to stop to try and produce something that would run.
Man. We should have. I did not properly commuinicate with my partner the needs of what I needed from him, and unfortunately his code was not as complete as I had desired to integrate.
We have. If you would like to see other branches, or give me a chance to do more/explain myself, please contact me at dmm141@pitt.edu