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

Call skolemize_late_bound_regions only after fast rejection #24615

Merged
merged 1 commit into from Apr 23, 2015

Conversation

Projects
None yet
6 participants
@arielb1
Contributor

arielb1 commented Apr 19, 2015

skolemize_late_bound_regions essentially copies the entire type (most of the times it shouldn't, but it does), and match_impl runs millions of times.

Times compiling rustc, tested with
$ make -j4 rustc-stage1
$ ( time RUSTFLAGS=-Z time-passes make -j4 rustc-stage2 ) # need LLVM time for calibration

Before:
real 21m44.960s
user 29m38.812s
sys 0m14.944s

After:
real 19m31.445s
user 26m47.260s
sys 0m14.952s

Making this is a 10% performance improvement.

LLVM passes took 867 seconds before, 862 seconds after.

Call skolemize_late_bound_regions only after fast rejection
skolemize_late_bound_regions essentially copies the entire type (most of the times it shouldn't, but it does), and match_impl runs millions of times.

Times compiling rustc, tested with
$ make -j4 rustc-stage1
$ ( time RUSTFLAGS=-Z time-passes make -j4 rustc-stage2 ) # need LLVM time for calibration

Before:
real	21m44.960s
user	29m38.812s
sys	0m14.944s

After:
real	19m31.445s
user	26m47.260s
sys	0m14.952s

Making this is a 10% performance improvement.

LLVM passes took 867 seconds before, 862 seconds after.
@rust-highfive

This comment has been minimized.

Show comment
Hide comment
@rust-highfive

rust-highfive Apr 19, 2015

Collaborator

r? @alexcrichton

(rust_highfive has picked a reviewer for you, use r? to override)

Collaborator

rust-highfive commented Apr 19, 2015

r? @alexcrichton

(rust_highfive has picked a reviewer for you, use r? to override)

@alexcrichton

This comment has been minimized.

Show comment
Hide comment
@alexcrichton

alexcrichton Apr 20, 2015

Member

r? @nikomatsakis

(not super familiar with this code)

Member

alexcrichton commented Apr 20, 2015

r? @nikomatsakis

(not super familiar with this code)

@alexcrichton

This comment has been minimized.

Show comment
Hide comment
@alexcrichton
Member

alexcrichton commented Apr 20, 2015

also cc @pnkfelix

@nikomatsakis

This comment has been minimized.

Show comment
Hide comment
@nikomatsakis

nikomatsakis Apr 23, 2015

Contributor

@bors r+ 94a1b26

looks good!

Contributor

nikomatsakis commented Apr 23, 2015

@bors r+ 94a1b26

looks good!

@bors

This comment has been minimized.

Show comment
Hide comment
@bors

bors Apr 23, 2015

Contributor

⌛️ Testing commit 94a1b26 with merge 24e4e60...

Contributor

bors commented Apr 23, 2015

⌛️ Testing commit 94a1b26 with merge 24e4e60...

bors added a commit that referenced this pull request Apr 23, 2015

Auto merge of #24615 - arielb1:rapid-reject, r=nikomatsakis
skolemize_late_bound_regions essentially copies the entire type (most of the times it shouldn't, but it does), and match_impl runs millions of times.

Times compiling rustc, tested with
$ make -j4 rustc-stage1
$ ( time RUSTFLAGS=-Z time-passes make -j4 rustc-stage2 ) # need LLVM time for calibration

Before:
real	21m44.960s
user	29m38.812s
sys	0m14.944s

After:
real	19m31.445s
user	26m47.260s
sys	0m14.952s

Making this is a 10% performance improvement.

LLVM passes took 867 seconds before, 862 seconds after.

@bors bors merged commit 94a1b26 into rust-lang:master Apr 23, 2015

2 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
homu Test successful
Details
@brson

This comment has been minimized.

Show comment
Hide comment
@brson

brson Apr 23, 2015

Contributor

Sweet wins!

Contributor

brson commented Apr 23, 2015

Sweet wins!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment