about summary refs log tree commit diff
diff options
context:
space:
mode:
authorTomasz Miąsko <tomasz.miasko@gmail.com>2020-11-11 00:00:00 +0000
committerTomasz Miąsko <tomasz.miasko@gmail.com>2020-11-12 19:52:03 +0100
commitae4332643de6a672ab3aefd62a3063c9af21166c (patch)
treee938438730cb3fd231f41349d57909626c57d986
parent0b4af1614d91152564b852572afa63fab71162a1 (diff)
downloadrust-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.rs4
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,