On Mon, Nov 21, 2016 at 09:19:35AM +0000, Kyrill Tkachov wrote: > > 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).
I haven't seen any other objections to this, and I too would like to ensure that the changes get as much Stage 3 testing across multiple architectures as I can. As the three AArch64 patches can be considered independent, I'll push the target independent changes and the ARM changes now. I've rerun a bootstrap on x86-64 and ARM before doing so, and there are still no regressions. That leaves these patches outstanding for AArch64 (which I'd like to ping). ---------------- 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 Thanks, James > > 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. > >> > >> > >> >