From 846974e1b0f26c744facc75a0e94311fe4796c61 Mon Sep 17 00:00:00 2001 From: Ohad Ravid Date: Sun, 19 Apr 2026 11:03:48 +0300 Subject: [PATCH] Don't count storage statements in `size_estimate` query --- compiler/rustc_monomorphize/src/partitioning.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/compiler/rustc_monomorphize/src/partitioning.rs b/compiler/rustc_monomorphize/src/partitioning.rs index 6f9795fb3bff..05914f4199ae 100644 --- a/compiler/rustc_monomorphize/src/partitioning.rs +++ b/compiler/rustc_monomorphize/src/partitioning.rs @@ -109,6 +109,7 @@ use rustc_middle::bug; use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrFlags; use rustc_middle::middle::exported_symbols::{SymbolExportInfo, SymbolExportLevel}; +use rustc_middle::mir::StatementKind; use rustc_middle::mono::{ CodegenUnit, CodegenUnitNameBuilder, InstantiationMode, MonoItem, MonoItemData, MonoItemPartitions, Visibility, @@ -1334,7 +1335,21 @@ pub(crate) fn provide(providers: &mut Providers) { | InstanceKind::DropGlue(..) | InstanceKind::AsyncDropGlueCtorShim(..) => { let mir = tcx.instance_mir(instance.def); - mir.basic_blocks.iter().map(|bb| bb.statements.len() + 1).sum() + mir.basic_blocks + .iter() + .map(|bb| { + bb.statements + .iter() + .filter_map(|stmt| match stmt.kind { + StatementKind::StorageLive(_) | StatementKind::StorageDead(_) => { + None + } + _ => Some(stmt), + }) + .count() + + 1 + }) + .sum() } // Other compiler-generated shims size estimate: 1 _ => 1,