Optimize fmt::PadAdapter::wrap#87052
Merged
bors merged 1 commit intorust-lang:masterfrom Jul 30, 2021
Merged
Conversation
Contributor
|
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @joshtriplett (or someone else) soon. Please see the contribution instructions for more information. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Member
|
@bors r+ rollup |
Collaborator
|
📌 Commit 3e82dca has been approved by |
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Jul 30, 2021
Rollup of 10 pull requests Successful merges: - rust-lang#87052 (Optimize fmt::PadAdapter::wrap) - rust-lang#87522 (Fix assert in diy_float) - rust-lang#87553 (Fix typo in rustc_driver::version) - rust-lang#87554 (2229: Discr should be read when PatKind is Range) - rust-lang#87564 (min_type_alias_impl_trait is going to be removed in 1.56) - rust-lang#87574 (Update the examples in `String` and `VecDeque::retain`) - rust-lang#87583 (Refactor compression cache in v0 symbol mangler) - rust-lang#87585 (Add missing links for core::char types) - rust-lang#87594 (fs File get_path procfs usage for netbsd same as linux.) - rust-lang#87602 ([backtraces]: look for the `begin` symbol only after seeing `end`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
After adding the first
write!usage to my project and printing the result to the console, I noticed, that my binary contains the strings "calledOption::unwrap()on aNonevalue`" and more importantly "C:\Users\Patrick Fischer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\fmt\builders.rs", with my release build being configured as follows:I am in a no_std environment and my custom panic handler is a simple
loop {}. I did not expect the above information to be preserved. I heavily suspect the edited function to be the culprit. It contains the only direct use ofOption::unwrapin the entire file and I tracked the symbols in the assembly to be used from the section_ZN68_$LT$core..fmt..builders..PadAdapter$u20$as$u20$core..fmt..Write$GT$9write_str17ha1d5e5efe167202aE.Aside from me suspecting this function to be the culprit, the replaced code performs the same operation as
Option::insert, but without theunreachable_uncheckedoptimizationOption::insertprovides. Therefore, it makes sense to me to use the more optimized version, instead.As I don't change any semantics, I hope a simple pull request suffices.