diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2020-11-11 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2020-11-12 19:52:03 +0100 |
| commit | ae4332643de6a672ab3aefd62a3063c9af21166c (patch) | |
| tree | e938438730cb3fd231f41349d57909626c57d986 | |
| parent | 0b4af1614d91152564b852572afa63fab71162a1 (diff) | |
| download | rust-ae4332643de6a672ab3aefd62a3063c9af21166c.tar.gz rust-ae4332643de6a672ab3aefd62a3063c9af21166c.zip | |
Never inline cold functions
The information about cold attribute is lost during inlining, Avoid the issue by never inlining cold functions.
| -rw-r--r-- | compiler/rustc_mir/src/transform/inline.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/rustc_mir/src/transform/inline.rs b/compiler/rustc_mir/src/transform/inline.rs index 7332d419494..5023e49df3a 100644 --- a/compiler/rustc_mir/src/transform/inline.rs +++ b/compiler/rustc_mir/src/transform/inline.rs @@ -252,9 +252,9 @@ impl Inliner<'tcx> { self.tcx.sess.opts.debugging_opts.inline_mir_threshold }; - // Significantly lower the threshold for inlining cold functions if codegen_fn_attrs.flags.contains(CodegenFnAttrFlags::COLD) { - threshold /= 5; + debug!("#[cold] present - not inlining"); + return false; } // Give a bonus functions with a small number of blocks, |
