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

Reply via email to