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.




Reply via email to