Building a C-based processor
S. Woutersen · 2005
Until today every compiler has been developed by the idea to modify source code in such a way the hardware can understand it. Over the years this has resulted in inefficient processors caused by backwards compatibility issues, strange as-sembly code constructions caused by the lack of required instructions and nice instructions supported by hardware, but never used by the software. This research reverses the original design process. It starts by analyzing C code and starts working from there to a processing unit, thus supporting a min-imal amount of instructions required to run C and no backward compatibility with other processing units. To limit the design time, several existing retargetable C compilers are an-alyzed whether they have a useful intermediate language which is completely hardware independent. The LCC compilers LCC Bytecode was found to be the most acceptable language, even though a few modifications must be made to be able to efficiently run the code.