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

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

Merged
merged 1 commit into from Nov 12, 2016

Conversation

Projects
None yet
4 participants
@nnethercote
Contributor

nnethercote commented Nov 11, 2016

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

r? @eddyb

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 #36799 by 5%.
@brson

This comment has been minimized.

Show comment
Hide comment
@brson

brson Nov 11, 2016

Contributor

@bors r+ rollup

Contributor

brson commented Nov 11, 2016

@bors r+ rollup

@bors

This comment has been minimized.

Show comment
Hide comment
@bors

bors Nov 11, 2016

Contributor

📌 Commit 11c1126 has been approved by brson

Contributor

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

This comment has been minimized.

@eddyb

eddyb Nov 11, 2016

Member

Oh god. Nice find! cc @nikomatsakis

@eddyb

eddyb Nov 11, 2016

Member

Oh god. Nice find! cc @nikomatsakis

eddyb added a commit to eddyb/rust that referenced this pull request Nov 11, 2016

Rollup merge of #37705 - nnethercote:fewer-mk_ty-calls, r=brson
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 #36799 by 5%.

r? @eddyb

@eddyb eddyb referenced this pull request Nov 11, 2016

Closed

Rollup of 29 pull requests #37726

bors added a commit that referenced this pull request Nov 12, 2016

eddyb added a commit to eddyb/rust that referenced this pull request Nov 12, 2016

Rollup merge of #37705 - nnethercote:fewer-mk_ty-calls, r=brson
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 #36799 by 5%.

r? @eddyb

@eddyb eddyb referenced this pull request Nov 12, 2016

Merged

Rollup of 30 pull requests #37730

bors added a commit that referenced this pull request Nov 12, 2016

@bors bors merged commit 11c1126 into rust-lang:master Nov 12, 2016

1 check passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details

@nnethercote nnethercote deleted the nnethercote:fewer-mk_ty-calls branch Nov 13, 2016

bors added a commit that referenced this pull request Nov 25, 2016

Auto merge of #37979 - nnethercote:Ty-super_fold_with, r=eddyb
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)
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment