From 90f8aefe7142d23a64ae95b5ae5a292a6e0519db Mon Sep 17 00:00:00 2001 From: bjorn3 Date: Sun, 13 Mar 2022 15:51:39 +0100 Subject: [PATCH] Mark cold blocks --- src/abi/mod.rs | 5 ++++- src/base.rs | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/abi/mod.rs b/src/abi/mod.rs index 2aa80e4d10d0..3d527bd72b6f 100644 --- a/src/abi/mod.rs +++ b/src/abi/mod.rs @@ -370,7 +370,10 @@ pub(crate) fn codegen_terminator_call<'tcx>( .map(|inst| fx.tcx.codegen_fn_attrs(inst.def_id()).flags.contains(CodegenFnAttrFlags::COLD)) .unwrap_or(false); if is_cold { - // FIXME Mark current_block block as cold once Cranelift supports it + fx.bcx.set_cold_block(fx.bcx.current_block().unwrap()); + if let Some((_place, destination_block)) = destination { + fx.bcx.set_cold_block(fx.get_block(destination_block)); + } } // Unpack arguments tuple for closures diff --git a/src/base.rs b/src/base.rs index c7c9c5eefad1..59e9e23d882b 100644 --- a/src/base.rs +++ b/src/base.rs @@ -303,7 +303,7 @@ fn codegen_fn_content(fx: &mut FunctionCx<'_, '_, '_>) { let target = fx.get_block(*target); let failure = fx.bcx.create_block(); - // FIXME Mark failure block as cold once Cranelift supports it + fx.bcx.set_cold_block(failure); if *expected { fx.bcx.ins().brz(cond, failure, &[]);