I've used SDCC (targeting 8051) for commercial products, even as far back as two years ago. It has been ready for prime time for quite awhile now.
I have heard that the code generated by SDCC is much larger than the code generated by commercial compiler, especially the PIC port.
I'll agree that the 8051 backend is good -
How good it can be now? Any explaination? Bing