-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
LLVM -O2 compile time regression #25393
Labels
I-compiletime
Issue: Problems and improvements with respect to compile times.
Comments
huonw
added
the
I-compiletime
Issue: Problems and improvements with respect to compile times.
label
May 14, 2015
ran with |
cc @eddyb |
@seanmonstar Could you provide |
Looks like this is caused by lilyball@e1e34e9 -- the assume intrinsics no longer get simplified into nonnull metadata on load instructions and cause massive slowdowns. |
dotdash
added a commit
to dotdash/rust
that referenced
this issue
May 15, 2015
The assume intrinsic has a strong, negative impact on compile times, so we're currently only using it in places where LLVM can simplify it to nonnull metadata on a load intruction. Unfortunately a recent change that fixed invalid assume calls introduce new assume calls for which this simplification can not happen, leading to a massive regression in compile times in certain cases. Moving the assumptions from the middle of the function to the beginning allows the simplification to happen again, bringing compile times back to their old levels. Fixes rust-lang#25393
bors
added a commit
that referenced
this issue
May 15, 2015
The assume intrinsic has a strong, negative impact on compile times, so we're currently only using it in places where LLVM can simplify it to nonnull metadata on a load intruction. Unfortunately a recent change that fixed invalid assume calls introduce new assume calls for which this simplification can not happen, leading to a massive regression in compile times in certain cases. Moving the assumptions from the middle of the function to the beginning allows the simplification to happen again, bringing compile times back to their old levels. Fixes #25393
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
rustc 1.1.0-nightly (9ecc9896d 2015-05-10) (built 2015-05-11)
time: 58.110 LLVM passes
vs
rustc 1.1.0-nightly (c2b30b86d 2015-05-12) (built 2015-05-13)
time: 785.935 LLVM passes
running
cargo rustc --release -- -Z time-passes --test
on [email protected]Full output at https://gist.github.com/seanmonstar/390e04d63ad28f234050
The text was updated successfully, but these errors were encountered: