]> git.lizzy.rs Git - rust.git/commit
Auto merge of #88988 - Mark-Simulacrum:avoid-into-ok, r=nagisa
authorbors <bors@rust-lang.org>
Sat, 18 Sep 2021 09:15:40 +0000 (09:15 +0000)
committerbors <bors@rust-lang.org>
Sat, 18 Sep 2021 09:15:40 +0000 (09:15 +0000)
commit6cdd42f9f8dd4e5e5ba0aa816bc4c99ab8b102f9
treefd318ddfe3cf15536f72f42637ea2944916abda4
parent5438ee424c004d7c89f16b9b1b95e899dbc87b25
parentdb5ecd539c38a4a096f3bc7550698ec1480a2ec4
Auto merge of #88988 - Mark-Simulacrum:avoid-into-ok, r=nagisa

Avoid codegen for Result::into_ok in lang_start

This extra codegen seems to be the cause for the regressions in max-rss on #86034. While LLVM will certainly optimize the dead code away, avoiding it's generation in the first place seems good, particularly when it is so simple.

#86034 produced this [diff](https://gist.github.com/Mark-Simulacrum/95c7599883093af3b960c35ffadf4dab#file-86034-diff) for a simple `fn main() {}`. With this PR, that diff [becomes limited to just a few extra IR instructions](https://gist.github.com/Mark-Simulacrum/95c7599883093af3b960c35ffadf4dab#file-88988-from-pre-diff) -- no extra functions.

Note that these are pre-optimization; LLVM surely will eliminate this during optimization. However, that optimization can end up generating more work and bump memory usage, and this eliminates that.
library/std/src/rt.rs