Uh oh!
There was an error while loading. Please reload this page.
Use unrolled loop for searching NULL in [u16] on Windows - #67705
Conversation
rust-highfive
commented
Dec 29, 2019
(rust_highfive has picked a reviewer for you, use r? to override) |
a61835f to
a963e37Comparetesuji
commented
Dec 29, 2019
r? @BurntSushi |
retep998
commented
Dec 29, 2019
Can you provide performance comparisons on both |
tesuji
commented
Dec 30, 2019
I don't have windows machine so I cannot bench this. |
tesuji
commented
Dec 30, 2019
Hm. After that they used the unrolled version: https://bugzilla.mozilla.org/show_bug.cgi?id=1033959 |
tesuji
commented
Jan 2, 2020
Should I port the unrolled version here or keep this change? |
tesuji
commented
Jan 9, 2020
Hi. Could any Windows devs help benchmarking to push this forward? |
Mark-Simulacrum
commented
Jan 19, 2020
I'm going to nominate this for compiler team to see if we can get a windows dev to benchmark this. Personally I'm not sure what are policy in general should be on patches like this, I'm tempted to just close (especially as no one has specifically requested this change in an issue). |
wesleywiser
commented
Mar 5, 2020
I have a Windows box I can test on. What do I need to do to run the benchmark? |
spastorino
commented
Mar 11, 2020
As per last triaging meeting discussion, assigning this one to Wesley. r? @wesleywiser |
Removing nomination since this was already discussed in last triage meeting. |
tesuji
commented
Mar 15, 2020
Thanks for the interests. And sorry the late reply. I was away from my computer in those days. I created a repo for benchmarking at https://github.com/lzutao/rust-benches-wmemchr. |
tesuji
commented
Mar 15, 2020
@wesleywiser Please see the post above. |
steveklabnik
commented
Mar 15, 2020
I get when trying to run your benchmark. |
For Details |
To be clear, It's hard to explain but using exactly the same nightly on the same system, Details |
tesuji
commented
Mar 16, 2020
I don't know why but for MSVC targets, the unrolled loop version is Details |
mati865
commented
Mar 16, 2020
@lzutao benchmarking |
wesleywiser
commented
Mar 16, 2020
When building Using incremental compilation can have a huge impact on micro-benchmarks like this due to CGU partitioning. |
mati865
commented
Mar 16, 2020
@wesleywiser in my case it was official nightly Now on the CI, No idea whether that benchmark has some bug or what. |
tesuji
commented
Mar 17, 2020
I ported the unrolled version (godbolt link) to use DetailsIs this an optimization bug or not? |
Uh oh!
There was an error while loading. Please reload this page.
wesleywiser
commented
Mar 17, 2020
I took a look in We should either confirm that this does not pessimize 32-bit Windows or only use this implementation on 64-bit Windows falling back to the existing code on 32-bit Windows. |
I benched it against 32-bit Windows (for both gnu and msvc) on Github Actions. Details |
wesleywiser
commented
Apr 7, 2020
Sorry for the delay on this! @bors r+ |
bors
commented
Apr 7, 2020
📌 Commit 89bc236 has been approved by |
bors
commented
Apr 7, 2020
🌲 The tree is currently closed for pull requests below priority 1000, this pull request will be tested once the tree is reopened |
Rollup of 7 pull requests Successful merges: - rust-lang#67705 (Use unrolled loop for searching NULL in [u16] on Windows) - rust-lang#70367 (save/restore `pessimistic_yield` when entering bodies) - rust-lang#70822 (Don't lint for self-recursion when the function can diverge) - rust-lang#70868 (rustc_codegen_ssa: Refactor construction of linker arguments) - rust-lang#70896 (Implement Chain with Option fuses) - rust-lang#70916 (Support `#[track_caller]` on functions in `extern "Rust" { ... }`) - rust-lang#70918 (rustc_session: forbid lints override regardless of position) Failed merges: r? @ghost
bors
commented
Apr 9, 2020
☔ The latest upstream changes (presumably #70943) made this pull request unmergeable. Please resolve the merge conflicts. |
Remove some redundant parts from `unrolled_find_u16s` See each commit message for details. r? @wesleywiser from old PR rust-lang#67705 .
No description provided.