After a lot of pound the code generator seems stable, and I can take a break to release romcc.
Currently it appears that any time it completes without error the code generated is correct.
And most importantly with a few minor tweaks it compiles the code written for l440gx memory initialization, before the compiler was written.
Currently ``constant propagation'', ineffectual code elimination (code that does not affect the output), a good register allocator and always inlining are the only optimizations implemented.
On the wishlist are: - using the mmx & sse registers on x86. - x86-64 and Itanium ports. - struct support - non string constant initializers. - A bibliography.
But it should be good enough to start playing with. The version gets to be 1.0 when the compiler is useful enough to compile a LinuxBIOS port.
ftp://ftp.lnxi.com/pub/src/linuxbios/romcc-0.21.tar.gz
Eric
Hello Eric,
Monday, April 7, 2003, 10:54:54 PM, you wrote:
EWB> After a lot of pound the code generator seems stable, and I can take EWB> a break to release romcc.
May I dare to ask what romcc is? :)
With best regards, Alexander mailto:spirit@reactor.ru
P.S. To all the developers: I noticed "David Woodhouse" in the list of developers at linuxbios.org. Is that the guy from Tyan or just someone with the same name? I knew one guy from Tyan by the name of Dave Woodhouse. So I wonder if that's him...
Alexander Amelkin spirit@reactor.ru writes:
Hello Eric,
Monday, April 7, 2003, 10:54:54 PM, you wrote:
EWB> After a lot of pound the code generator seems stable, and I can take
^^^^^== pounding ( I should learn english :)
EWB> a break to release romcc.
May I dare to ask what romcc is? :)
Sorry I guess I should have been a little more clear.
There has been a long standing issue with LinuxBIOS that much of the code needs to be written in assembly because it is run before memory is initialized, and so there is not a stack available.
romcc is a small c compiler that generates code that runs without a stack. The full feature set of C is not available but as much as is easy and is possible is.
The goal is to make maintenance easier, and code reviews of the memory setup easier.
Eric