Inline Span methods. by nnethercote · Pull Request #50564 · rust-lang/rust (original) (raw)

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 andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Conversation6 Commits1 Checks0 Files changed

Conversation

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters

[ Show hidden characters]({{ revealButtonHref }})

nnethercote

Because they are simple and hot.

This change speeds up some incremental runs of a few rustc-perf
benchmarks, the best by 3%.

Here are the ones with a speedup of at least 1%:

coercions
        avg: -1.1%      min: -3.4%      max: -0.2%
html5ever-opt
        avg: -0.8%      min: -1.7%      max: -0.2%
clap-rs-check
        avg: -0.3%      min: -1.4%      max: 0.7%
html5ever
        avg: -0.7%      min: -1.2%      max: -0.4%
html5ever-check
        avg: -0.9%      min: -1.1%      max: -0.8%
clap-rs
        avg: -0.4%      min: -1.1%      max: -0.1%
crates.io-check
        avg: -0.8%      min: -1.0%      max: -0.6%
serde-opt
        avg: -0.6%      min: -1.0%      max: -0.3%

@nnethercote

Because they are simple and hot.

This change speeds up some incremental runs of a few rustc-perf benchmarks, the best by 3%.

@petrochenkov

@bors

📌 Commit 77c40f8 has been approved by petrochenkov

@bors bors added the S-waiting-on-bors

Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

label

May 9, 2018

@estebank

Could you benchmark doing the same with the SpanData methods?

@nnethercote

@estebank: which methods? AFAICT, all SpanData methods are already inlined, except for fmt which doesn't seem important.

@estebank

@nnethercote I wasn't sure if it was the case. You're right.

sfackler

@@ -31,11 +31,13 @@ pub struct Span(u32);

Choose a reason for hiding this comment

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

We should be able to remove the #[repr(packed)] here and derive copy/clone/partialeq/hash/etc

alexcrichton added a commit to alexcrichton/rust that referenced this pull request

May 10, 2018

@alexcrichton

…petrochenkov

Inline Span methods.

Because they are simple and hot.

This change speeds up some incremental runs of a few rustc-perf benchmarks, the best by 3%.

Here are the ones with a speedup of at least 1%:

coercions
        avg: -1.1%      min: -3.4%      max: -0.2%
html5ever-opt
        avg: -0.8%      min: -1.7%      max: -0.2%
clap-rs-check
        avg: -0.3%      min: -1.4%      max: 0.7%
html5ever
        avg: -0.7%      min: -1.2%      max: -0.4%
html5ever-check
        avg: -0.9%      min: -1.1%      max: -0.8%
clap-rs
        avg: -0.4%      min: -1.1%      max: -0.1%
crates.io-check
        avg: -0.8%      min: -1.0%      max: -0.6%
serde-opt
        avg: -0.6%      min: -1.0%      max: -0.3%

alexcrichton added a commit to alexcrichton/rust that referenced this pull request

May 10, 2018

@alexcrichton

…petrochenkov

Inline Span methods.

Because they are simple and hot.

This change speeds up some incremental runs of a few rustc-perf benchmarks, the best by 3%.

Here are the ones with a speedup of at least 1%:

coercions
        avg: -1.1%      min: -3.4%      max: -0.2%
html5ever-opt
        avg: -0.8%      min: -1.7%      max: -0.2%
clap-rs-check
        avg: -0.3%      min: -1.4%      max: 0.7%
html5ever
        avg: -0.7%      min: -1.2%      max: -0.4%
html5ever-check
        avg: -0.9%      min: -1.1%      max: -0.8%
clap-rs
        avg: -0.4%      min: -1.1%      max: -0.1%
crates.io-check
        avg: -0.8%      min: -1.0%      max: -0.6%
serde-opt
        avg: -0.6%      min: -1.0%      max: -0.3%

bors added a commit that referenced this pull request

May 10, 2018

@bors

Rollup of 18 pull requests

Successful merges:

Failed merges:

Labels

S-waiting-on-bors

Status: Waiting on bors to run and complete tests. Bors will change the label on completion.