Obsolete powerpc*-*-*spe*
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Feb 20 06:38:23 UTC 2017
On 19/02/17 01:29, dufault at hda.com wrote:
>
>> On Feb 19, 2017, at 07:55 , Joel Sherrill <joel at rtems.org
>> <mailto:joel at rtems.org>> wrote:
>>
>>
>>
>> On Feb 18, 2017 4:03 PM, "Peter Dufault" <dufault at hda.com
>> <mailto:dufault at hda.com>> wrote:
>>
>>> On Feb 14, 2017, at 22:08 , Sebastian Huber
>>> <sebastian.huber at embedded-brains.de
>>> <mailto:sebastian.huber at embedded-brains.de>> wrote:
>>>
>>> Looks like embedded PowerPC is going to die in GCC:
>>>
>>> -------- Forwarded Message --------
>>> Subject:Obsolete powerpc*-*-*spe*
>>> Date:Mon, 13 Feb 2017 21:07:03 -0600
>>> From:Segher Boessenkool <segher at kernel.crashing.org
>>> <mailto:segher at kernel.crashing.org>>
>>> To:gcc at gcc.gnu.org <mailto:gcc at gcc.gnu.org>
>>> CC:dje.gcc at gmail.com <mailto:dje.gcc at gmail.com>
>>>
>>>
>>>
>>> Hi all,
>>>
>>> I propose to mark powerpc*-*-*spe* as obsolete in GCC 7. This
>>> includes
>>> the spe.h installed header file, all the __builtin_spe*
>>> intrinsics, the
>>> -mfloat-gprs= command-line option, and the support for the SPE ABIs.
>>>
>>> No one has properly tested these targets in a long time (the latest
>>> testresults I could find are from July 2015, >1000 failures),
>>> and the
>>> SPE support makes a lot of code much more complex.
>>>
>>> Any objections to this obsoletion? GCC 7 will then be the last
>>> release
>>> with support for SPE (it will need --enable-obsolete to build these
>>> targets), and we will delete the SPE support during GCC 8
>>> development.
>>
>> I’ve been traveling and just noticed this. I use this target in
>> three applications with RTEMS.
>>
>> * Who else in the RTEMS community is using this?
>> * The spe.h header file has been hopelessly broken forever,
>> that’s not an issue.
>> * I build and use the “libdsp2” library for SPE. This is
>> primarily assembler and I hope the assembler support for SPE
>> is not affected, but I‘m not sure.
>> * I assume the major issue will be the removal of support for
>> -mfloat-gprs and SPE ABIs.
>> * Can someone with GCC knowledge comment about the possibility
>> of pared-back support? I’m guessing little or no hope based
>> on the comment that “SPE support makes a lot of code much
>> more complex” and SPE support with the ABI would be needed to
>> use the DSP library and single precision floating point with
>> the -mfloat-gprs registers.
>>
>> I think this is going to put those applications into maintenance
>> mode and make that target inappropriate for new RTEMS applications.
>>
>>
>> It is clear from the thread on the GCC mailing list that no one has
>> stepped up to maintain this support for a LONG time. The support will
>> be in GCC 7 but maybe not in 8.
>>
>> There are a few options:
>>
>> + Find someone to maintain it in GCC. Looks unlikely based on the thread.
>>
>> + Do as you suggest and freeze the tools for that target. The way it
>> looks for GCC, this would likely correspond to RTEMS 4.12.
>>
>> + I am not sure if this is worth considering but we could have a
>> special PowerPC/SPE toolchain where we freeze it on the last GCC
>> version with spe support
>>
>> I am not that familiar with using SPE in applications so would this
>> automatically obsolete some CPU models and BSPs when GCC drops
>> support? Assuming we don't figure out how to freeze a toolchain.
>>
>> Just considering options ranging from obsoleting things to freezing
>> things. I just do the know the impact.
>
> There is only one application of the three where I consciously use the
> SPE, and in that case I use the vendor’s assembly language library
> (MPC5500 libdsp2). Of course the compiler may be using the SPE, and
> the strange floating point register setup on that chip (pairs of
> 32-bit floating point registers) must be implied by the mfloat-gprs
> flag and without that and the API I think updating after gcc 7 will be
> impossible.
>
> I’ll have to look through the thread. I haven’t noticed compiler
> issues in tracking the latest versions of RTEMS, I have to see what
> those 1000 failures are.
>
> The big advantage of the chip for me has been using the pairs of eTPU
> processors together with canned motor control code downloaded from
> Freescale / NXP, letting me do 6 axis motor control with one of those
> embedded chips. However, Freescale / NXP appears to be moving away
> from the eTPU anyway, and I’ll be evaluating new targets for new
> applications. At this point I would not start a new design with the
> Phytec MPC55xx BSP other than for a client that was already using it,
> but with GCC moving away from it I wouldn’t recommend it to an
> existing client (though they may disagree since they’ll be supporting
> it for a while and it will be a common spare part).
>
> So it’s too bad, because I liked how the chip worked out, but I think
> I’m going to be fine with freezing at 4.12.
>
> I’ll mention another option for completeness but that would be an
> adventure: bring RTEMS up with the Freescale / NXP “CodeWarrior”
> compiler. As I said, just mentioning it for completeness.
I don't expect that Freescale/NXP/Qualcomm will commit them to maintain
GCC or even Binutils. Maintaining a special powerpcspe-rtems tool chain
based on GCC 7 may work for some time.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel
mailing list