Dear users of the Z80 port, I've been working on a new register allocator for some months.
The current protoype already generates better code than current 'normal' sdcc in most cases. A code size reduction of about 10% seems typical. A small benchmark can be found at https://sourceforge.net/apps/trac/sdcc/wiki/Philipp%27s%20TODO%20list, where the rightmost column gives the code sizes for the new allocator. As you can see, with the new allocator sdcc in most cases generates smaller code than all other compilers, including the last HITECH-C compiler. You can download sdcc with the new allocator from http://colecovision.eu/stuff/sdcc-or-2011-4-6.tar.gz. I have worked on fixing bugs for about a week; all regression tests complete without errors, and my own Z80 applications work when compiled with this version. However it's likely that there are still lots of bugs, thus it needs testing. Please test this version of sdcc on your code, and tell me about any problems you encounter. A short description of the command line options you might want to try: --optralloc-exact-cost : Use an exact cost function. This should generate slightly better code than without this option. --max-allocs-per-node : Higher values result in better code, at the cost of longer compile time (and higher memory usage during compilation). The default value is 10000. --opt-code-size : Optimize for code size instead of speed. Currently has a relatively small impact on the code generated. --no-peep : Disables the peephole optimizer. When there's a problem that goes away when using --no-peep it's most likely a bug in the peephole optimizer or the peephole rules. Philipp ------------------------------------------------------------------------------ Xperia(TM) PLAY It's a major breakthrough. An authentic gaming smartphone on the nation's most reliable network. And it wants your games. http://p.sf.net/sfu/verizon-sfdev _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user