On Fri, Mar 22, 2013 at 6:28 AM, David Brown <da...@westcontrol.com> wrote:
> I use Freescale PPC devices with VLE, and I use Freescale's CodeWarrior > to do so. At the start of the project, I looked at CodeSourcery's > PPC-EABI tools (I have used CodeSourcery's gcc tools for other targets) > - but without VLE support, I had to pick something else. VLE can make a > very big difference to performance and code space, and is particularly > relevant for the smaller PPC microcontrollers (smaller code size means > better use of caches, internal buses, etc., for significantly faster code). I fully appreciate that VLE can provide a lot of benefit and advantages. I want to encourage use of and adoption of PowerPC, including VLE. > Is it worth the time and money for companies like Freescale and > CodeSourcery (Mentor) to pay for VLE integration and better PPC/MPC > support in gcc? I have no idea - I don't know the numbers at all. But > I do know that one of the reasons that ARM Cortex devices are so popular > in embedded systems is the easy availability of good quality tools, > mostly based on gcc. If Freescale wants more small developers to buy > their MPC parts (and that seems to be an aim), they should be doing what > they can here for gcc support. The problem is parts of the VLE patches are very invasive and disrupt the common parts of the PowerPC port, including making it more difficult to maintain the common and non-VLE parts of the PowerPC port. I was very accommodating of the patches to support Freescale e500, SPE, and FP in GPRs, despite their impact on the PowerPC port. That did not lead to greater GCC community engagement or contributions from Freescale or the e500 community -- neither maintaining the support for Freescale processors nor improving any common GCC features to benefit and exploit PowerPC in general or e500/SPE specifically. The organizations who contributed the patches have not maintained them and the burden has fallen to me and the other non-e500 PowerPC developers. The only communication we receive is that we broke e500. It is my understanding that Freescale has made no commitment to maintaining the VLE support patches in the GCC repository, neither themselves nor funding another organization. ARM has a very successful ecosystem, but ARM Ltd has an interest in all of the ARM ISAs (ARM, Thumb, Thumb2, AArch64) and has contributed to maintaining GCC support -- either directly or funding organizations to perform the work. > Finally, and I ask this as someone with no idea about the gcc internals > here, is it perhaps worth splitting the Power and the PowerPC > architectures? As far as I can see, despite their common ancestry there > are significant differences in many of the details, and they are > diverging with each new generation of device. They also seem to be > aimed at very different uses - Power is used on big systems, while > PowerPC is very much for embedded systems. I can't imagine many people > have need of a single gcc build that supports both families. Splitting > the target would mean changes to the PPC support would not affect the > RS6000 support. (Of course, it may cause more problems - as I say, I > don't know about the internals here. I'm just throwing around some > ideas - if they are worthless, feel free to throw them away!.) This option has been discussed. Much of the port is common and duplicating the port creates its own maintenance issue where someone needs to merge the changes into the corresponding port. Whether a single port or split into two ports, someone needs to take responsibility for the maintenance. A port without a maintainer will not be accepted, and if the port is not maintained, it will be deprecated and removed. If Freescale and/or developers for its processors want VLE support merged into GCC, they need to make a larger, visible, long-term commitment to contribute to GCC and support for their ISA differences. Thanks, David