[llvm-branch-commits] [llvm] e4b3fad - [clang][llvm][doc] Add more information for the ABI change in FP16

Phoebe Wang via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Thu Aug 4 19:19:39 PDT 2022


Author: Phoebe Wang
Date: 2022-08-04T22:31:16+08:00
New Revision: e4b3fad1facdb3f005ec77f607a2b05e3e9fcbad

URL: https://github.com/llvm/llvm-project/commit/e4b3fad1facdb3f005ec77f607a2b05e3e9fcbad
DIFF: https://github.com/llvm/llvm-project/commit/e4b3fad1facdb3f005ec77f607a2b05e3e9fcbad.diff

LOG: [clang][llvm][doc] Add more information for the ABI change in FP16

Differential Revision: https://reviews.llvm.org/D131172

Added: 
    

Modified: 
    clang/docs/ReleaseNotes.rst
    llvm/docs/ReleaseNotes.rst

Removed: 
    


################################################################################
diff  --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 84c74335ea5d1..41e9e09d6b436 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -619,6 +619,19 @@ X86 Support in Clang
   will be used by Linux kernel mitigations for RETBLEED. The corresponding flag
   ``-mfunction-return=keep`` may be appended to disable the feature.
 
+The ``_Float16`` type requires SSE2 feature and above due to the instruction
+limitations. When using it on i386 targets, you need to specify ``-msse2``
+explicitly.
+
+For targets without F16C feature or above, please make sure:
+
+- Use GCC 12.0 and above if you are using libgcc.
+- If you are using compiler-rt, use the same version with the compiler.
+Early versions provided FP16 builtins in a 
diff erent ABI. A workaround is to use
+a small code snippet to check the ABI if you cannot make sure of it.
+- If you are using downstream runtimes that provide FP16 conversions, update
+them with the new ABI.
+
 DWARF Support in Clang
 ----------------------
 

diff  --git a/llvm/docs/ReleaseNotes.rst b/llvm/docs/ReleaseNotes.rst
index cf41439d8dd74..d94687263bb3f 100644
--- a/llvm/docs/ReleaseNotes.rst
+++ b/llvm/docs/ReleaseNotes.rst
@@ -186,9 +186,25 @@ Changes to the WebAssembly Backend
 Changes to the X86 Backend
 --------------------------
 
-* Support ``half`` type on SSE2 and above targets.
+* Support ``half`` type on SSE2 and above targets following X86 psABI.
 * Support ``rdpru`` instruction on Zen2 and above targets.
 
+During this release, ``half`` type has an ABI breaking change to provide the
+support for the ABI of ``_Float16`` type on SSE2 and above following X86 psABI.
+(`D107082 <https://reviews.llvm.org/D107082>`_)
+
+The change may affect the current use of ``half`` includes (but is not limited
+to):
+
+* Frontends generating ``half`` type in function passing and/or returning
+arguments.
+* Downstream runtimes providing any ``half`` conversion builtins assuming the
+old ABI.
+* Projects built with LLVM 15.0 but using early versions of compiler-rt.
+
+When you find failures with ``half`` type, check the calling conversion of the
+code and switch it to the new ABI.
+
 Changes to the OCaml bindings
 -----------------------------
 


        


More information about the llvm-branch-commits mailing list