SDCC (Small Device C Compiler) is a unique, free, easy to use, open source retargettable, optimizing ANSI - C compiler.
This version targets the Zilog Z80, Intel 8051, Dallas 80C390, Microchip PIC MCUs and Motorola HC08.
Here are some key features of "SDCC":
· SDCC sdas and sdld, a retargettable assembler and linker, based on ASXXXX, is Free Open Source Software, distributed under GNU General Public License (GPL).
· extensive MCU specific language extensions, allowing effective use of the underlying hardware.
· a host of standard optimizations such as global sub expression elimination, loop optimizations (loop invariant, strength reduction of induction variables and loop reversing), constant folding and propagation, copy propagation, dead code elimination and jump tables for 'switch' statements.
· MCU specific optimizations, including a global register allocator.
· adaptable MCU specific backend that should be well suited for other 8 bit MCUs
· independent rule based peep hole optimizer.
· a full range of data types: char (8 bits, 1 byte), short (16 bits, 2 bytes), int (16 bits, 2 bytes), long (32 bit, 4 bytes) and float (4 byte IEEE).
· the ability to add inline assembler code anywhere in a function.
· the ability to report on the complexity of a function to help decide what should be re-written in assembler.