Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Avoid unnecessary mk_ty calls in Ty::super_fold_with. #37705

Merged
merged 1 commit into from
Nov 12, 2016

Conversation

nnethercote
Copy link
Contributor

This speeds up compilation of several rustc-benchmarks by 1--2% and the workload in #36799 by 5%.

r? @eddyb

This speeds up compilation of several rustc-benchmarks by 1--2% and the
workload in rust-lang#36799 by 5%.
@brson brson added the relnotes Marks issues that should be documented in the release notes of the next release. label Nov 11, 2016
@brson
Copy link
Contributor

brson commented Nov 11, 2016

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Nov 11, 2016

📌 Commit 11c1126 has been approved by brson

@@ -482,7 +482,7 @@ impl<'tcx> TypeFoldable<'tcx> for Ty<'tcx> {
ty::TyAnon(did, substs) => ty::TyAnon(did, substs.fold_with(folder)),
ty::TyBool | ty::TyChar | ty::TyStr | ty::TyInt(_) |
ty::TyUint(_) | ty::TyFloat(_) | ty::TyError | ty::TyInfer(_) |
ty::TyParam(..) | ty::TyNever => self.sty.clone(),
ty::TyParam(..) | ty::TyNever => return self
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh god. Nice find! cc @nikomatsakis

eddyb added a commit to eddyb/rust that referenced this pull request Nov 11, 2016
Avoid unnecessary mk_ty calls in Ty::super_fold_with.

This speeds up compilation of several rustc-benchmarks by 1--2% and the workload in rust-lang#36799 by 5%.

r? @eddyb
eddyb added a commit to eddyb/rust that referenced this pull request Nov 12, 2016
Avoid unnecessary mk_ty calls in Ty::super_fold_with.

This speeds up compilation of several rustc-benchmarks by 1--2% and the workload in rust-lang#36799 by 5%.

r? @eddyb
bors added a commit that referenced this pull request Nov 12, 2016
@bors bors merged commit 11c1126 into rust-lang:master Nov 12, 2016
@nnethercote nnethercote deleted the fewer-mk_ty-calls branch November 13, 2016 22:14
bors added a commit that referenced this pull request Nov 25, 2016
Avoid more unnecessary mk_ty calls in Ty::super_fold_with.

This speeds up several rustc-benchmarks by 1--5%.

This PR is the lovechild of #37108 and #37705.
```
futures-rs-test  4.059s vs  4.011s --> 1.012x faster (variance: 1.016x, 1.026x)
helloworld       0.236s vs  0.239s --> 0.986x faster (variance: 1.051x, 1.014x)
html5ever-2016-  3.831s vs  3.824s --> 1.002x faster (variance: 1.020x, 1.019x)
hyper.0.5.0      4.928s vs  4.936s --> 0.998x faster (variance: 1.003x, 1.012x)
inflate-0.1.0    4.135s vs  4.104s --> 1.007x faster (variance: 1.026x, 1.028x)
issue-32062-equ  0.309s vs  0.303s --> 1.017x faster (variance: 1.019x, 1.084x)
issue-32278-big  1.818s vs  1.797s --> 1.011x faster (variance: 1.011x, 1.008x)
jld-day15-parse  1.304s vs  1.271s --> 1.026x faster (variance: 1.018x, 1.012x)
piston-image-0. 10.938s vs 10.921s --> 1.002x faster (variance: 1.025x, 1.016x)
reddit-stress    2.327s vs  2.208s --> 1.054x faster (variance: 1.016x, 1.006x)
regex-0.1.80     8.796s vs  8.727s --> 1.008x faster (variance: 1.012x, 1.019x)
regex.0.1.30     2.294s vs  2.249s --> 1.020x faster (variance: 1.013x, 1.026x)
rust-encoding-0  1.914s vs  1.886s --> 1.015x faster (variance: 1.027x, 1.026x)
```
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
relnotes Marks issues that should be documented in the release notes of the next release.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants