I finally have romcc to the point where I can seriously look at size optimizations. I am finally there after a lot of bug fixing and experimentation.
Because of added correctness in handling of small types I have measured about a 1K growth on the hdama port or about 3%. But things should start shrinking soon.
More optimization opportunities have been exposed so which breaks some code that was not right but lucky.
Have fun with this.
- Upgrade to romcc version 0.63 This includes more test cases Lots of small bug fixes A complete C preprocessor is now built in Initial support for not inlining everything __attribute__((noinline)) works Better command line options and help Constants arrays can be read at compile time Asm statements that are not volatile will now be removed when their outputs go unused Loads and stores that are not volatile will be removed when their values go unused The number of FIXMES in the code is finally starting to go down.
Tags romcc_0_38 and romcc_0_63 are present. In case you need to regress the version of romcc.
- Added volatile to asm statements in auto.c and failover.c - Updated the romcc version in Config.lb - Fixed type sizes in romcc_io.h and io.h inl() returning a byte was nasty
Modified Files: src/arch/i386/include/arch/romcc_io.h src/arch/i386/include/arch/io.h src/mainboard/arima/hdama/auto.c src/mainboard/arima/hdama/failover.c src/config/Config.lb