about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2021-09-18 09:15:40 +0000
committerbors <bors@rust-lang.org>2021-09-18 09:15:40 +0000
commit6cdd42f9f8dd4e5e5ba0aa816bc4c99ab8b102f9 (patch)
treefd318ddfe3cf15536f72f42637ea2944916abda4 /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
parent5438ee424c004d7c89f16b9b1b95e899dbc87b25 (diff)
parentdb5ecd539c38a4a096f3bc7550698ec1480a2ec4 (diff)
downloadrust-6cdd42f9f8dd4e5e5ba0aa816bc4c99ab8b102f9.tar.gz
rust-6cdd42f9f8dd4e5e5ba0aa816bc4c99ab8b102f9.zip
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.
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions