Any time someone takes a swipe at something (in this case, gcc, at the beginning), baring extenuating evidence I conclude they're more interested in being a jerk than actually making their point.
At the end of the entire writeup he concluded:
Quote:
After completing this project, I believe that static recompilation does not have a practical application for video game emulation. It is thwarted by the inability to completely disassemble a game without executing it as well as the fact that multiple systems are executing in parallel
Which is pretty blatantly false, unless he very specifically meant "NES video game emulation". Even half-assed static recompilation has been used to great success in high-level emulators.
The biggest problem with his methodology is that he completely half-assed the disassembly. GIGO and all that, if you can't get a good master document, you're not going to get good output. I can't really fault him for not wanting to make a Comprehensive NES Disassembler, since that's Hard and a Big Project that's
Suspiciously Yak-Shaped, but...
Another is assuming that he could start with a 6502 core and just bolt the PPU on. Failing to identify the full shape of the project is a great way to get blind-sided later on ... which he did.
Statically recompiling some kind of "no surprises" architecture like CHIP8 or (i think) the Z-machine would have been much more successful.
Ultimately he had two goals: learn how to write a frontend for LLVM, and write a NES emulator that was Different, and he definitely succeeded at those two.
edit:typo (tags should have been takes)