Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port up to LLVM commit 55c2211a233e11179048cf58778f40e5a62f444a #13

Open
wants to merge 14 commits into
base: main
Choose a base branch
from

Conversation

eduardosm
Copy link
Contributor

The most significant change is the addition of new floating point types that represent NaNs as negative zeros.

@eddyb
Copy link
Member

eddyb commented Dec 31, 2023

Oh no, we should've gotten in touch, I didn't even see this PR because I don't have rust-lang notifications routed yet with some fine-grained filter.

I had a lot of this already done in https://github.com/rust-lang/rustc_apfloat/tree/advance-port-b0abd48-jun-2023, and it's very possible that conflicts with what you've done here :(

We didn't end up landing it because rustc itself doesn't need, and there haven't been any bug fixes AFAIK, and I didn't have that much time overall.

Not sure how to proceed here, might be best if you can contact me (@eddyb) on Discord?

@eduardosm eduardosm changed the title Port up to LLVM commit 83ba349ae0a853e0c2cd8e8aadc88993e9fb9a19 Port up to LLVM commit 55c2211a233e11179048cf58778f40e5a62f444a Jan 4, 2024
eduardosm and others added 14 commits August 4, 2024 12:07
Skips through the followings commits that do not affect the Rust port:

* 38818b60c58c76ba89b990978cdfd2d7b6799260: only affects C++/LLVM specific details
* 85395af27241ab9c8d5763b8afcaa07f1bab26d5: reverted by next commit
* e60b91df1357e6a5f66840581f4d5f57e258c0b4: reverts previous commit
Bumps LLVM commit to 4dc08de9d2f680309cdd639169d3b8802c76ae9a, where the equivalent was done in the C++ version.
Returns the number of bits needed to represent the largest integer that a floating point type can hold.

Bumps LLVM commit to 038f7debfda01471ce0d4eb1fed20da61e5c8b32, where this was added upstream.
Upstream LLVM commit: 6109e70c72fc5171d25c4467fc3cfe6eb2029f50

Adds Float8E5M2FNUZ and Float8E4M3FNUZ formats, where NaN is represented as negative zero

TODO: tests
Also includes small improvements to `ieee.rs`
Upstream LLVM commit: 83ba349ae0a853e0c2cd8e8aadc88993e9fb9a19

Previous commit, 36606cf07080a44a1a9157f80112f9512bd6a3bf, has been skipped because it does not affect the Rust port.
Skips through the followings commits that do not affect the Rust port:
* f8f3db27565cae8e07c2487f9714a32840c6d548: irrelevant because the Rust port does not have APInt equivalent
* 71f1ea2c15bbc5b604e20d71191a16d57d106dc0: we already have a similar `Float::category`
Upstream LLVM commit: 2f086f265bf97fe6543fb199f4ef874ca3522479

TODO: tests
Upstream LLVM commit: 3d11652bbee4cd6782c474e28cb2ab58fc93f245

Note that most changes of the LLVM commit do not apply to the Rust port
Upstream LLVM commit: 69668590592fcca2c2b22ba2257be57f0319fc9c

The following commits are skipped:
* 9395cf063a013003704118deccf7633533170a5b: reverted by next commit
* 69668590592fcca2c2b22ba2257be57f0319fc9c: reverts previous commit
Skips through the followings commits that do not affect the Rust port:
* 8e58b79f67a9f921733b105a874c0d4f69dd50da: fixes typos not present in the Rust port
* 687bd77e2c26487cba727aacfa7067dd01286be0: C++ specific changes
This floating point type is used by some accelerators (e.g., AMD and NVIDIA GPUs)

Upstream LLVM commit: 55c2211a233e11179048cf58778f40e5a62f444a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants