GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
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
This is not going to be easy to fix since the only sane fix is to improve LLVM.
cc @nikomatsakis since i think this is relevant to a point of discussion from last night's triage meeting.
triage bump: I don't follow LLVM development closely enough to know if anything has changed here, but it's true, if they're deficient, it's going to be hard for us.
This is https://bugs.llvm.org//show_bug.cgi?id=8100 on the LLVM side; it's a longstanding issue.
Triage: LLVM bug is still open.
Since https://reviews.llvm.org/D27028 (late January 2017), LLVM has had experimental intrinsics for floating-point environment support (see llvm.experimental.constrained.*). It's probably better to wait until they're stabilised before implementing the corresponding functionality in Rust?
@varkor , is there an LLVM tracking issue for when (or if) those might be stabilized? cc #55107
@bstrie: I've not found one, unfortunately 😕The process seems to be ad hoc. From what I could tell, the intrinsics should be correct, but not necessarily efficient.
The intrinsics exist in IR but last I heard backend support was incomplete, at least in the sense that dependencies between instructions that affect or are affected by the floating point environment are not respected in MachineIR.