SDCC – Small Device C Compiler
From the site:
SDCC is a Freeware, retargettable, optimizing ANSI – C compiler that targets the Intel 8051, Maxim 80DS390 and the Zilog Z80 based MCUs. Work is in progress on supporting the Motorola 68HC08 as well as Microchip PIC14 and PIC16 series. The entire source code for the compiler is distributed under GPL.