[Patch v4 0/17] Add support for _Float16 to AArch64 and ARM

Kyrill Tkachov kyrylo.tkachov@foss.arm.com
Mon Nov 21 09:19:00 GMT 2016


On 18/11/16 18:19, James Greenhalgh wrote:
> On Fri, Nov 11, 2016 at 03:37:17PM +0000, James Greenhalgh wrote:
>> Hi,
>>
>> This patch set enables the _Float16 type specified in ISO/IEC TS 18661-3
>> for AArch64 and ARM. The patch set has been posted over the past two months,
>> with many of the target-independent changes approved. I'm reposting it in
>> entirity in the form I hope to commit it to trunk.
>>
>> The patch set can be roughly split in three; first, hookization of
>> TARGET_FLT_EVAL_METHOD, and changes to the excess precision logic in the
>> compiler to handle the new values for FLT_EVAL_METHOD defined in
>> ISO/IEC TS-18661-3. Second, the AArch64 changes required to enable _Float16,
>> and finally the ARM changes required to enable _Float16.
>>
>> The broad goals and an outline of each patch in the patch set were
>> described in https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02383.html .
>> As compared to the original submission, the patch set has grown an ARM
>> port, and has had several rounds of technical review on the target
>> independent aspects.
>>
>> This has resulted in many of the patches already being approved, a full
>> summary of the status of each ticket is immediately below.
>>
>> Clearly the focus for review of this patch set now needs to be the AArch64
>> and ARM ports, I hope the appropriate maintainers will be able to do so in
>> time for the patch set to be accepted for GCC 7.
>>
>> I've built and tested the full patch set on ARM (cross and native),
>> AArch64 (cross and native) and x86_64 (native) with no identified issues.
> All the target independent changes are now approved, and all the ARM patches
> have been approved (two are conditional on minor changes).
>
> I'd like to apply the target independent and ARM changes to trunk, while I
> wait for approval of the AArch64 changes. The changes for the two ports should
> be independent. Would that be acceptable, or would you prefer me to wait
> for review of the AArch64 changes?

That's fine with me (I'd like to start getting the new features in to trunk so
they can start getting the stage 3 testing).

Kyrill

> I will then send a follow-up patch for doc/extend.texi detailing the
> availability of _Float16 on ARM (I'm holding off on doing this until I know
> which order the ARM and AArch64 parts will go in).
>
> Thanks,
> James
>
>> ------------------
>> Target independent changes
>>
>> 10 patches, 9 previously approved, 1 New implementing testsuite
>> changes to enable _Float16 tests in more circumstances on ARM.
>> ------------------
>>
>> [Patch 1/17] Add a new target hook for describing excess precision intentions
>>
>>    Approved: https://gcc.gnu.org/ml/gcc-patches/2016-11/msg00781.html
>>
>> [Patch 2/17] Implement TARGET_C_EXCESS_PRECISION for i386
>>
>>    Blanket approved by Jeff in:
>>      https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02402.html
>>
>> [Patch 3/17] Implement TARGET_C_EXCESS_PRECISION for s390
>>
>>    Approved: https://gcc.gnu.org/ml/gcc-patches/2016-10/msg01554.html
>>
>> [Patch 4/17] Implement TARGET_C_EXCESS_PRECISION for m68k
>>
>>    Blanket approved by Jeff in:
>>      https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02402.html
>>    And by Andreas: https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02414.html
>>
>>    There was a typo in the original patch, fixed in:
>>      https://gcc.gnu.org/ml/gcc-patches/2016-10/msg01173.html
>>    which I would apply as an "obvious" fix to the original patch.
>>
>> [Patch 5/17] Add -fpermitted-flt-eval-methods=[c11|ts-18661-3]
>>
>>    Approved: https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02405.html
>>
>>    Joseph had a comment in
>>    https://gcc.gnu.org/ml/gcc-patches/2016-10/msg00335.html that the tests
>>    should check FLT_EVAL_METHOD from <float.h> rather than
>>    __FLT_EVAL_METHOD__. Rather than implement that suggestion, I added tests
>>    to patch 6 which tested the <float.h> macro, and left the tests in this
>>    patch testing the internal macro.
>>
>> [Patch 6/17] Migrate excess precision logic to use TARGET_EXCESS_PRECISION
>>
>>    Approved (after removing a rebase bug):
>>    https://gcc.gnu.org/ml/gcc-patches/2016-11/msg00231.html
>>
>> [Patch 7/17] Delete TARGET_FLT_EVAL_METHOD and poison it.
>>
>>    Approved: https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02401.html
>>
>> [Patch 8/17] Make _Float16 available if HFmode is available
>>
>>    Approved: https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02403.html
>>
>> [Patch libgcc 9/17] Update soft-fp from glibc
>>
>>    Self approved under policy that we can update libraries which GCC mirrors
>>    without further approval.
>>
>> [Patch testsuite patch 10/17] Add options for floatN when checking effective target for support
>>
>>    NEW!
>>
>> ----------------
>> AArch64 changes
>>
>> 3 patches, none reviewed
>> ----------------
>>
>> [Patch AArch64 11/17] Add floatdihf2 and floatunsdihf2 patterns
>>
>>    Not reviewed, last pinged (^6):
>>    https://gcc.gnu.org/ml/gcc-patches/2016-11/msg00584.html
>>
>> [Patch libgcc AArch64 12/17] Enable hfmode soft-float conversions and truncations
>>
>>    Not reviewed:
>>    https://gcc.gnu.org/ml/gcc-patches/2016-09/msg02395.html
>>
>> [Patch AArch64 13/17] Enable _Float16 for AArch64
>>
>>    Not reviewed:
>>    https://gcc.gnu.org/ml/gcc-patches/2016-10/msg01176.html
>>
>> ----------------
>> ARM changes
>>
>> 4 patches, none OK'ed
>> ----------------
>> [Patch 14/17] [libgcc, ARM] Generalise float-to-half conversion function.
>>
>>    Respun in this submission to avoid a bug identified during extended
>>    multilib testing, original submission here:
>>    https://gcc.gnu.org/ml/gcc-patches/2016-11/msg00714.html
>>
>> [Patch 15/17 libgcc] Add double to half conversions.
>>
>>    Reviewed, but not approved:
>>    https://gcc.gnu.org/ml/gcc-patches/2016-10/msg01975.html
>>
>>    Changes were required to patch 16/17, and patch 10/17 was introduced to
>>    implement the suggested testsuite patch. The original patch still stands,
>>    and needs reviewed:
>>    https://gcc.gnu.org/ml/gcc-patches/2016-10/msg01914.html
>>
>> [Patch 16/17 ARM] Half to double precision conversions
>>
>>    Resubmitted: https://gcc.gnu.org/ml/gcc-patches/2016-11/msg00233.html
>>    Needs review.
>>
>> [Patch ARM 17/17] Enable _Float16 for ARM.
>>
>>    Resubmitted: https://gcc.gnu.org/ml/gcc-patches/2016-11/msg00234.html
>>    Needs review.
>>
>>
>>



More information about the Gcc-patches mailing list