https://github.com/JuliaLang/julia
Revision ef3bf66d5e1d60c9b604eb6e01539eb1c3aced90 authored by Tim Besard on 20 October 2023, 08:21:56 UTC, committed by GitHub on 20 October 2023, 08:21:56 UTC
Currently, Julia uses 2 different Float16 ABIs, depending on the host compiler used to
compile Julia: either pass as integer, or pass as LLVM's native `half`. Since the runtime
intrinsics are implemented in C using `uint16`, this necessitated conversions around the
runtime functions (`gnu_h2f_ieee`, `truncdfhf2`, etc) that the compiler may emit calls to.

This PR switches to always using the 'native' ABIs that platforms have for Float16,
by removing the conversions around runtime calls, and defining our runtime intrinsics
using the native `_Float16` type. Availability of this type depends on the platform, and
the compiler version, so we also define fallbacks that mimick the platform-specific
calling convention.
1 parent f8f573d
History
Tip revision: ef3bf66d5e1d60c9b604eb6e01539eb1c3aced90 authored by Tim Besard on 20 October 2023, 08:21:56 UTC
Use a single Float16 ABI. (#51666)
Tip revision: ef3bf66
File Mode Size
.devcontainer
.github
base
cli
contrib
deps
doc
etc
src
stdlib
test
.buildkite-external-version -rw-r--r-- 5 bytes
.clang-format -rw-r--r-- 3.3 KB
.clangd -rw-r--r-- 114 bytes
.codecov.yml -rw-r--r-- 52 bytes
.git-blame-ignore-revs -rw-r--r-- 371 bytes
.gitattributes -rw-r--r-- 65 bytes
.gitignore -rw-r--r-- 523 bytes
.mailmap -rw-r--r-- 12.7 KB
CITATION.bib -rw-r--r-- 513 bytes
CITATION.cff -rw-r--r-- 940 bytes
CONTRIBUTING.md -rw-r--r-- 23.4 KB
HISTORY.md -rw-r--r-- 372.8 KB
LICENSE.md -rw-r--r-- 1.3 KB
Make.inc -rw-r--r-- 55.7 KB
Makefile -rw-r--r-- 30.3 KB
NEWS.md -rw-r--r-- 3.4 KB
README.md -rw-r--r-- 7.3 KB
THIRDPARTY.md -rw-r--r-- 3.8 KB
VERSION -rw-r--r-- 11 bytes
julia.spdx.json -rw-r--r-- 35.8 KB
pkgimage.mk -rw-r--r-- 5.8 KB
sysimage.mk -rw-r--r-- 4.2 KB

README.md

back to top