-
Notifications
You must be signed in to change notification settings - Fork 102
Add missing no_panic and inline annotations #207
Conversation
The failure is expected, the bugs in these APIs haven't been fixed yet. |
0927625
to
651455d
Compare
651455d
to
cfc016a
Compare
This is ready, no public APIs should have panic code in release mode after this. |
Why is this adding |
All public APIs that aren't
The compiler was generating panic handling code for some of these functions in optimized builds, which is what |
But yes that's the point of a crate, to actually compile code so we don't always force all users to compile inlined code. Why would every single function here need to be
That seems like there's still a bug with panics then, and we're just papering over that with enough inlining.
That's not really fixing it I think but again just papering over it. It tweaks codegen enough that landing pads aren't always necessary here and there. |
I believed compiler-builtins is always statically linked into the binary. Isn't this the case ? |
Sorry yes what I mean with included there is via |
Oh, I thought LLVM would just emit symbols for these, and then at link time, if those symbols have LTO information, LLVM would be able to optimize through these. Obviously, this never happens when liking against the system's libm, but I am not sure I follow why this can't happen when compiling a pure-Rust libm with LTO information and linking it to the final binary via compiler-builtins. AFAICT the compiler-builtin "symbols" are just normal symbols once LTO starts. |
So I'm closing this, I'm going to try to add |
No description provided.