-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
fix workaround which does not use target native features on Windows #508
Comments
when target native features are used. See #508
Accident, incorrectly tagged this issue in the above commit. |
Is this not an upstream issue, since it depends on llvm changes? |
I don't think it's an upstream bug anymore. I think it's a problem with Zig's compiler-rt ABI compliance on Windows. Not aligning enough or something like that. |
can we add back native features thanks to #2079? |
I'll run the tests and report back. |
Here's what I get:
So even the behavior tests do not pass on Windows with native CPU features turned on. |
Here's a minimal LLVM IR reproducer: ; Function Attrs: cold nobuiltin noreturn nounwind
define internal void @bar(i1) unnamed_addr #1 {
unreachable
}
; Function Attrs: nobuiltin nounwind uwtable
define internal fastcc void @test_f128() unnamed_addr #0 {
Entry:
%x = alloca fp128, align 16
store fp128 0xL00000000000000003FFF000000000000, fp128* %x, align 16
%0 = load fp128, fp128* %x, align 16
%1 = fcmp une fp128 %0, 0xLEB851EB851EB851F400091EB851EB851
call fastcc void @bar(i1 %1)
ret void
} Compile it with the following command:
You can easily notice how the generated assembly has only a single The boring news is that the problem is already fixed on LLVM 10. |
🎉 Thanks for checking this out. Glad to hear we can do nothing and have this solved in ~6 months. |
If it's obvious what commit fixed it in trunk, we can ask for it to be a 9.0.1 release blocker. |
See #508. This can be removed when we upgrade to LLVM 10.
See #508. These can be re-enabled when we upgrade to LLVM 10.
See #302. I had to add a workaround to treat every build on windows as if we were cross compiling for the native target. Once the llvm bug is fixed we can remove this workaround.See below.
mailing list message: http://lists.llvm.org/pipermail/llvm-dev/2017-September/117860.html
The text was updated successfully, but these errors were encountered: