-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
Regression in rust nightly 2017-03-04 #40493
Labels
P-high
High priority
regression-from-stable-to-beta
Performance or correctness regression from stable to beta.
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
Comments
1.17 is now beta |
Probably a duplicate of #40573 -- stack usage jumped up for some reason |
triage: P-high |
arielb1
added a commit
to arielb1/rust
that referenced
this issue
Apr 2, 2017
LLVM has a bug - PR32488 - where it fails to deduplicate allocas in some circumstances. The function `start_new_block` has allocas totalling 1216 bytes, and when LLVM inlines several copies of that function into the recursive function `expr::into`, that function's stack space usage goes into tens of kiBs, causing stack overflows. Mark `start_new_block` as inline(never) to keep it from being inlined, getting stack usage under control. Fixes rust-lang#40493. Fixes rust-lang#40573.
arielb1
added a commit
to arielb1/rust
that referenced
this issue
Apr 2, 2017
LLVM has a bug - PR32488 - where it fails to deduplicate allocas in some circumstances. The function `start_new_block` has allocas totalling 1216 bytes, and when LLVM inlines several copies of that function into the recursive function `expr::into`, that function's stack space usage goes into tens of kiBs, causing stack overflows. Mark `start_new_block` as inline(never) to keep it from being inlined, getting stack usage under control. Fixes rust-lang#40493. Fixes rust-lang#40573.
Fixes are enqueued. Need confirmation from op yet. |
@brson Trying to get this patched branch build and tested right now. I will report back asap. |
|
Excellent. |
arielb1
pushed a commit
to arielb1/rust
that referenced
this issue
Apr 5, 2017
…hton mark build::cfg::start_new_block as inline(never) LLVM has a bug - [PR32488](https://bugs.llvm.org//show_bug.cgi?id=32488) - where it fails to deduplicate allocas in some circumstances. The function `start_new_block` has allocas totalling 1216 bytes, and when LLVM inlines several copies of that function into the recursive function `expr::into`, that function's stack space usage goes into tens of kiBs, causing stack overflows. Mark `start_new_block` as inline(never) to keep it from being inlined, getting stack usage under control. Fixes rust-lang#40493. Fixes rust-lang#40573. r? @eddyb
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
P-high
High priority
regression-from-stable-to-beta
Performance or correctness regression from stable to beta.
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
I cannot compile my library
wlc
(on crates.io) on nightlies later then 2017-03-03 anymore.The code is not using any unstable features, if compiled with the feature "unsafe-stable" and results do not differ between "default" features (which uses
optin_builtin_traits
) and the "unsafe-stable" feature (which does disableoptin_builtin_traits
).So code, that still works on stable and beta, does not compile anymore without any helpful error messages (see below).
Overview:
Working:
rustup run stable cargo build --features "unsafe-stable"
rustup run beta cargo build --features "unsafe-stable"
rustup run nightly-2017-03-03 cargo build --features "unsafe-stable"
Broken:
rustup run nightly-2017-03-04 cargo build --features "unsafe-stable"
rustup run nightly-2017-03-04 cargo build
Both abort with a stack overflow:
rustup run nightly-2017-03-12 cargo build --features "unsafe-stable"
rustup run nightly-2017-03-12 cargo build
Both fail without any specific error:
I have no idea, where I should start to debug this. Reproducing this error is also quite annoying to setup, as the library depends on a bunch of native libraries not available in most repositories. So I am thankful for any hints about how I could provide more information.
All tests where done after running
cargo clean
.Meta
rustc --version --verbose
:The text was updated successfully, but these errors were encountered: